Commit abfc4893 authored by liming6's avatar liming6
Browse files

feature 基础代码

parent 4c2688a9
......@@ -17,3 +17,8 @@ sshd-tool监听这个unix socket,过滤出需要的信息
最终,sshd-tool提供查询服务
## todo
- 适配ubuntu系统,对于Ubuntu,系统who -u中的pid是ssh日志中pid的子进程,需要处理一下
- 能查询出以前的,没有被sshd-tool记录的在线情况
package asset
import (
"regexp"
"strings"
"testing"
"time"
)
var (
ReSSHLogin = regexp.MustCompile(`^<\d+>[A-Z][a-z]{2} \d+ \d+:\d+:\d+ (\S+) sshd\[(\d+)\]: Accepted (\S+) for (\S+) from (\S+) port (\d+) ssh(?:|\d+)$`)
ReSSHLoginPK = regexp.MustCompile(`^<\d+>[A-Z][a-z]{2} \d+ \d+:\d+:\d+ (\S+) sshd\[(\d+)\]: Accepted publickey for (\S+) from (\S+) port (?:\d+) ssh(?:|\d+):\s+(\S+)\s+(?:sha|SHA)256:(.*)$`)
ReSSHLogout = regexp.MustCompile(`^<\d+>[A-Z][a-z]{2} \d+ \d+:\d+:\d+ (\S+) sshd\[(\d+)\]: pam_unix\(sshd:session\): session closed for user (.*)$`)
)
func Test1(t *testing.T) {
target := "<86>Sep 28 14:52:37 login01 sshd[4092]: Accepted keyboard-interactive/pam for fengchao from 10.206.8.202 port 55805 ssh2"
if ReSSHLogin.MatchString(target) {
start := time.Now()
f := ReSSHLogin.FindStringSubmatch(target)
s := time.Since(start)
t.Logf("regexp use %d ms", s.Milliseconds())
for _, v := range f {
t.Log(v)
}
} else {
t.Error("not match")
}
}
func Test2(t *testing.T) {
target := "<86>Dec 23 15:57:07 bw11 sshd[1575855]: Accepted publickey for root from 10.16.4.1 port 60058 ssh2: ED25519 SHA256:0o84iZ8MJUCRzTIipR8eLzX2g+Rx96MKMVq/RakG/GA"
if ReSSHLoginPK.MatchString(target) {
f := ReSSHLoginPK.FindStringSubmatch(target)
for _, v := range f {
t.Log(v)
}
} else {
t.Error("not match")
}
}
func Test3(t *testing.T) {
target := "<86>Dec 22 19:09:50 liming-ecs sshd[3831482]: pam_unix(sshd:session): session closed for user root"
if ReSSHLogout.MatchString(target) {
f := ReSSHLogout.FindStringSubmatch(target)
for _, v := range f {
t.Log(v)
}
} else {
t.Error("not match")
}
}
func Test4(t *testing.T) {
a := "abc==="
t.Log(strings.Trim(a, "="))
}
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC8lrLRp2q+ssghlnz5uLZvCxG36n3guNrtlFG7r85+Gz7ufWCtHk1DtlywbIN7k5jrhUiYTNFCWx0iUfeliIhLfrwBBEXOb7W2JRdJiQMnGlhzjPHiYbMncU6IJz8cmpgTaV+qcxnhj+18t851BZ3S2hOkoyHx9+FVcxMVzFiDEoUm6yth2OFHxaxYFbgUJ0Ll3d8lPOF9uEW++XtiFdAQqJ6zN3771y8THxKbXAbQwJwD/QqfrEb47umlWZQMpwRoK7/kKENlqJ5SK2WDcBwvIEbyYsSqa7BWIxSzUPzhG4oT18DWHUlQ9GsAeOxOPidHFiYY81sy2Of9YBjLvs+F3ehMK3omXjzQIDZVCIBSI32p4sfiNzZDCmfT+9O6SEUBCaFawGAamHcMrDAnvJn/SroYw5ruRUSE7Csfh/fB7SxTTC6fXw2g6sCtfpVn2ml4uixmG4pev/mvgzyCuP4mMZluEoF9YGedXOa/M2FgJmflHrvW8OfGCnljndF1+Ok= root@admin02
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDKJzNDzIjx+GYJVbJOqcdm6xH6Bnd156ZxwiH8BxHzB1zugRv/c03cMwpad+IXnI+r2REv8CZpH2xL15b5Vqv39JV9ewO2Wk0Kw5YmYfB92p8f3QBrQUiyr+LxcQkGWiTvWjE2O12DAy5I47H+2dZ9x9p83eM6R29QeKZOtaa1tTrE8eEC7Gf6GrPRThnrMJhOHULA54zAf1hX9yR86c8RcH5ib9iyg4FH7rTIhRSOgl/CGCdtED8j1K8CyV18ifrHHa2F1gLYvW9GdrqXyO+84afOFBW3TXpzJIB0CkQ4S/nDJrn2EV3v2hIliqI6avHDcb5+NmVmNekKLDm5sHeHFXsjmeIX5PBDmXrdg9ChXLOc9VZHkukRAE6iK4vFXQEOmYHF+LP+rhJv8xp0RlBfrfxIjFFpSaJunSiKdM/kNoK5ZzZwdvezmosBT5QmXfpC6dUA+70MpSoDWmjDf5O9p6EhaRxD7VblK9affsfA8uMMFd6BytsIV3C8PkPc+20= 925456133@qq.com
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDGEfg3oY0gIZDMn4g0paz8i+1NnDcqFScJ9HIEpu1t825MIYX6uiesQGW1KMaSMkcPO4ciUzAkJjPjcMOZ5HquXDsbrJW31bLzTdoN/fEOJwD1WDRs82eFMoBcnko5D6IzV5Uli1IwEh5tvLgx+x4q0kmyUTFhDfhSBW+EOlAMS+/8ch1/+VZzhgHUVaKVUmqKppJfE9USTn1PGBrYPzBOqwTMJGGRkh+P7O+5NYNpVIMonT5UXmwjBm/Z5DeRMjbxQeRKk+W9B3MlTF3z3N1BlRVxQEsav200zgy41EWxYVQmfcNUMRUUtAg2Z2BzK8G/nCd3csg3zSz1Yxz4e9ruwJBjUbFy69FbMS0hSR3dRXpkCQqJiBiUZGmMbeBS0TyEbAYvKRbgnJCdYzDRYJGd4s7eIq0nI152wg+XKo8WPXitayYGYO6dH1jikSDVZpX34gWTmoaYN53WzlcPqNyiBDkvaH4Xfcr1alhZmN0qMFpDmlr+rIxka5WEtBACELU= root@admin01
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDBN/UmnD/E2zsG/7HpDBzjMEehqcU/c4+k3FLGZF0fw1l4KL5owm1odV2LJxwCWoQv/VPTVgaqna1USlLG3xa52zqya1pzPKZ4xOpJ8LXTtDg91thltdynaDuL04PTMNEhx/inHzatQyeNBvkpaJAGiTGEhulJ0fPf9hk9QwWjtE7Ud7rQcN2sxanTnO1vHdd8W1HDwcxs0ZIquKvlnAtrAblCpaOS0Mgb7Rqs8Gliv5M1IQmi0RZnmF3zxRrKesdawDlTCxOnkscED+mSneelD2qQujtnTvFVFCFQTwo+UKw+ceuLRqShMT2KvjZKlEo9MxjSjcunSnqrLzOAleS2fdFA3BJTyDdRIlPLD8aIy/QymS3+iJwkz9RhtmLaRZiIVtOLDeeQf4zzTjiB0banASQQJFuC0d1AR/bJSH1yaZh8ZNH/wgnTiBmnHTKb/8LOYbLdE3GNdRP2nmkZqg0z4Mse2MXLNpMmx7dzn29nQfHndgiTUAXRe5RVo4DN7Zk= liming6@sugon.com
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ//DeJIwpNQ3bboddfladiUs/xMbsbRikgvJ/m+30Uj liming
\ No newline at end of file
AutoTestUser:$6$3hEjt/OmxQ//ZIQ$5N.f2U1OPe3SVI6CcuEmWVCBSCHN6itdzSRgjxox3YN41qcRHYkEp5WcWQ2SXpXbCfEYcwZ.L6U56KNkp9Xut/:1336:1336::/data/home/AutoTestUser:/bin/bash
angwb3:$6$S.uyQfAQ0k43hhQs$wAt/UAnvanUqnUe/ARkW4Mq9Cn8KvkUaXRKmeYQ.sRs34iGTRS5NcLniSZNP17vH89mzA.f5A/PWR/qx1yIg6/:1367:1367::/public/home/angwb3:/bin/bash
askflow:$6$Q0U6hFmP6YlDfCp9$3eLUuk7z2OrAKln9k2/ON4C.R.Nb6k6/6BOoqB4I13EhfS9yc6ag9dFdCzZV6JkMmYoyVPpLKv2TkK2q68oSr.:11443:11446::/public/home/askflow:/bin/bash
autotest_platform:$6$9tu7M/oVutjVVYtt$7GexrwVf7WshfxCQnf1twErtfLj8mTeXzZwhUB1ZHuognsBUtO/ZE0VdCjn2juk92ZXLReCwGs3/bSlvXCl8F.:1239:1239::/public/home/autotest_platform:/bin/bash
bailuo:$6$eP25F/FOp94GYkDV$Qo0Qhipvb5Zxe7Gi8ehs9LR298pDMf2.j3ZOe2YZsvMWDyxp85mvshVQuHzNgyQEpUuNJIgIfTjtXELOcWwt.0:1186:1186::/public/home/bailuo:/bin/bash
bianch:$6$tlFy4t.k.NWDEhfo$WFrpLTkfjlkChMqOe5l36.HUCYCzpgA2al0XgV0yp0z1gPr5yh73RNCe.x3TO/i2oW7Qq9sVSDGlb0.6l3sqU/:1153:1153::/public/home/bianch:/bin/bash
caiwei:$6$vFhiX/rejxkVn8KW$CKGek5XUL/d95Z1VaSbnoA5i/3qqdKiDhQ/KRfKLYBmXkXHz.a6/v1skbR8Tav9f7apVvrGf5dVZDKSVbxhqi.:1392:1392::/public/home/caiwei:/bin/bash
caiyu:$6$mLLRJaN01GaV6Sxo$lSy9iAiEXjsETmXGfVOP0dtaVGJrKfmRe9kHl5Y2ns88vwAEj1uVXetmCnldQuk0GlkoSBZCYMDJYwe/M7kvT0:1349:1349::/public/home/caiyu:/bin/bash
caowd:$6$yi6jk3n5Dv/5$FSlZk53lAY/grjy3PX/PwQgqfa0kuEyYg9lahZhGZIwt1CG65WmQto9qDRs/1LJY6gllbDRhrT0kttwdEmUJV/:1234:1234::/public/home/caowd:/bin/bash
changhl:$6$7LS1d9hzVZy.8ulY$54qRErPanF1ORBmv5PR6lcvUIl8jfrvg6MwgCgjV2czgKrH.WfOdHth1LQdxRRCcIwzAJhhb3xZCMr4LKNxhA0:1140:1140::/public/home/changhl:/bin/bash
changyue:$6$r7aNIjs/Q$SUWUejm/d2oL3j4COzFrmZ2mYdJudDxwiuDdN/wUjuRaK5zTDnF.OlcHDwM.BbFx6/puMj8Ac0y/CW88sRdJ6.:1120:1120::/public/home/changyue:/sbin/nologin
chenbl:$6$3tHS6/ZO26Unk$jc4ym8xz4iN5Qr8T1kbec4358Aec9gQ/m1A9FFnXjsQQSZSf7sRV0E2SWW5MVk65q2d6Cgl1Wi9dLEQicmXvt0:1240:1240::/public/home/chenbl:/bin/bash
chengdm:$6$jiKTDHG0nkBKLBC/$lCkSZUQ3IhiAOOhBoym/XoPTYDyB9FwbTsVqr2JgyIAhsaEJEHlE4/CTJoUZdtJqdW2YX/k3eOUjfsFsoweEE.:1180:1180::/public/home/chengdm:/bin/bash
chengsq:$6$gHJSLWL8N5CxJ9O/$5rAP8m4VFNOfJmTuJuBtgsJQfcBgvNDfcj252rfwu8FEzPzVoVTsawH4xfSCwUCYWR7S1.DTYmPUFaaP2ijSk0:11430:11432::/public/home/chengsq:/bin/bash
chengxy3:$6$RDPh8KXxB$l/RX3oeDb2lIfjP49OzfzbVpU/ctojWViDuEieF4jaKGfW6xHkfRw/oP4PzdzfWQxkq00td/0i5nTcShEnWsJ/:11447:11450::/public/home/chengxy3:/bin/bash
chengzht:$6$SWtQ//WNwKdm$YSyQzmVKQFBn05r3JxASEMbVFvozNMrfSx7J9X7FH7Z4VaPSVlZvonMHDyqE3dewHirMvmZrm1HGzMFdGXmK60:1374:1374::/public/home/chengzht:/bin/bash
chenhh3:$6$NrOpJ/CBwgp2edck$ttLlMRF/qNvIgBMt5b8Igjqm3O0eZ9rqEOFxyOn7wSLs6CEoqmK7aSA6pdTNWtmVUopkOCNbKMbU71G8miffO0:1393:1393::/public/home/chenhh3:/bin/bash
chenhw5:$6$DNr8bipC3rF4Wp1s$LEbRM4T.6ah1cV1viadTjOwXOcZzxb/Q.htFDCsexzDtiXaD3/w5VWdBi7DEe5ZGYYfeuuD1nF0kuxP.S/nIt0:1338:1338::/public/home/chenhw5:/bin/bash
chenjh5:$6$LjrpgwX4goAZjKJu$PXkSHQJnyO5KsGSW29PAbQUgP0V9tiIl7SkUjkEHFF6wUgb.y8odriZ6b7dodAHv5qq8GM/.Qq8kDVrDsSP8q0:1161:1161::/public/home/chenjh5:/bin/bash
chentx3:$6$g7ifN0i6imW1rs.1$mEHIoCoY1Hqg.1PNjP3pRNMZbfssyK8ZdXeA/4h/.vWFw.epSVhNpoTPmhzlLzwFeSVzcQIya5UqVA9t61OMy.:1381:1381::/public/home/chentx3:/bin/bash
chenwch:$6$Pxrex6qv8saO73aD$Yvq1MU84TCtSZXb3ayEudODKCWBl6ppQgv./S4.dCJvw1XpGmBYI9wkvoB1/CO3bP3.f8WIlAPSFgv/p.pV.p/:1064:1064::/public/home/chenwch:/bin/bash
chenxi:$6$ILcZN/6eLct/mzQ3$5yCz3wBeGM4Uct/yqPGR1bfkmO8Qxb6eITH3zQ1OK2Ys4.0xMFSP.g5H2LMB2SAuIz9byueLiEo7iHVf6VN/e1:1106:1106::/public/home/chenxi:/bin/bash
chenych:$6$UX1vYWYtTH5eO8qM$kQxI8M9lxBW6YAmU1pJNNWlGI7.w/wkGls/UHGWFu5lI46TGM90OxpHMEuiDq86bzOmOC0iAKFUaWJSZ/0dRx1:1115:1115::/public/home/chenych:/bin/bash
chenyu3:$6$zlPr43vHWOp575MK$RUAOIEY8Dyr4H2SiMO8z72Klw/bhOLj2ov1V261K7ufOYx7hVIt0Rc.mZOcqTK04qA3ghxoI3XIhwpnnmFh/w.:1384:1384::/public/home/chenyu3:/bin/bash
chenyue3:$6$MOx4zp7hU2yxNDLR$5.ltfnhTfWXxTMdleb1YXyNYbLqVWzzMm71Z6AJPjDk6npsoqT8gyoVNhtj3fO0LdddhEjKfSOCkyOy.Iwd6l.:11441:11444::/public/home/chenyue3:/bin/bash
chenzk:$6$3lIpoaMvNA03/cLI$Wr4/no95Zdt8ajHgC09aAETBLZrJFx/BJBc8GZg61oor3HauGTm0xd.fGC.4eseaYo8d2vtnns1Go7CdOk4cE/:1103:1103::/public/home/chenzk:/bin/bash
daijl:$6$.lwIPdEc$Y6ClQStetWuULepjFmiHq0abDadSkxEldY3VYNxmm35uKwmlzY5EqgNkaEjxYBd7jjSNV9M90xQgtdso0OSim/:1241:1241::/public/home/daijl:/bin/bash
daill:$6$ZFsAk/53US$6KrfULKuAIvmU9TJHv5VHx02g5lPZIw2tKJpVu4rmnpI8y0aEsPxezEXqmrd5vRiUcYFqMKfYVS42GRQNxOKV/:1191:1191::/public/home/daill:/bin/bash
dcu_infer:$6$6e0Qvxu6VGTUgDYm$mjbIClDEe7lpPYFSgQTxJs3htINiqp.8bfwqJp5bi.i6/4LiBzGXWtTGOh8deW1hUXVxYXf0k/O2nYnNqCELy.:1342:1342::/public/home/dcu_infer:/bin/bash
deep_seek:$6$COeLocMFUmQhx9bF$1c5kaVDnTPo8YDp0UXUmYKbfl4GVKm.0uVf.e1elveEwAkczD2t8q265wqvA8HH67VoHnk3De5dqhcUWHLQMo/:1237:1237::/public/home/deep_seek:/bin/bash
dengjb:$6$INBibFfmxU2ALIso$Ha3IlIdjdF.lu64DxZP2lPWl1b6cwV9lKIr0mSLDcC1fhSnKYSdIVc/ypMcnydWswPAFvlKzHiuZNkTaWRODr1:1100:1100::/public/home/dengjb:/bin/bash
dengzhq:$6$U5aRIuVv$BbEjurb1Gxesh5QMXGCUZvk4hFh0DW0L1hGwgSqPS/4xLqATRX88hq4e6.M2WRQ6EDZakGwJZURqEBU4RQkia1:1235:1235::/public/home/dengzhq:/sbin/nologin
dinggy:$6$nXLImRGBNDfoOXL8$GTf.c8J71EIJ8ojKx5lTIc8fl5Ad.V/TunEg2m8HN/2xhwI3eQmFfRh2Lh1OpNgEEnWl8bojuKsfFOP5KnveK.:1087:1087::/public/home/dinggy:/bin/bash
dingshsh1:$6$v1VQwAeBnRA.LPyc$YpjNHOaEu63dkYpaHz/.wQwhkHS1jdvDqEkdBBSewZnoWgipVwXDfjLMmPJA3uus0iLvy1ytDb6MWGOA4cu5u.:11422:11422::/public/home/dingshsh1:/bin/bash
dingxl:$6$p.J7cIdNGsKhhXdq$qQIZQTufHuOBvUqeHpi6ezcgRyDGE6k1n1gXPaTgXoVgpaUBfYyS3Ua7W3/3mQmmiYE4kH3678JM.zLFOMbem.:1408:1408::/public/home/dingxl:/bin/bash
dongchl:$6$dUuReCITX.aJC8dD$NVQ/vAZfucpKWegdXapiXsn7Esj9p0B1WWq9jTWZxntVYjOJ5jP8URZUKiSUezcFFSpcpvKhEQV9duW/hThcI.:1242:1242::/public/home/dongchl:/bin/bash
dongchy:$6$q4yv5m1maTBjXsBe$PCigwaHP5O3x1I9OQhLEGOvFz3ws80Pibrlep/cRMjkDec3P6S5B.OgttmCeWtW1KKgDZ2CWKzmxtc/yiTdtg/:1133:1133::/public/home/dongchy:/sbin/nologin
dongpeng1:$6$fiI55YVZzEHN/kTT$zK1xYfa5qnHoTjUrUbPyL/WXTgHcvrUdFuLxoM1rKaLuzvnMAEvGWlnWO1TU3bTMzAxy1WjYNBeQpi0uKygv71:1417:1417::/public/home/dongpeng1:/bin/bash
dsq:$6$eM5En/DLH$kHfGXtwp1yRf537NWfGZ8cdv8UWjSDL062Wydcm6WAUP8L3qbENeR/UaQIR5VpmlUMfIwGrfgVt37KOH49zox.:1243:1243::/public/home/dsq:/bin/bash
duanlin:!!:1236:1236::/public/home/duanlin:/bin/bash
dulm:$6$t3FckL6Qdr.$ij8wC/gcrkR41B8Y4aLKt.vrN0iBSVm1wsEM9U.R/8w9lH5MKUSQ9N4C8JdnPYnDJrZc1zhFA.bkk4pibMtrC1:1394:1394::/public/home/dulm:/bin/bash
durun:$6$rsRqS/tuQr3EP$NrCBhwy4NDXYCbUoS7OlQWXwhWxKZDvoH6p2.2nsd0UItlXii3PJBw1lYTPEfJ60OKoFG1uPbxODzyPeDpdFF0:1155:1155::/public/home/durun:/sbin/nologin
dzq:$6$8s1eg/SpAmPJ7B$r2X4wC8yOui4t0kiduSvNAsYTQ05O8U3WUWOKvcC62TOUf.vTXqiTKVZCTVEzYOBaQOWoD6I20J6.9e2qUy2N0:1244:1244::/public/home/dzq:/bin/bash
evt_panyq:$6$MYESB/oA/f$rSJriTC2jOBWivpf7DEovgi4bngt0C6vFD1YrGAr.8hYSTHnHI7CRx3M1hPuwcfnkFoyXHsq1slRFoKRRQbpU1:1245:1245::/public/home/evt_panyq:/bin/bash
fangzx:$6$w/iFCb0iustpCnZ1$hFGDnVd0Gp9AqCPm3Rk5z.e76OtJsLhg/vLYXGqDu1cYAffOgTS./Ltw4lVoA77KgXoamB8m.mHDM98DDYCzB/:1361:1361::/public/home/fangzx:/bin/bash
fanth:$6$Ei/0aSmtYj9eBGGN$MgYXgsDlsXWIqd8I03Ea.jOeP35gVwI6TUjw09Y/pjxq9WAltEgeTMMh/m1J.sybU1ve2oIHeOfwMS6p9pFQ91:1356:1356::/public/home/fanth:/bin/bash
fanwl:$6$/n6KbgJRzVsytTc9$Ws6ssfNKFLrYT1IaDKx6wxPGlanLJVD3iBDpJdMA0dm4ZuA7FOdP7TM4.Rv3SPDiWf.oKcWfgoCPBT3YA44q50:1358:1358::/public/home/fanwl:/bin/bash
fengchao:$6$Gw9Een30.z8/HZUj$vr4QUihIKNi9u7XRB.CzdTK1rLnY6eST6JbSsLbgHnKnghqWTovzbrB31gMncRDN7Lc0Lv9anNWstLFZtRitN0:1246:1246::/public/home/fengchao:/bin/bash
fengyf:$6$m3uDb/Ci/G/seuCs$M.Ho3x0Hahq5S2H0zMo.JlklvzS57SzHF/mTsHpTPEQFPZa0OgjCkCP1vGgE/LRMTttMKUqKyC21IRxhIzVPr1:1197:1197::/public/home/fengyf:/bin/bash
fengyf1:$6$8Cyrmn9ak/IaIEk3$VwlY6pUpSI2ZGURVE2aJXt72Qe87qc/MeK2d6zqrxAJnallkxlMixotmSsUndv27iOCfgMot3Ia1XYjsW2QLi/:1366:1366::/public/home/fengyf1:/bin/bash
fengzch:$6$6ReO54M40EuEr4lp$zG67NWl8STScP.Mm0twBiWL1.y8XEJGPK4wAf/TgFJohMQL/CSzk/nmMeisBfpxFMGd7Z/.YF.nVB.IN8XzNo0:1247:1247::/public/home/fengzch:/bin/bash
fileowner:$6$wEWGhL.gzbRVGJhc$nCnqy0Kx5/V88TapC/QLqFhKSW5sjOtudxm6b3ETcSEAlXwkpT032AI8r92gZM5DXps9w1ObmjANIiMDxlJM9/:1084:1084::/public/home/fileowner:/bin/bash
fugx1:$6$CnlqxwbC/oAGx7kL$67qg1KYaqs/uJgovrJhycTh0FzchB5k7/Ko75.msAMrP.Z/M8Terew86NiBkbGgE.hUWTjX59iXckdzBscXpd.:1216:1216::/public/home/fugx1:/bin/bash
fuwei1:$6$vGsMSi9chK4Gab47$bcqqYCEhMXvHiXxr4zcDqBd4Pvk55HC/ESVWksEHA6Zvmis27YkFzGfwurpMpL15BuHVtfmoo/NKb89M4TKUh/:1332:1332::/public/home/fuwei1:/bin/bash
gaojm:$6$4FCeL/zqMH$krFDiMbRkCu3ZykIsY/YuQGg/YJAlU5ZH8ZvK0WXkZCH3f/aaM5O8.vtQmRiufya6fLJN.RNmfMv8sBY61chi1:1218:1218::/public/home/gaojm:/bin/bash
gaoqiong:$6$YnlUWCGiGD1hF7ny$yWDE7biG.Is9UOBvy.gDiI8t85OA0gWu7Y5xookON2lhRh8Ihz8GtSaOWxBqQ.eI.fXscth5UMXMg9IrIifON/:1073:1073::/public/home/gaoqiong:/bin/bash
gaoya:$6$hgXZRb33XoZbkdt9$ReML45HCXxw8VWssfXQGUgI7UotnKNPBKRBRPuBG3rXLlWNnkNze2gyZQuzKdxI0rkUHSWcHhNAZX37R5zfHW0:1061:1061::/public/home/gaoya:/bin/bash
gengzhl:$6$68Oa8/h13jkL$PUu3xX0JWNxNK1bB/s11aGJ5kf2xFcVarETlRG2i84ctMO6zW0Y8CS/AIBcSR913nu00gTLBOk89C0HUETp6M1:1248:1248::/public/home/gengzhl:/bin/bash
gongmh:$6$.R7veAWYrbQQmrIw$g2jAS50DMT1e1sLsJKMpys9G0uBDBk99NGo7RY68jkDhQDPc2LfLX/mSPyeLyJR8dTgThRPFkNnXdl/PSOFlY0:1139:1139::/public/home/gongmh:/bin/bash
guanyu1:$6$Qmi6AEf8guPeB3Gj$6c7nsxCrEDZqQwulfuluzGS8R16SeQv4Is3ibQRGQEmle4h40vjf2Wnnk9KBCdmtqniVBYy8FrYXkYXjJpXyM1:1154:1154::/public/home/guanyu1:/bin/bash
guizhh:$6$ZSRK2ZcExp.4tUTS$5wIa0tYrXYFjSMPmwka5W5ieAPqKy5A39QN1hHGmIlIbIYrnP5uVWZ84./5SGIVLWqRJ58h9uLc8rHC3RETxh1:1145:1145::/public/home/guizhh:/bin/bash
guobj:$6$5m69XlI.tRH4tbE7$Ka753R9d5YjQN3rsBnKPeECsb.hH42eK/dRQTvmklK9DxV2Et0nAp3CF4akG4ZWwfXIVXGA999r8t8N32/7/1.:1109:1109::/public/home/guobj:/bin/bash
guofeng3:$6$Fc.d4ohZlH2sif2/$Kv8Rc/m3DJ0TedXa.qABMq5EW07nv8G4hCjvscFASrTVAEpW2TxsUuRtDKFDKEpCOwzVfcPjh5sfBQAQUKOIj/:1350:1350::/public/home/guofeng3:/bin/bash
guopsh:$6$cmWGdYERI7Cae/aH$YGSfP8e7Apch98YEDMAU7ycghN7Pkrm0AZrxvbP5gG9Xn/3x88wJbVg/6unMgHjVtpE/RIqRUiklTG1DJBKEk.:1323:1323::/public/home/guopsh:/bin/bash
guoyl:$6$Zxl0i4Ggt8W16rgW$kxXHtUmCsdTd8lt/d..xNnDIPQQCK5XJxMrVo.xQgmodtRBOAOSPEoUOO1J2AeCM824wS55Ekrwb0q7aeRZ58/:1352:1352::/public/home/guoyl:/bin/bash
hanchg:$6$AOH2M1PqM6/2V$sNRzUxsyGKiCLcJMJtN231.D8gcPdrMmJmN6/17va.vpHpsXv8Jjgt/A2lBQhelqm8jMyLjGxVkAfTJlZ3q4h/:1144:1144::/public/home/hanchg:/sbin/nologin
hanjj2:$6$0XC3gwKP5GklakKZ$VFJWQxMtNQbQ4fk5G2POgVgHYDQV5PUDx0GoXt1o/XPCo0UhpK3C7A5nWcc/cut9M37f3ZgHOo0.ygjCCLoVK1:1318:1318::/public/home/hanjj2:/bin/bash
hanjk:$6$K.fk5gDPRNf2xEiu$3LPJdcXyxyN8hSUJ5NobtwB27E4G3Yoj5FUC9pviN0N3xseKB96PXo4UO3iTGZpLAsGxLDbbqyRY1wsf2xtqX.:1391:1391::/public/home/hanjk:/bin/bash
hanmzh:$6$r01gm2oH7IypHunx$VH/Rvzmdi4useIak9AW19L0t8ZozLSrBRy7vSZEwR57ZYd6R2eupawzvofg8vrPvMCpggtvoRwTxSrBnT9u30/:1249:1249::/public/home/hanmzh:/bin/bash
hehl:$6$dzmsT.Vg$D.OSbQ0wyMqja9iA1UmodzdURPQ25X/strPCVeuXPL2ZvXjum0yMc2RF4ITU8kt4DVOUmpdU7Fz/osg4D7IgI0:1067:1067::/public/home/hehl:/sbin/nologin
hejp:$6$7ie35NefF$C0Tfm7OtUuaRsQvxkqwjxaX09RTZNMS0Cg3IuyLfRvOBCxOtc7hAkur3Yzo47Ee/HTII2P2/KLEG5LMqfZ6wW.:1065:1065::/public/home/hejp:/bin/bash
hepj:$6$E3WXnk.TUm0H/z/S$NUPNTCIUdwBpndGsPCLEUtLxjMxzTTsJJaArHTw5N3jvBgPcpXSoqaskgBl0IruOAID69U4h45kxOIL8uevrL1:1083:1083::/public/home/hepj:/bin/bash
heyf:$6$hDgkp/Aa$nJI3xIq/qVmDAKeoZ3PjK2Bqu9AzH00BSEPy9YXAmVIZ5s9hIFYkABbyF2v4Gpq7irQcycL135hvZtOACFuGG0:1250:1250::/public/home/heyf:/bin/bash
hpc_bw_intel:$6$bLTTjhCrGNstbnpd$Btb3qqotg570BclFknUSs79dGKfSBKzaZRDc7X39b2mF4Gd.O/T8K9ALb3y27DPLTkUjbFpQl1v1JIUFXOcHR.:1321:1321::/public/home/hpc_bw_intel:/bin/bash
hpc_test:$6$7kLOrQ.TLdjDmGX2$jOTaJKIMx/dwuUFUcRWEFEKJLvz8J2TC/iVoWqWZ640r2xLd9Pc0semQBLBwTedulW.pTccU29vYeMJ7lwvrr1:1328:1328::/public/home/hpc_test:/bin/bash
huangly:$6$RxmSB.S09m6iKhOu$LLM4BR0QB4CGu0xfeV2kDVQW4l5UDfg3XjNtvZDGHtozVT6UEDClWqZArrMjqfwoLtGJHG5McKCl2XaZtXrXu1:11437:11439::/public/home/huangly:/bin/bash
huangqd:$6$HOwnF72W55WD0uzn$2jN2XaANU5Axn43xeUXL4jnZF.hcfBZiW3Ei43.nfxgzzbQTwJg4Nd1gwPSyaH/e02gOfP84dswYLP0Pup3Tk0:11428:11428::/public/home/huangqd:/bin/bash
huangwb:$6$clt.M/mQxxkiVX8$cg1H2OYptetGJt2v0L25VmHD0x1RVLbtiv/FulfMrxrQgH2ny9GH4k1IETxUv7JxSMLBXL9lT7YlqupTzpRkQ.:1131:1131::/public/home/huangwb:/sbin/nologin
huawen:$6$az1Fr/5J6Bk/wj$d2hbQRf5EOXhG6DplRlYpRvykUXbWEZM5k12Ql5v.olYbQOAs49xkRoS41hvghzR6ui8DMutOtXexCpDwEae61:1159:1159::/public/home/huawen:/bin/bash
huchen:$6$Iy9eO/78zc0tcSS3$p/p6Z0wUQiS9oup1m.dFwVKsIV/Wg5o.cq0/GTa8UtAE18ezNhsNnnslmQlmEfY5zhe4NPBa0JhjjQc/T4oYu1:1053:1053::/public/home/huchen:/bin/bash
humh:$6$d.VzHtD4iT9xL$w9AqMz9O2rliC8NeIuuS8QOf85GCoVDRvnG7RZBndoMjhLhPfsjd3IrT7plLASVMdkg2CLQRlq0CkZkhsQC.Y/:1251:1251::/public/home/humh:/bin/bash
huml:$6$UVTBB/w4BI$iHNIfHGmIv0D0upX6G0lLsxWx5PtBCPLdpa9CcPOvXUKXCI/kGVZYv.TLL3t17RwL2ASf44FoWSxWoFx6RE5L0:1252:1252::/public/home/huml:/bin/bash
huoyj:$6$5HIl6qbEih.ujBQX$r4b4JERUcjxhHO0G4VI.l2cDcfv8cU05JXk01EBmzTb6kVgbCXAx/ZzzG7z01HXSoXRgoF1.G4yv3ZIWIR5X01:1406:1406::/public/home/huoyj:/bin/bash
huozhk:$6$tx35doPBdgG/5aSo$9nHRN42c83lv06UfcdShDxjbQaW59WgaB4RsCZGyV5Dnojs0SyZPC7O5rr3I7jtCuXixcm08Dxqg4JttHXUj9.:1227:1227::/public/home/huozhk:/bin/bash
huyq:$6$jQdgzn5OmvKC9cCz$F4tPhUGA6TJABEjyglvg3FGgIOwA9PGi57HmKYbi64hiyOYeRYwWkof7u0O.xOhpVC.wX4sYGkx.EC5znDwwh0:1134:1134::/public/home/huyq:/bin/bash
hygon:$6$Oq2SqRGgFl4pgj.y$QqA3Pmga3skxQWwufr90r0SdfqYWsnzmkVBuVgOO2pcQBXNPY6fswcwEQDLEpuvdpRpCtnvOrMCuZnMPHiyLG/:1253:1253::/public/home/hygon:/bin/bash
hytest:$6$Q3YGV4602UQdf3Ow$iE08enUWpOOaj.774wMeu6y.P.6i1UeJp/ZUOJFrzWgv2GirvrVJLiEB0uARY42WCTgSYbRmOTWCF1QinWRDR/:1343:1343::/public/home/hytest:/bin/bash
jenkins:$6$hkbS0f5Mg2aTy5FV$tmnU1gCwBIfo5n.zUfACHNzut.kO2rPNvp5J9k6aJF.92BhZlktxf0WtETAsEcXPtB9D122ys6a23q3yzOkaC.:1095:1095::/public/home/jenkins:/bin/bash
jiangjing:$6$h1xIObQSP1Hf/xb/$yTjB3z7xeZNWcGgM0ycVxPSAfiRo7vv/Pg8HrEpcemx0iDeKCWM3hZXG4RIEvRa6Wj/sbomzM1LB5OhFugiXM/:1254:1254::/public/home/jiangjing:/bin/bash
jiangpp:$6$vOBTtmCUcNCr1BaK$KIndfIZvRgGdmkp5HR1JdNI02q612tYxY2ffdM8xybB25aA4OL.PrOB6iiRwpTofC.racSKbbFdMgJ5OTQtPQ1:1322:1322::/public/home/jiangpp:/bin/bash
jinrong:$6$x0QTa/H1p$UTLuFxE/hZ8TsF/ppMudImr0cKmIvpggb82saxjor6vvXnUcoqMYMIvsM.j53028lNOlNoZ4CN/OQU3SgXNiO1:1173:1173::/public/home/jinrong:/bin/bash
jujl1:$6$L9NFhpxVAgeh9kGe$ubQkjk3U1k7LXz3efinskr8wqlWFP1hMG/Jdw814.aBolLWMfC5SMRN7PJEgxk6kd6WCgmGO3pqVk0P2To23n1:1255:1255::/public/home/jujl1:/bin/bash
kangjp:$6$NK30/vtKM9b4S$17A5yBaK8eo7HV.MTYfbzL0ZzS39FiLbilo6HaFYwfR6Mj9l6daUPJHXDW76wKsegeCS3L7OhWvLCmd.YyZfk1:1325:1325::/public/home/kangjp:/bin/bash
kangle:$6$xr4TvAELf7EEMbUc$8DztaUSad9f2vj2mnUAXnsYg4tZhizCsRXQwqP1DU2ScK7z54ZglZi4kQRXKhonSVaELKVUepCcoiMb1Wp5mq.:1200:1200::/public/home/kangle:/bin/bash
kl:$6$egS88Xo.6O6$g1RF1A2LvVocajWBPE/q3iMhpS61m6C8tEWgjR0SfLkJLWrkOs3XYaScLGY5ptuC7bKmcwj1VOFpZTREnxJu/0:1256:1256::/public/home/kl:/bin/bash
kme_test:$6$fMDtOBcAirDuMf5D$Zs6DpoRVqGoDlqCM3x9aslsBv4rUilmS5WnHdZN687TN4adgw8W8ydxB5TUX30SyazoRx6dNm/MP3Kr9DESJk1:1340:1340::/public/home/kme_test:/bin/bash
kongjy:$6$4REsM4/W3FtQLHxY$jaX8oONgU7nBe3iAc/3vd8w.IVphR5wqNtwVuuxdc8Nr5ldy7JYFK4tccwjeNHyrTqH1JB.pTygPMUd0wbF9y.:1319:1319::/public/home/kongjy:/bin/bash
laibao:$6$YukRjvg5a3iHl8Al$R8SsHwxsceoWtihpwV1yGpZu8dg.SQ1QmXJDNhKojg99vgLlKvGzc/xKrqctUR6VR2VLz2aKc9mBm5OpOP123/:1151:1151::/public/home/laibao:/bin/bash
leiyang:$6$1kkx3uSV7B5VhVPd$6nbaBa8ETPD1i7Qtoww2HmK9M7R3mheGdWF3oYUIUtAJt679nx09v8OGtVwkc5inU7NiR13LouvUcdtb6IjSf.:1331:1331::/public/home/leiyang:/bin/bash
liandm:$6$4EQY7EKp4c3SlVsV$YTCHBw/c13XggIoyEBFKHBGm6VAgW2i6lX62Tst59lQ5X/opTHYMiOEQi0x819dW6ydzFWGo01VkMwqwflKpt0:1257:1257::/public/home/liandm:/bin/bash
liangchx:$6$C1JqFnUTlY1Lzwcp$8gyRwFmNqoo1BmNUwCtkfKolzYa3umlqGrIyCluR2ezK3S7PVOj79cc9hYLfw6zb/35//65B1i1BCiO95ksKc1:1346:1346::/public/home/liangchx:/bin/bash
liangj:$6$nRTOS/XalN$MbGwOhElFhiLF2nqOi0/knudIkQljLLmbCQg1obLuaF7CmUxGFb06s.1queB1u8CGH7zZwaAjxHlWOdZ9frCU.:1258:1258::/public/home/liangj:/bin/bash
liangjj:$6$HoLko/Q6J$WMFYkr1bqmUXRJ1nPKTwzV8m3iDgTU98MNopcQcd.UPvWoqWoFZDNNQahH8ITpgZjYO.icDMXHUG/IuldRf5W0:1075:1075::/public/home/liangjj:/sbin/nologin
liangqf:$6$DGUqG/wpXc1OI$zKkJ3PTOKphTxGkhLgSxOuoJdUkwuT2TQvBEQ3OEnB.21dnfdhwOWOYGVVh3qy8uzSHgNRLIXH450TBJ4aA590:1259:1259::/public/home/liangqf:/bin/bash
libin6:$6$OW/zuSefkYHpT0Ag$jvfPn3zEmTn0s6nX4jxKw8pTHuo8ptTUezrzdNyAX/8SeGNzNQP2KCjZkychj7Se.Pp75zT3GjFlvWoYICtnL1:1344:1344::/public/home/libin6:/bin/bash
libo11:$6$4bsMMwY7i1WL$7MqUpIr2uTK4/aWaOh3UGV6HrrCd5vm.X3ROB6bmqEc8hIRyZUAU3uUfmA4BMau.R5SxkGcq1W2A1PbGFQtVj0:1157:1157::/public/home/libo11:/bin/bash
lidc:$6$f.Py0XDSlMXYVPx9$o6f0weFd4roIJ2tU/SSKvWhk41JT34IdX/AWM.8/BcX8oKku/aHq58HqbLQpgYGa9zlzfP174Hemmrgn56YRb1:1055:1055::/public/home/lidc:/bin/bash
lidf3:$6$Bz/lZwRjVOlMgji5$gyFUvNNeFlF2tE222q5fgAyT7gWK50.j2jpMCnkZFiLzCNIEmeGcDdL8GMDe5N5tPjki41MH.RABiw6BmhgqL0:1359:1359::/public/home/lidf3:/bin/bash
lifu:$6$TTq0V733IAP.8KJY$Yk6n3OU5Jq6.zZxfhkvyjVLiBF0ttECduuCtO/pfbnjdYVg/M6lct3.bxxc2mDSCiLa7QCByN.Fdec1tXkFp4/:1206:1206::/public/home/lifu:/bin/bash
lijh8:$6$o3.iCYhz3wghML4v$6kxRlx0VD6ue6HSWlaFu4X/16dKjL0zLsVSWynBFJvVTGi0fyRYI1NcJ0e9kBuayLUkB56BBV6NWth2n2PD.j/:1382:1382::/public/home/lijh8:/bin/bash
lijian:$6$TR5HFAj.ZLVwkHGu$yNSlDdQtZh97aCdYRvfhiFSkB1xYNLhcpujR0xHkhb9OfRKwZmTJXuERQftTRbtxCDucYgcpcsMrcbSLtOTBO.:1068:1068::/public/home/lijian:/bin/bash
lijing7:$6$5pEzZpUZ6RS7etRN$dZmbDVobuT6haXPPw3J8ISpqi5COuokepvSjwRoHFMmFZzda7nwhOXeVyU0mkZDtveI7WZ7md.qY9y0tiqITs.:1357:1357::/public/home/lijing7:/bin/bash
lilei8:$6$LfujMNxXRT8Ogms5$47ykScxnCHR2Lvm7hUrCg6IzaoZSc.t1sgJHw.TD1Fv6rc3MmJFYCfOGy.DJS8.ed9D4XCqb8aUT9tk4yxMBN0:1403:1403::/public/home/lilei8:/bin/bash
lilx2:$6$YyF4bzvc1THTxGB6$VwXgvQkyz2EpIBdqHMrcO566zLkoNiYdBYHpZ6.X2fh0Cgovo41KSVwmRHQxQrVjJPy/JWd9dvlW4nU9YSvI1.:1345:1345::/public/home/lilx2:/bin/bash
limeng8:$6$Y.ENeFC5uk8AR2Zt$OzX5I7wbp2DDby243VawhLRDHsPheYZjKYXddtR3bgW2iggUPfYJUJGtwGjyOCJhwlXc5byX4iw91a4WJUvUZ0:1364:1364::/public/home/limeng8:/bin/bash
liming6:$6$aDPqEkMVs5gkuoUc$TE9IEQfbOaQuVyP/TOyRYwgMV7AoFs3kG3vEVTaZm4jgkWzdFkd2H4rrXD2uKjQQrk5pDBsugpFao05b6lCFq/:11427:11427::/public/home/liming6:/bin/bash
limm:$6$/bxDpq.m7jOCpx4C$aB6M8fuKcNlnUK7Ot9V.J3VyT6PurTb9erJ.jSnMVMvvht3FnXVt6QsEM1bZG2LotoX.L1M.TR3IbIvvAZXf0/:1102:1102::/public/home/limm:/bin/bash
linhai1:$6$clUCn/TIIo$ydoJij2aQQtPMppcX.RvnrVWE9OIUbh4g7SMLvCI5qNex0GJwPcnRSow0wMouJ8uaZGvqGFunSK90NoQ6aZa4/:1189:1189::/public/home/linhai1:/bin/bash
linjq:$6$FfuUb/v1TWvf$FJ1uGnoa2yoXvJ8dQBVf6q9frK8l7Hu2POZ8cCIBi0S.6c7cCKY.vBettG5VR9v/kPXlgao0OlQ44V3bKPzWp/:1092:1092::/public/home/linjq:/bin/bash
lishen:$6$ZRaCQIRnTY$WpEMRqbOpWJJ1fTK.paF6eNOXvqNSn0tAEQQFIxZQzost0Y4BGfUz7rvZMPYUKA.tl.GYag4SPaUcFQdemi5h0:1089:1089::/public/home/lishen:/bin/bash
lishj6:$6$DSzP8Y2Eyu/kK$281L2t9fFmSW800VKB8XXBNkVVyOTD2gYrUh4nQEMh1CD6/aAj6Q2hNv9N7ObzmV51AvwaHj11ZaL2r4wns5A/:1260:1260::/public/home/lishj6:/bin/bash
lishsh3:$6$ea.0QG8hBodRTv$eidab4buz5zloByFI08LtTPIotMCBHmEV3MHg0.C20lbpwS5t/Ikiq3iOcXvUvKfryUfmrmMNu9m3b6SBy7kz0:11432:11434::/public/home/lishsh3:/bin/bash
lishuai:$6$JnYceMeG.YVOW$q2mdurU6kfh4FyU/cjZWeqhlhbJ33APiZlQyF.muHszcNNEUhtkSf4LL1MoxG6PJjiYOWajVl.uCocX9/7yCh1:1261:1261::/public/home/lishuai:/bin/bash
lishuai7:$6$wrLoe55cSiJkf1XS$vLYvB67DZuxGH6NXV14rDcX9N8egPJZoaH.Ie3nl2qo2KC723ZbkgbVCp2mgA9vc9ZOVQ8GqATusgQwMYQJG0.:1193:1193::/public/home/lishuai7:/bin/bash
lisj:$6$d2qciARy$84g/lijQs/KKiyvbmfhl.NtoRVP/D3/vFtbFu.pSQY0xCGqzRCbpGO0BXGsw7W/MmYESzxl5K8PWcGFa9VqiG0:1096:1096::/public/home/lisj:/sbin/nologin
litzh:$6$2T6PGtks110AgMBU$S8hiyVRlprYReF2B6oZgbtb849WV/5.0SsU36hNkltDOtHkyDpG8foB2hLFXlloTWunMT9JNShQzc5Gze9OAG0:1370:1370::/public/home/litzh:/bin/bash
liuchy5:$6$extAGBWPP2Qr2yJf$gGFULqRSQDySQUy8cRC67QoAkh/g/Dl64CEUr80rKGLWXhuDeKMFRFQFENj6ePrLWbDVUyoOUOJsw8NecoD/B0:11425:11425::/public/home/liuchy5:/bin/bash
liucong:$6$37QGjmeeUip5I7B2$WsR4I9vbj29Ilt2p/RjS3t1SPJZ9Sbe70pIX9At3Ql3C2YAHz5guVofWOek5fhhjhNKqTYFWv9no0qKPJvnWl/:1112:1112::/public/home/liucong:/bin/bash
liugh:$6$GsPTB/w7VBS$JoKh83O6nRHayBVVQe5MNXC.yzOOTe6KW9FGwcI16tqNBOkoFmTNwRC/LkyrvSG6.zgZ2/aEUvvmp1EzvQ0Dw/:1114:1114::/public/home/liugh:/sbin/nologin
liuhw:$6$RAkPxhif$tootT/mNXCaIHVWp2nes4Hr3tswEdXs5hs9w.ffvL3JaDJ43SiVvvBfuTTtktuHFr8EKVxProkybnpk.zZMy41:1190:1190::/public/home/liuhw:/sbin/nologin
liuhy:$6$eHeeXgNPLGjRyRjC$dkYcTee/bjE4Pt5QlGpJAEEJQMhq5QjNw3Ld2chMa95jXK8TjuU3oSW5if1dk4trItk4oRSKmItaaeOZaYAfn.:1072:1072::/public/home/liuhy:/bin/bash
liuli3:$6$hOzrO5ENv4/NwGR$yi2f11h8PeraE1y0Gxnz9blF5LFaY53Xp.AwddqnA7fbh52T20yF7lL4QONITGiqAorWd1ktxZx76G1.cNNy2/:1262:1262::/public/home/liuli3:/bin/bash
liumg:$6$6CaLfYkK.PPsPdhZ$4AcvdUURhOmuO4UUtPvqUEpPtW5eiES9ljibmYiBHvt0IPULRI3cTu9cY9XaBdBDbhgF8QygGEeLIvNd8QFhe0:1078:1078::/public/home/liumg:/bin/bash
liumy2:$6$1v7woQkxhj$X.WJ94pZJmtNbsqr6CLhqIlIFuRdABkJR26.M6QIlj4MsR6GcVaeC0eArSHcHq6seGMV1fjb2cgeFXaq2D6XG.:1335:1335::/public/home/liumy2:/bin/bash
liupj1:$6$v2Qy4jzJwbbXQfQe$2zmFePfKK7Yl7JF0QATPgUhsJgXp.d1xlsffM.FgWMD0/kTFhFnWntYCFEs70iQ0/4OycDBvDOgIs.vbHYBM01:11440:11443::/public/home/liupj1:/bin/bash
liuwb:$6$4mZvOdkD9kkl.4Vm$EsA82JsxP78KB1ILzRGmlNaf0r8PS6wG5xk/q2QKYxjegWnwtiEl7u3YZibvDLJAzSN2ccIfsjWMkKuXjdYkX/:1402:1402::/public/home/liuwb:/bin/bash
liuws:$6$j4qDh/a0pAWn$IyIVQLff8C7imieuj/kKCCyTHQl4aByxGabfvoTnljct6faaUH0SbNaQRz7eKSKX3l3amRvE8KYgH3TbrNcsO0:1263:1263::/public/home/liuws:/bin/bash
liuwsh:$6$fF6tF/yo$5R5jSRtj29iXzoGa5D9ZtXpuun1NFAedgA9TTSjF82ChJBjCqI.5hq.atUTWXZxIYMP0We03ky6hO694kG94G1:1395:1395::/public/home/liuwsh:/bin/bash
liuxu:$6$HznCYae7$AEEWc3YilbyluwIlP7ImQ7iM0gudXzAJIl99R02Iz3Qzv9ACW61jq6V5jqGOhQgGoY0w2ZB227F0kUQog//180:1264:1264::/public/home/liuxu:/bin/bash
liuyh:$6$dnIrE/pJEJoK4MtV$v0jaZARRm7y9Nw9plGDmWqoJz2u./lVXXer66bwhho/rL0A.xKNac8F.ukLl6zQmn5N8KOj3oYGR47G4DHRP31:1091:1091::/public/home/liuyh:/bin/bash
liuysh:$6$kBV0a/ft4R$lYabXylnjK7kCjhSuVn07gwZp2/ilsRwNeF3v0DTQ9KBtaQhnr09pQwmd/QJ8hjDRaW5nOK1is.U9YyFKTE0A1:1326:1326::/public/home/liuysh:/bin/bash
liuzhch3:$6$PRX9KCLLsZQWsB3W$i0Wc5Z0Y9dfG3VfzaLpvqCG8gHA/UOw8lx4oNUOOdOjRReK4IxoTci.27eOGdjVRRk9F.9gCXkKfi4fY.s13H0:1163:1163::/public/home/liuzhch3:/bin/bash
liuzhh8:$6$vPo104QryD30BQDu$3mILkdXxmoZ9fMWtU5IDdU5JJaP7zOtRp7q0Atjo2pZuAiFEPI.EhUZe2Xe8c0jCKrTW/6Mz8z0KjGx8S7IVd1:11423:11423::/public/home/liuzhh8:/bin/bash
liwzh7:$6$Jzcoz8ZSSC3Kacfq$N8SnCrfpKVdMvG2cda24adg4og1DML.NC/d7aO1uZ27N9t9h5b4Qe2fgREqVCri9EXH8szL1TycnmFbqsjw8p/:1400:1400::/public/home/liwzh7:/bin/bash
lixh:$6$iBVgYO66wqQlnSZ7$AAywZfjGTXClD28qkm.OuXu1qTYoWJljkfWyKA5dIYQRZ.rKHSFCh.1IabPMSEXoXhCx6MG8slmrxvoQXxIG/1:1171:1171::/public/home/lixh:/bin/bash
lixy11:$6$vWjEzNk1wKX4txUl$XfJrs/S3tWYdclnQS/p2jgRsUlxyk5nM4QvxUPW.iFno.YeZtm/EEeFBox3XiJskTn4T/aIEDu2.9xWsxOlv./:1348:1348::/public/home/lixy11:/bin/bash
liyg3:$6$ajN8xySmhj/wFWFZ$5Kd2gO0aq1E7Twx5nOfV0q0Jx9Ed9i0Ctw/H3xgsu/s2XE9fz8NMEzjA71MGwoUc3zWyT1fhftkNeXo0tHene1:11420:11420::/public/home/liyg3:/bin/bash
liyt6:$6$oTfbRtjdfpAeoJzQ$BwHW9dgMFE30jTT7lFU.j6mJEjN1kh3wd7NIedfBzKhAF1J2EiLWJIDsboYdHGMvILVF8686RWeRjXSj0SP8I/:1410:1410::/public/home/liyt6:/bin/bash
lizhg:$6$ALVtti3RBHL.Y0L2$QYRnk0dkvEkXIx1X0M69dp2uoadATXDMj.cvIl9HsSiN/0r4vkdcdl9smMFqs3Sh/DjGk1rqOt/l9ND44Julg.:1178:1178::/public/home/lizhg:/bin/bash
lizhh8:$6$u5gzt/DsPjA$b99Mz0YqGG01LuJPBPK0.3OS.KmYJbl6IYBkngrCQGuoOVpErJsvNrYsoqrl8jvi0IKqI2/PF/nzRuAl2mvXk/:11424:11424::/public/home/lizhh8:/bin/bash
login:$6$GSYgJpQQWX/$kK6/4rAe5wx2sozFc7oKRGCcISRbrINwaUqnBCAoJNffMWtdC/esXpXVnn.M6Rr2TEtPQUVD9W9xBt/dZPnkd0:1210:1210::/public/home/login:/bin/bash
luolu:$6$z12WC.8V4blBXqpb$fMmY3EOlnhVpXgXdPba78WRVyEb2EKsdct8f3Omee5pWPzUl2bbWhCt/FeTszI8FYk7X8/9XWh1bBoGimPTYx0:1373:1373::/public/home/luolu:/bin/bash
luopl:$6$oeIgvJrbSlF3tk/J$Re3TmvcTnfku0nvL07wgUaBSM56i1AOBV73rBl08oADnvzXco9MXWanXeSyLauLHqnNIeZILV1zOun5gvYfT91:1132:1132::/public/home/luopl:/bin/bash
luosf:!!:1238:1238::/public/home/luosf:/bin/bash
luoyao:$6$tLK2.HJHi6FMylSf$WQXNAVwWbySmRvf3/IhTv6xYgUJsigVxlS7fqsutoxB0gL38Brnz/rYeUD48qBas9dwH21hHrhcm0bI5uV6QY/:1124:1124::/public/home/luoyao:/bin/bash
luyj7:$6$cPkhb3VxjPvZzcZM$HZ14aW0A2y1HPL6lJmKgf5hgk1vCuzl9zLGCJQ8sg0ZKltoCmynQJc1.URuqR/fYS/0plR6V6aV5H9H4GZeJ20:11445:11448::/public/home/luyj7:/bin/bash
lvjj1:$6$sznfj9vJ8bfVZE1M$D0wSKgNaIg87egYdS1iaYZbVcbssWsr/yEcYemMQj/NG5ui2i/IDxrPUhWNaGb75qtBbCrPXFnmr4fhpAp5ip1:1409:1409::/public/home/lvjj1:/bin/bash
lvlei:$6$h018nxR0h2/ATX$Hija3WJ59MH/oKu77hNGqB2754u9yXpEX3rK/YzeYfyhlivXf9CjsvNE7ESf6boQSo/pCguFb3VzZ309ur3Bv/:1266:1266::/public/home/lvlei:/bin/bash
lvlei1:$6$pCYuizkkv$v4rQm2hI18CqOsRIFrrJp/Yh.GWOJQOo6TCpJxtRTzK9mlp3svb881o.l5kYVTQgwQGkuYHBKIHWqcfj2QnHx0:1212:1212::/public/home/lvlei1:/bin/bash
lvlu:$6$WAZwW90f5V/.4eq$z1KOLKWXzBUdxs4c6MSCvml.MUqu4lnLwICE5mZxN54z9pvyd78QFPN48KL1WMTDz.MSzrDp6cYfAHlxpWvZ.1:1119:1119::/public/home/lvlu:/bin/bash
lvxy:$6$yGpNUXIElzs.jICD$OT5b91CJz4W/Ae.cp8wu7EpT5Dioibsr4ZUcdukJ.2idm1ljxzFgC0k6QDsGsq4UrujbsD6ZOjiIx3IhWzvqP/:1399:1399::/public/home/lvxy:/bin/bash
lvzhen:$6$ZNxrt/OgN9$6kYBN/dsIzMITAueQ0VQ174RwV8g70XGW1zlPNyWe94EqNdWqqRFMiOz1UEyAG.jmCGmYrXr1TtFRyTyFfyTf/:1105:1105::/public/home/lvzhen:/bin/bash
lxt:$6$iF7SS/8yIAW0aO$tewoFzfn/kigj3QG4Zy..08fCDfNcWVyTiq8Cs4UzHKYtRRpiacOY8N5V38hSV0tAV0V3CkCM5q1iXUCGjUvG/:1267:1267::/public/home/lxt:/bin/bash
lxy:$6$47Udm/D96fO$RkjP1RCBskdkv5pU1EsxX159JTwllZ41r/JaeeA30zns9rIjYg3m4UUmhFa2P5jhIETr6m.a4Sctm/BZ.TknZ0:1379:1379::/public/home/lxy:/bin/bash
maming:$6$fIF7f3A4bhxwoMBj$Rw1Z6hpoWmgCr5DDOVgwKPdZbkdic2EBaJ6WQuK5TY9pGJE9Jwh9xWPxKBAdOs2EdWNKioefhOphrrJSPpMOE1:1371:1371::/public/home/maming:/bin/bash
mashun:$6$DN5..kQADsK.OSos$oV0vLpAFSgyf6aS12qFHZmYE1TnwdjAUPR7cFhTSsa5BpOWRzcGd3xm4rH9nJknxTkWhhlM.vceTAYkjN8QFD.:1111:1111::/public/home/mashun:/bin/bash
mass:$6$AcjOdx8Ab5/R$ybIb2tgYwfBtngA7SFVf3ho5V4KHBFeZ5mVjR4R3BJ2jCsfR6rPcFSUYo/hsmIaevnK9jIz//ykhbZLI6XYlC1:11416:11416::/public/home/mass:/bin/bash
maxiang:$6$RU.1oTCzN/FSPw7/$lgznwUK2nAROmKDgJ8u8GwztDJSF7SKk2BMU.CJfcZRpaMbTIL14mPsM7URznpjmf4U34qpIsOkyeI44bD9lT0:1125:1125::/public/home/maxiang:/bin/bash
maxiao1:$6$LxiLG/ij3rQgM$KUH9sij4kukIPyWky7I94uSd0xAk6RFu3fwWXYkOoNSzkDPYSH8jM1fOB76aFtOdxOJXqi1Im6kXY1QvKTp7I/:1388:1388::/public/home/maxiao1:/bin/bash
maxiao3:$6$z7c4EfaH8Mca6zEC$t7.iNJcLW8xbFurAYMleRS0AmomIuSy6VJNR82TuAS9sJ9VJNXxfkAERhyIMkysQoB.eUn85XZX3tDjLNJEsU.:11451:11454::/public/home/maxiao3:/bin/bash
mayp:$6$5To60O1CdehZ8h7z$O46D9SKtrB.r25PMQP2WCig/o6PXfiMbtAqwPuhmYzHCjPdS7iS6MOgpj4N.LCgC1/mcXeGmiNRVDgYutCeV20:1147:1147::/public/home/mayp:/bin/bash
mengdch:$6$GnLdB/8744c/$Vv.6WtvrAxisP1Rl7V/e9yh8OPOxrYDpAGY.qKFOQVWMmk0XLMNlYbqYPTA6qF64k//nQn/Q.rMoj8vvJiqb6/:1056:1056::/public/home/mengdch:/bin/bash
mengqch:$6$wEeyWzlr82/$QZ.cU/KwckJ3KZdjOI7AqbB3MTi5YKxPKRM6WhapvVWBRJpzOGq.rp9eFzDpSQcBF4w0cnKaJmszuP8R/2tZw1:1110:1110::/public/home/mengqch:/bin/bash
miaojg:$6$yQAtw/gEALo/j$iSK2yqBGk4g/takmWRXx39dZO1qdymJyOwQxWn9NwNeewNfA1YF5t5aM/sjlbaLpelsUqjobqRCuZ3Mu.ZT7./:1411:1411::/public/home/miaojg:/bin/bash
minfy:$6$mrKNunqKWB4coZUR$yUCTKK9ePg4tT7R.0qfEHxs87YQYMNm.BX6VdL3j73Jjq0/k4xkUosScLnP.2NhpgAwQ4Lh6frWKkxcSKr6nN/:1268:1268::/public/home/minfy:/bin/bash
ming:$6$TUzp0/mFGV/$PC0cep/uIAXtVPKK.Eqfd737Ieck3Z0zdNfyqT97DfLrIdOyBPIaAOGrSF.0E6/rffgTCuoPggKEqxmH7aK4b0:1369:1369::/public/home/ming:/bin/bash
niuhb:$6$NbQCDAgso1FwLsV$XIUeXRNakyB6x1Ay0lc3Fw0eJE7usJAOKVkHob8Y1va10j2shZmqayASS4InMCKVIzMxfhIlizvA9jbji8GV01:1355:1355::/public/home/niuhb:/bin/bash
niujw:$6$RufMp/gFd0PrHXtg$XOkv9wTIswjBuaNlfo8LccQR/h0p5dwxcNvagHpla0gvVfE6snoxb3N2DsRxSfgrcBeWTtADNqszx6BUIvdF2/:1085:1085::/public/home/niujw:/bin/bash
niuxw:$6$OWmwt/I.HesgDHZ$Kb9cIuTcJ16steOApnqqlcU.Ur5fkpHIm0/STtqbwvOmRoHXc42ewkgUxdHZTM5w0RkktDT5ohdy0lhfx/Zjl.:1404:1404::/public/home/niuxw:/bin/bash
niuzhshan:$6$5J.pZERuI3oywFbf$D9B19mXD0tz3TSRBYXuLzBsLxCWch.xe.VQXR99PHXu.ixa3EvbNREdY0mmtA67WQD1Fy7DeZktN1ZCP6dRF61:1215:1215::/public/home/niuzhshan:/bin/bash
operation:$6$IdolqI9Oxqcgk/1p$20NQro82SPMY7N1uSAz8X1oOlQi1sgcplS9xKKvyAKBBswnpEjIdoifhuMiMM3rASnNmO7S1owMjaVs5H14gg0:1334:1334::/home/operations:/bin/bash
opsflow:$6$wRPkb21wCfcR.Lg2$5ntBrgLPicjBeAcamTYwZQ1CVPoyLKvsviGg19CnUqaiFhUG/tSs7NXi89Bg6KOCS.R7iZqsP4Hhy.m06h6501:11446:11449::/public/home/opsflow:/bin/bash
oujch:$6$7Vr1BarNEG9i4iFa$PZQgU2cDdCSpt0IudaFGNdQ5TuQ3da8mEBHqV18o4GdcqJv0E/hFdEz7w8H42/XtypehqVq85nX7xeZzcYlex0:1195:1195::/public/home/oujch:/bin/bash
panhb:$6$Yv7FaH1IKvYrDpmx$xKsRArU/a/otgroFFLFjWUyyLADVxVYwJuVSDtQGGDScMPbm7SKLOeNDt43ZqksDEDSGdpu31todO/VUiCnm70:1149:1149::/public/home/panhb:/bin/bash
panhw:$6$NVWRv/iBtLCwbruO$A2T1THiu7vfZ1d/EKfdT4Mxns.Pe1kqNJNFf2a4JLOVgD5m/KSR.AToY4cky3vaaFGvtHyUCt1Bufrre1T60j/:1077:1077::/public/home/panhw:/bin/bash
panning:$6$kPlc8gCiEgKioD6X$OY1ZtL0dsn7H.ikxrgWb26BfozhFKhnFqG2Q60echrNQmsvzAr3Ob4Lb0WENubKrm/bpZMsyyDmGV4TSrUGli0:1062:1062::/public/home/panning:/bin/bash
panyq:$6$wnHYkLeWiI2g5Zfv$nQwolrO59fYg1.r1DISkz8ELwETgREymDwcZTEkUOB2SN1wN3Vw14.BF0Q1lOET7dNeoZyo7g0SQf/mfWjIZS/:1201:1201::/public/home/panyq:/bin/bash
pengchf:$6$Vmo/ZtsUOiq361QI$kAlhMvIX4Eka7PvQDZRJtCAZRKC8qdGPEPk.FH02RVyNQ.gjqkX5fSRKDDtat37Sr8wAVI3iqfBRGavJYvd2T.:1213:1213::/public/home/pengchf:/bin/bash
pengyx1:$6$dX8iiaORWK/MfqDh$KXCOokqxKrzdGSobgcbFrnpomMSIx9VGFTWJICXM.EudUxv67LMgdGd2ipqHQ5lJt7NE1ThjonE17WV8V0UsZ.:1203:1203::/public/home/pengyx1:/bin/bash
qianqing:$6$bsHGA/lmty./$A7DfA5EZN7kf6kB0usw/PSiFJMEoI55rkW4g6aGI7vDOgCL.vNL5yhjNS5RIM53Ur/BfIUsO15ZdZRZCAPRj01:1054:1054::/public/home/qianqing:/bin/bash
qianyj:$6$L8Lyy0SbAM3iON1j$XkJ173PIwASlm59v2JyOQESfPDcIouYs1skAAQdBo6SE3cZkDzVTnJGKD2ShziUw8F3mRB8oZxsvVGOito8Q90:1063:1063::/public/home/qianyj:/bin/bash
qiaoxiaofeng:$6$lpfiDB/7O$H4.Gu5E6NrT85er5VkjMYugwgDHgoEAIMzO9KYqlzwvWjQNDVv3.X0PU8qd7HcoCLTvFE8oKC4Po4do.F1omJ1:1272:1272::/public/home/qiaoxiaofeng:/bin/bash
qingjf:$6$ToMaa/B/tyEgE9St$fKrVqmNvD/2WFanMxanpG6d/hxVY0nCW4CXZLpR6aEwTS.SyJdANsgQoR0N4JDeJVJ3jKvM8RXaDnUmfV6Ub2.:1330:1330::/public/home/qingjf:/bin/bash
raody:$6$QqiX7ElpfcZwmi9p$yJ9a/nxwznxIg7Xuu2ATJiW/wQyyn38fzdgtQeee/K13DgonRBJFXcealWhicvz8hNTCsGPk8SocqABaRQrSd.:1214:1214::/public/home/raody:/bin/bash
renc:$6$6zwye/8d$Q/3x5CQkSapDlx7ZUTccUIVnv62B5oC3tjCL50FNAr2yy/u5zQDvBeHYjq80.xk1RM5DR1BAVhGUKUftwTGKX0:1273:1273::/public/home/renc:/bin/bash
rendq:$6$1IHrJeR90j/$Joua4A7LS9xm6p4UT653hM1ER0qhP.iVHMfLaXvvPJ1SIeDZuaeXtT8Hzp45kR.DZSmJfQvqwfu5i5tpYVRc8/:1208:1208::/public/home/rendq:/bin/bash
renqian1:$6$b1hp5/rLx$W4YneaVbRO/cOaH/XbfUPS0F2VkRzt1Zi/1LtKWIFc7lE8iCtKhL9D9gqzVaL/8QnvF7qx.V1vceqlQpyRzrz.:1274:1274::/public/home/renqian1:/bin/bash
renzhc:$6$DpbGcyFTV/B9vKnD$lzhuTW5ebbBl0el6XCmnAZRQaF/TpFMaqMTRn.ZPlDP6GJgPfKR33W9aNZ25cXK1c/YZt/zWH/H2CVaUGI6Yd/:1142:1142::/public/home/renzhc:/bin/bash
rkwu:$6$fXPrI/LyJ$6FXZARPAiUicZHBiA7vbHCKp1tsuF.R3r0qmjPGCDFdXqh2ww.GB4VbuaNC0QD9NreRIBxbgJnti6.b.Emu7P0:1275:1275::/public/home/rkwu:/bin/bash
sangwzh:$6$3oYKP1ERcFTOw/22$s6Z3hR1AQsbbWGQCqsGO4LdGhvsgv.XHvYsVCu9f3jWfEguM/VlbqAluXrHZWENIL2AVxuT7lyyRxEqY56qeu1:1123:1123::/public/home/sangwzh:/bin/bash
sangyl:$6$Nu7XPFWprBjk9WR2$uQ.SdQMcvKE2Fe.upqyX7x2JA4lC75hxcUdkS.AirF.GkNZUV89/LxhLjkIz2q27FOftUHk5TMtqmfwhkOQ6e0:1360:1360::/public/home/sangyl:/bin/bash
scut_test:$6$LtCzOqPke9.p$3MeRiGxEibTF/0mU0cK4ibH7LzcizSAseVkDDBnNN373jQ0OpCIFM2ETR1zz9DUtzzngtWiRgMGzaMsCXmmrV0:1277:1277::/public/home/scut_test:/bin/bash
shangxl:$6$8cuEJAbaY2v8prDn$v2OK69wLoFeUOOPRznUAf6BF9jNEQInajqT2.lz68DGYzBdJAjkE9vC/fpVGwPAQ9zdJvgLMMPSLF9aDPKUkU.:1377:1377::/public/home/shangxl:/bin/bash
shantf:$6$i/cDTLeDzutwWfNp$XXoudHSYNYSoQIY540AFuH4VembkxnqmGcnePgx53hGTZ2eY5JdPTw8KEyRUL6z02ITvNJTdM.KE6hksmYt8u0:1170:1170::/public/home/shantf:/bin/bash
shaojj1:$6$3UI2jej/dFadEaQr$rCZLL85ZdOOpN0/uLpk27bgJkjGjnxfg3e8DrQLs8T5/4NoJ1ags3kDFBK75dqMYCg9qWcJadahCLKYnO2Qg0.:1389:1389::/public/home/shaojj1:/bin/bash
shazb:$6$4ORk74ij$DMAqbGUlC/k5Hkp7Y9LE51Jjn0Un1hsvMfEfY9OhbIq8DXXAaMaVIuXRROMiNfZ0CzbAvMgTgPrUpy0nEEeBk0:1088:1088::/public/home/shazb:/bin/bash
shencm:$6$sqlKLMGwxEaT/joC$zPxw4PrAnx.jgl/Gfg3OoquZQjxtE3GuqfvAFNlIqjXQ5HQpFDvkYWn5XPl8rm5mKJ5eIhVJTH/azJCZmlBhR1:1278:1278::/public/home/shencm:/bin/bash
shenjzh:$6$Nw5qAnEX11muVPYY$foLEBU1HtGWfj48C4OY0W.AjdOig.E8BF306ovXcMXh9bB3spkPXiLwknkwUtQGFB.mwJESaqxLczcXi98sfA1:1158:1158::/public4/home/shenjzh:/bin/bash
shipf1:$6$54MnwP3jy1d7v3rD$hEGix/vxzZPiECYzXInQ2Ya50vDU/Y/QbshBihRHXbL3IPZdlw3coJsVBYYqE5Kr838FU8mefAzA4hmC6Bq2T0:1385:1385::/public/home/shipf1:/bin/bash
songbb:$6$Tu97tUtLh4IT7vp$YNoCVGLKzDTLRF94Ue90xeY2c1ERY5ER9inPFb0ROISP08r8k0ZmM15yJ/UUwp/bccIvVNlBEXC2anVWm/rFO.:1279:1279::/public/home/songbb:/bin/bash
songlinfeng:$6$QtY8VnKjMTvbAxtx$BMM1Pfoup3tV9z8caffcArtXPXXnL3WsZugossxrR19SQqf1ZK/jMCMtoOz64A3VKRTCDhiC/jIrS0nz0dsZq0:1380:1380::/public/home/songlinfeng:/bin/bash
songyr:$6$GMj7y/CSHMa/s2$LRIgpjWCjjMW0mumqoDi.KU79hY/jn8PU74MIGmmNCffYp9nChjV6NQHaYunujDF4N08yMP2WR.zPM4wyntpM/:1280:1280::/public/home/songyr:/bin/bash
songyr1:$6$9LhZX4Fqftde6U4H$NqtFMWvkLg4EaGypu5KH9RINv003gnIktGzOJ3.KEJlzw26NvWFyt2noJ/M1il8TUp2NQCELSXIU5lsJJcX0E.:1164:1164::/public/home/songyr1:/bin/bash
sugon:$6$A7qbGNIcT4fnOkKY$IkRaGnjY7ePV4BYb84iLJLXMxBaxTzP3lRNO.vY3sWfx82r4WaP.QaB33xYpHiwXVWIQAZ605dfm8Yh/Ss/mt0:1000:1000::/public/home/sugon:/bin/bash
sugon_test:$6$gJS55/zo5cQ/rY$JE58VObOa/wnYU2tHOf7g4WGj4BRQ9M.rJs6nBJbnx3a3Lnzea8EU75w5y.k0uZS3l3U.gXPFtXwrx3B0pSoj0:1282:1282::/public/home/sugon_test:/bin/bash
sugon_test_cb:$6$BPBxiF7pgjOVa$BDHhidEL39cg8yJgTAZGQxDtz4fUorDrTX2ks0OetsClV0wxiZTqXOXniACho0tCnZESqH0f7cNVcwEjrVNiq/:1192:1192::/public/home/sugon_test_cb:/bin/bash
suily:$6$zo7szqBrFSbufhCI$SLTJMpcLjnxFpfnWJ/C2Zlz7zJlj6V4H72CgXmiqTrqnf1d7oebqmyWeL7WP2nP/7u08.iN30P882Fb/fPUlZ1:1184:1184::/public/home/suily:/bin/bash
sunchao1:$6$n4kqB1EgjfIJ2eeI$eWP2P22Ck/MvNW.E.Xt5STwj/4A76htFjbqoykLirVWlxAXzmMSEIvUlv9shOfbcHkKGHzBVO.oxA.TRDlahz1:1317:1317::/public/home/sunchao1:/bin/bash
sungon_feijiang:$6$KrVST/16$HVer6zCC/HlFfC2iVuugji7GHFfyLy/k9r4P4QG1bEc.TlWK2a8X7WdnaJ37uzP3UXOOmvyygvmy8IlNDP8JC0:1204:1204::/public/home/sungon_feijiang:/bin/bash
sunjp:$6$cmn03j1OFJ/O4Tpb$jxynRiJturYgQxK1Od2Ql9hf6dCu39OB0MXJShB1qqQyDHjYwRvCm481EUsXSctlR/Ghnu.T4R5eKr.USwC4R0:1128:1128::/public/home/sunjp:/bin/bash
sunjq:$6$g4/idJlD.esiBsL1$yeXT8JfDJqJryGJXR9aihOfV8PCl4wriqYMRncMOKLun3pJPMcw8XPBFCJa8vvjEqkbGteAOG.Ka22a86TGAA1:1181:1181::/public/home/sunjq:/bin/bash
sunxx:$6$EUQGMYKM$KT0V0sBABNe4YIKkjLKMV1/TA..zRNDqC14j06p9OSjUhOeDFfCgSxNpMlflhxSm2R/ZOhwT7Znkj9s3rN3.s.:1081:1081::/public/home/sunxx:/bin/bash
sunyi:$6$FQTW5xc1cDUZZ$y14e3LPPvpyv1K/9lhoCtvACmefciKji/NLS/F0hr4btT1Vn.S83GxIvacAbUqyVU7jPz/EYq8lWMGsQYDrtc0:1386:1386::/public/home/sunyi:/bin/bash
sunyitest:$6$JLPbqs9cvBcL4igM$CsbwLjlJ3BEK0Uj0ierdh.e1bC5JaIca2tkoma2d3BZEzoTlOvw/as6mWEFUWqBX6HDx8yQNofUsZ/ElOxW3W/:1347:1347::/public/home/sunyitest:/bin/bash
tangao:$6$TV49u/gzEB$3djR576KnGJFBN5l8uyHZB7aE.H/PGd8K2llh7ZOcJ8wvueCjK5riBO.FAa5.nGsaXWwpRJ8rHnQ/lIc5i1Ej0:1283:1283::/public/home/tangao:/bin/bash
tangwsh:$6$tnbIAOWCflsX9Fo4$zLy/myUyg8SShk/ZpdB6WAi8L66qIci0Pp27pZToTGph5wbCPxBjd0ceLKo2bA52tUAOxRvqKp2Lf6HgRJJPn0:1354:1354::/public/home/tangwsh:/bin/bash
tangxp:$6$/04ZaNWY9jHQdiU6$xK40scOBaaGc28KjivnW3lDT/lrDz06FRXkZ6mMSTP7J2JDC.rme7lT7ZRfrQxAQ/PzveBB8BMkIHIb6GnLbB1:1177:1177::/public/home/tangxp:/bin/bash
tangyt1:$6$dQV1rL06Tud4M7aA$nP1PwAxvOtc3yjL3KZ6lyBEmjiXPtQTbS1dPa6LQOvlpSn2QgsEwkN8iYy.7JVizQAv1se3vqI8H10oBhXXn.0:1202:1202::/public/home/tangyt1:/bin/bash
tanzht:$6$kg6Bm.w2amz2bdwg$KF2iv5EwMsK7G/SHD1M6l52lOGeZ9Pj3ygnOo6xPSSSzFF0AjC67/zqvT9Dc9F81qclH4ba7bZFau9/Qe6SLJ/:1390:1390::/public/home/tanzht:/bin/bash
taoqh:$6$lTUXzXvGjnXR7tqr$3P7rgkade4D/hkMNbggne8QQuu4LOGr5KVJoWZcasWQipakysuzd9p7/smHa3gWcry7M9BagrrWbSX5oSvKW31:1413:1413::/public/home/taoqh:/bin/bash
taoya:$6$GoDdeROnyscIZVOy$KG.JH1QnllVLLuh1.dGuLy5pom.jQ/eOv1g2K1TQtTf/rDxnbU725DPUPs0G6x28zWxOviBcmOiEbaJy7nwXa0:1398:1398::/public/home/taoya:/bin/bash
test:$6$Ac7MnPOD6R/1jFF$/RJHl9Pq8x.brLQRlkzXMp53JwN7SrcpbaduPzhlDzsxDXIDZGBslSvfQjbfUq7wtnCHX5.Qc9whRIcl.fKOw/:1176:1176::/public/home/test:/bin/bash
test111:$6$qhdmx/L7$knimpsMgCHolRbNRJnIPfXzbqO5k0X8k0xmLVc1MgkBEV4n1g1nNHZexZvFnNPH3IsB1Cc0UYQSsE5b5IrjlY/:1387:1387::/public/home/test111:/bin/bash
testflow:$6$lx07ANkkBwLbegYX$10fkIwqzox0huFv13AZJlbXRwIHTZKsZXfm7WKP6mUYyrcK3uwL1gLKyk8riQXYY7/mSsP4lITbynkhcleGS61:11435:11437::/public/home/testflow:/bin/bash
testtmp:$6$jzMvg/G.uTRO1Q2$Saffn40.htpHBpWKg5wbmo86.k8yFLoizscREfXSh3cX.eoLubg/DozNFqCr8YAYLSpGDdqHQAMD6eSegEN8d1:1137:1137::/public/home/testtmp:/bin/bash
tianlh:$6$ROrOSw2JwGlGEU28$LNgUnGhzfHMgmoVbe1L6SWH4AEgaQAwsd5.TulWYGl8DJ7nlpos9COFn6OliXAzequi3RznNH8pFPCj6iv34e/:1315:1232::/public/home/tianlh:/bin/bash
tianly:$6$Lf3SKJI1.HKWMBAd$fciPXSwEkG7YVQ8XqJXPzKLnNuhJaheB5y/pNvZKAEgihfsVHE4nluWXgz3K9HFb73LHNwvIgooWhlQtejm3i/:1162:1162::/public/home/tianly:/bin/bash
tzh:$6$bU0Du/6l9BJ/R8Y$pE69RulzfFn66CxVGxcCtAiLCD/Nx1WRe7y7FBTS4pVJxqYFIf3r4fDm.4OTLG6F5hLVFfC2khAk1Beso/juI1:1365:1365::/public/home/tzh:/bin/bash
visit_test:$6$59BVO5mICe52kdt/$oQ8F8HVRlsJb8KNZ4niHeAHiwfaSXTQmeXaj4F.Pzya7d6Bex3FTdEa/S2YRZEFFAXWimhHEBOX6PyaVx81vz1:1194:1194::/public/home/visit_test:/bin/bash
wangao:$6$n49jH/rlqnhC$MJHF/tcEcmuqiXPuj0XFtFhLMEzreh655KLiH3FKYP/asfC2iZKK6k0Kxj.WiDQNkqp63jHN6Ov3tQBzInBMN.:1396:1396::/public/home/wangao:/bin/bash
wangaq:$6$eQrpHg2bGM7KtQnw$6pUrO0SQ/k4r3h7VGQ80TOCUiLe2OfGDlv9Ykcg9MzxLgtDq/wUftmRxgNtwjwdYq2mfI94je6J3i5Ltk0V9e/:1224:1224::/public/home/wangaq:/bin/bash
wangca:$6$cBPQH/o2fF$ZBZxxhkS3GC7ZQMwuc7Z/Jxhox8C/TJB5A0B3Yv5vtRbobzUBOyzMkyNEd.HL9WeSnpPF1p.hBvM207uIb0dy.:1288:1288::/public/home/wangca:/bin/bash
wangchao:$6$xaffwbMV2iUHWGfC$b2YO5wHCpFb5Km.1yJDdKsinzYRVOvyVzkXHsQemld3J75K6ssMnpvJsZhYYrElsUGTXs3PratBankQOVfyZx/:1099:1099::/public/home/wangchao:/bin/bash
wangchao11:$6$TRUOfvXxQJ/8DoxH$lYMNQe1k4f1T2hw5.7suFIFbgHcGrjRTART2stNJOxeh4oSIIEzuybQ9gc97Kp0oxGfCYqE7TE7We6zeUS5cg.:11418:11418::/public/home/wangchao11:/bin/bash
wangcong3:$6$kdhUlwrPtz1LXv94$GzpLggmKcHnavD/52sZdW4RdO4hBo4nPGc7LFa2mPvrhRKyWk3mDa77TX9jJsZxX4WxXizIh9.mZ7cEx0.33m/:11444:11447::/public/home/wangcong3:/bin/bash
wangds1:$6$BLxE3ABMOEGpqlfI$f66NZK5mljK2p88thCJuSG4tA5B7oE.la7CfYBO.yPfQiF9mptEXw6hD0Uqmf7vX0uk6/sPacHWvHyKur5vue/:1289:1289::/public/home/wangds1:/bin/bash
wangfan1:$6$v8mUPk10/WoN24DT$5iAGfBuA.EVec9yT/2Qfug5FpSXeumYMDHP4e/pwWUzPsZDiAdInXydGKLMc.rn8BDF0VHtcacJd1BKYCH3Gf/:11449:11452::/public/home/wangfan1:/bin/bash
wanghan:$6$7tizK/8dT$b0etoO/W9v5OWewAztXsr7k5/0vbKLZsK6pxXw80o.y4fCgb18PGP647/2NrBfkm4iP/aOeaU0RYlyN8PZpsw/:1290:1290::/public/home/wanghan:/bin/bash
wanghl6:$6$mMh30hSGhVVJqZu4$rQke5iIEcl0ek58xCJn21ew64XUJziI5FFZtg8IvscdrHVjfyMky.C19/y8s9xu9/3.vV/WptkSfLdq3X5IL00:1353:1353::/public/home/wanghl6:/bin/bash
wanghr:$6$NwLNpPdUE6gwQ3w$8kFleATFyqmS6kIYKwM0ICM1pm7iPueUyEvDQDbBMgVNYKHcVL.s/aOVZzPouq6FRKEEKWU4xRDGN0hXei9FW0:1127:1127::/public/home/wanghr:/bin/bash
wanghy18:$6$H9eXLGE7yKAm7t3I$3.tliv2UEbr1yhavRlB5AsL/lrQKmmX1.STXrkCtRhkQABaksUqReo0.FxUtHnM3fryEcLEgGak/iC76VYZH70:1407:1407::/public/home/wanghy18:/bin/bash
wanglch:$6$umJNBO5U0OCdpF7e$TGk/g0z2jazPcAMM9h0dwuvSeY5JyxnxKKbilNwvIGZzQFzrpdLd.DmNE/PQRaQFBu7ZUxhyR.w8Wm.X1pQkw/:1174:1174::/public/home/wanglch:/bin/bash
wanglong3:$6$fFv6F/itYF6nN$HVWazCS8IgAgKwwwGPXEOSEGIullYq.uzSCmNqcF7m97uJcggynOoST/x/7DCxxQ3PKanNwOBH7s0TJRU6vFc0:11434:11436::/public/home/wanglong3:/bin/bash
wangmin6:$6$wu9SHWR14i2YzmC5$qmQ4oRK02qdxyClzSjM.wZpGQ.UF5VmwNZaifN5aKo456lpn1FAotmYYqkFC.w1ektc7QBB5h9Q6bw5YayhNy.:1175:1175::/public/home/wangmin6:/bin/bash
wangmx3:$6$XCnC7/QAgf0pA$CejRerxUrrKvxne1hSx0ivBV1aVVd/OVuWeQsnnpWMZFfZREzvCw6abdVrngm71kfDY31gTLCT0PS6ZlES.ZJ.:1333:1333::/public/home/wangmx3:/bin/bash
wangs:$6$THfsf/NHz9j/8u$W.aViItOD4DQFeStxVdmeOnDpkEFvbVMlDl93.UBxYzUm2EXsT84NDim2ClR1.ZbCzgrkm3u2EAhrPI6j.kzK1:1169:1169::/public/home/wangs:/bin/bash
wangs2:$6$kTVkvA4nd2S7/Mvd$cfpR3GeJX5L6FNxHQ1kFpp.EUGsXOxpjK5FHVgewfzyEqBUMNJ0OmP.AfTsCt52kagIoX1p3MbDVU3KJx3QLA0:1341:1341::/public/home/wangs2:/bin/bash
wangsen:$6$W8.ybFw97xUY7y8T$e/d265Aw5Wa5wn1HLdDbepdo5vCKJiwzNeXpxVuAvDDZeP.7eignn23XI7Rx/ykqnWeJyaTdQGCoUlkbLVL601:1121:1121::/public/home/wangsen:/bin/bash
wangshuai:$6$X/Elz/ESNjO/oysI$LBdPGd2WiOkgJNYSDYh8NTcjYX4893133.gQD3wuO5tCdD29jWunccLHwz02qwSSCM.r21j74Te616nwv9hU8.:1291:1291::/public/home/wangshuai:/bin/bash
wangsy4:$6$nanQt2ZF4txani6C$847w9Apexe31sIR5JjdQoKi/JD6haZ538PoOMajUtORVwic0wAQ8H9Y5Vq.C6vkfk5aZTQZLSFe/vTNk64Wix0:1327:1327::/public/home/wangsy4:/bin/bash
wangwei7:$6$MDl6QDyd$fAGp74Eg6GP6Lx5QZbHKD2Gjka4RnHlL13Qpr9PZieyE9wH94WVca85Z6LrEl3GPExDoQ3STfLKCDSYU0GM.B0:1160:1160::/public/home/wangwei7:/bin/bash
wangwf:$6$H6femhPzAKNK.9xC$mB/ccpHsZo3/yEXi6VPJDjacvCM9EBeTdmMd2gHimW/e.1yQ7QdjNnbPzlUSEYq.4cd/kCm3w6AxwiFogdPnt.:1329:1329::/public/home/wangwf:/bin/bash
wangx:$6$NK1xE/n2zu$ilPLt9GSrYvHYnQbXuqatOb/gTAb/vZnU5EotVC9nwjQMTadAe5EJ2Cd5Pgn27ePRl3bvsgFDmhPlxqZqEDMh0:1292:1292::/public/home/wangx:/bin/bash
wangxj:$6$k3NCI/TisFis.5P8$95SAbotAbE1nGb1KVTLktsaPkwU37otqP7Mw6hkCA10G0OXe45DurQ2vQGifBk/u4.IsVRfZwZemeQN0wF6bN.:1293:1293::/public/home/wangxj:/bin/bash
wangxj3:$6$rVWY10Npzl73wQiH$kg8lII5xCZ7lkz7Wcb2Dy0HYScE8FebbNFrtqY/fuxHecKlGlHE9ODhWNRjbcFEouPLqD.a7HSnqiRCuMnXAC1:1141:1141::/public/home/wangxj3:/bin/bash
wangxue:$6$0dCvs1J81b/6A$IwDJSH96G9BclEUgrqx1430YJgzRDQD6zDotOcAlGKLufcrzaznm5BwptT9PrUZxr8S3l5FoAS.hi6ee1b.Ve/:1205:1205::/public/home/wangxue:/bin/bash
wangyu:$6$1x6XQ5dIj/sIB$6jNe2aeYEw1jlzofZsJ5pKwq1LQT82uWynVqstaRxl52IQAHzMOAF07pyO.zJfSykkzgNJsuPVEGb4xbN15Nr0:1294:1294::/public/home/wangyu:/bin/bash
wangzhqa:$6$O4GFm/5M1azbFGmE$3IdbhKjh7eWlwVkzbPVcd8uurFOP3JGPMa6Sl5QO99Z8gRfGhszBHhTSUsiNy/0sqJylOwY98cgPFFFwAPkKH1:1179:1179::/public/home/wangzhqa:/bin/bash
weiyb:$6$t/9BM/GsDs$L.wrcLf/1TyahpXgM6fiRzrEdxJAigpfkR8kR9ut9W47JBX/ducVRYLo3cj6.twrOspqcvX0DvJm1IxN0UrBq0:1086:1086::/public/home/weiyb:/bin/bash
wenhl:$6$xl83i/.c$foastO4AFnySiFm9YP.PACdpNJ.Hmz.XACn6sIaTk2ugQA6h27iZuCgKshB1V07Vbz/bD0pgj3AHkOuNBcKHS1:1066:1066::/public/home/wenhl:/bin/bash
wenhy:$6$q3lfflC9Ic/1E$fKT8QDARFBl7jwNcB2SAV.d300/qm91YR5X1dfW2i8/PCo5Jk37lN8UzF90sqWpH6DLl.isDvg6AO11KtnVBt1:1129:1129::/public/home/wenhy:/bin/bash
wenjh:$6$bGfUAfjiF.3fvUy9$iWlKn2xWEJhIS49b4iHLn3mSGNjPhDWnclX/ix4rWsoMCzWKjXPirEhPPh9nmwID20EEh1Mv59IzJwh.oZjRP0:1059:1059::/public/home/wenjh:/bin/bash
wenrh:$6$lwg7G69rm8bziEMA$JKrohI4/xkYdd4V3F7ByENK/s5oqLm96AhaPuFP.75/3CYS2HWT4vyHw1DtXgWU/qPjUYcMnFz1sb.sHuR3XJ0:1143:1143::/public/home/wenrh:/bin/bash
wenwu:$6$KFXDE/woGHvUu5$wR76N8XaMPRoUhOopCzwAKZp8RT/rdh3I9DA4SrES1WptoFcFAa7nXdGqMNoABp3bhutg5sRtwFUhhuuME5Xr0:1295:1295::/public/home/wenwu:/sbin/nologin
wenyb:$6$U4ckW/UjkYw7Zgog$1ZNOi.6loRy8lfOaPePrLKRJ9Hhz4hqsZ2ZLrOCxXb/04IWEoSsfWj1gFbyL3Sj3mFM/IpflRLnEvbGAEw6eq1:1296:1296::/public/home/wenyb:/bin/bash
wufan3:$6$.DeM7/yiRqN4aL$e0UU7HRK7wy.iOUs3LtTLr14v3S17yot5PKPIFC9YrR/SF9xviTS89rYjKm2D5pZqHt.ocEPwRmS/K3KQlA4T/:1297:1297::/public/home/wufan3:/bin/bash
wujl:$6$uZzNxrLsmbK1iEEJ$BhWph.s6FKVyZTeTDqi/W5YXPIILMwrZRWAgfMdUcpcYQAdhAZ4tWZ3q3CdxdJZQWEAy5ppCo7O1Jzso86dHf/:1298:1298::/public/home/wujl:/bin/bash
wukai:$6$O3FEQH5eBkxpkYC3$4wVAsh2qlUsG3jRgoXgstSPVrN/J7DbYg7QiO3Vno8w5mVJMZg7CtDTerJpIf3j9tSuBovtxXS4.qRMZ7MXnL0:1351:1351::/public/home/wukai:/bin/bash
wukai1:$6$mkNN6/VCg6$iGXowjnF7EYCFg4snKl1DahNJReekQpUqUFOAlf8eGFtBBLEap0uLmaGUvZpWt6CaeHA4S70xd6v.0Zd8Ab0I/:1299:1299::/public/home/wukai1:/bin/bash
wumoren:$6$U5S.a3/8cC0DAMLk$L/csuEchvUgQzM..4Ugk5zf9z2DM7D4AotysnvgOav9NniOmChqZqbekLEUuPw7v9oJNHoWQbRA0hqIyOQNn7/:1362:1362::/public/home/wumoren:/bin/bash
wuxk:$6$V7Y7sfZmf671fYTv$Dt5Qrm2xqQsKxyN8IqyU0hkSZX1WMU4mW3VwhLztzTGwFTud.72xR37eCqWOrRCgw.9DWOcRqUhR9MbVbLk8E.:1113:1113::/public/home/wuxk:/bin/bash
wuyf1:$6$ZAwHm/Zh2$8dOnL.FiM1rc3jy.ducrTHR8MfC7oDvMSuLgrQtxKlm3m.1zJHA3sdQguZ2HXm9MvddsqcFMY/g63UtsxFJnd/:11442:11445::/public/home/wuyf1:/bin/bash
wuyl:$6$DnhhW/x92Ey$n8MasplC.YRva9dj79UNwibhTl/vnjTTh/Y6XQM5Uz15Bj2p3HX2Ftgj2gmYhzN3/5VTn0gz7X.j2hInb6GYn.:1122:1122::/public/home/wuyl:/sbin/nologin
wuyp1:$6$LIfMMw5RChNRvoNq$EjCCwE65k3kwQRtg55kv/0g3qUDAYcBuODgvHqgHegWRElmv7TrKWPX3LzF7cnYpqBVDldOhwjdQLmSio8Q2p.:1378:1378::/public/home/wuyp1:/bin/bash
wuzhh3:$6$mvzgedeSTh0y/2Eh$oq0HS/Rg0u1/cgt18eliPy3YEPdNJwIMoH8c1.KCZ8Dc8WDJ/Yu2LS93GVBagqu3j..GLjM0Nf2vh0MBErQMP0:11431:11433::/public/home/wuzhh3:/bin/bash
xiabo:$6$UZeXTQsIXIzVhMJ5$j444599MVmLFR04iJyo7gLKpi5X34WuPrS1Sy/stO7W8WfeDKxyRM8YfYs16hM/6PzIh3k1T.K9jwTNF1M63O0:1080:1080::/public/home/xiabo:/bin/bash
xiafy:$6$3AIyxCfGxrVeDQG6$09nJjbxwOiGtg0jXcngn8wuq58RRT6OPjCYhtyz0.Ka0t6vG.MbqM1Qap7kULPkxQ9qOTDnG5qfFbcrzt1Tt9/:1126:1126::/public/home/xiafy:/bin/bash
xiamm:$6$/8eKCpJMsJWYaro6$U6lJMuA89.PtoZKrUZPB4fJKQFXRt7tQFjS8MRO0caK7FkXBGXBKx7uslRcrgQS6MY0jwMcANvpI1OR2UXcqJ.:1418:1418::/public/home/xiamm:/bin/bash
xiaxsh:$6$tbEiQ7WS8jBRXhqL$p44QTf.Vamup0ZIw6j9lWjHcyHhTq5NODKwvKJbpH/Zp7duWsoETiiq720ZwI0qHugLA81s3pVBCLjDJm1Rb20:1183:1183::/public/home/xiaxsh:/bin/bash
xiayf:$6$K2vP7JNLM3WF2UfU$Nwa8XoShkk.FR460MN/CfrnSUFel.TqhjTlX11fuseVC2W9Q2GHw7pFiBab2kIt1nzOyzemcCWggFT2.UXgnQ.:1300:1300::/public/home/xiayf:/bin/bash
xiesl:$6$4hrz7KVbhGGeKrWZ$VCZq6/dx2rEVJeQ3XweE22P/8KlwFeLqyeCM5QavK6Wi4egGU45gdRePWKwPaXehfkzIYqaZP6B41qsuRKsN0/:1148:1148::/public/home/xiesl:/bin/bash
xinghao:$6$GdN71e0Y91eUS.dK$uMEIeUWM0W.p0ii4LbAcPuIqivKXSJN5BqtvLf0my61F1.s8Y52kv2pEBe6yXcjAmDwdt5nfFIwfJxntI3GPN/:1167:1167::/public/home/xinghao:/bin/bash
xingjl:$6$pfAEmWUHAJIfnnpo$EtMxETrLZIKZP3Q0q8NK51vhzG1RalF9/qWH7kKGXMojcFHDyndJCdWLNtegYLtd.lmeOx1d2xX8b.QYofkeY/:1198:1198::/public/home/xingjl:/bin/bash
xinjf:$6$/MUw0zvNh54DjbBX$kvMtbybuBuGkftVK.Vo1dh.1QpZ1vTKr6PdLpuhtcM0ubCExnee/V.mR/JWBGaGOql.Yq2gTM8ltQ7vpPm9kY/:1375:1375::/public/home/xinjf:/bin/bash
xuwx:$6$VCbu76a7c0FFnrD6$zmA3vcy2uOup46r.f62MXXgqQFfxVaZZw03X0/JaKDooSSC/Ktgcq3iaxb/NULcqtbkRTCwwrP6.W2yezqUar0:1301:1301::/public/home/xuwx:/bin/bash
xuwx1:$6$yIf6jurLsjDp1n5M$1a.hNLe4XFDmfB04SZ7xAHvN/kf84BuG2tVhOpuOcHn2puyji3N3KkGXQWfj.QYbvyUIe25Xt435W1tvfdb660:1165:1165::/public/home/xuwx1:/bin/bash
xuxc:$6$oBYX2JhqcxWAy1Sg$Qyj/qoHxm9fbRvVb4PMfnmJSBN94mewlruB43VwSTBdGHeRqDpxAukjKJgD1MmEVA5EsY/Ua2bpMVo7dy12wb.:1118:1118::/public/home/xuxc:/bin/bash
xuxz:$6$FqIVSwgIWoeEYKSA$zRcvjddxV1Vd7//wWMDJ4n9MZAdPoDgmMCXoXiBwPGvLLc80S1vgy0Dq2S/pNzwshMSgbSawvbxe.zp6LwQgn.:1108:1108::/public/home/xuxz:/bin/bash
xuzhp5:$6$xiNjDNTpJdLrgEgE$mjum3.IK6mUGr3AIToj9e80P3rdINNAXA3.vTY067lD3/q1kYwTaZf2CEX9VALvRW.eBPMRJbwEwZUs/KuAte.:1302:1302::/public/home/xuzhp5:/bin/bash
yangchen3:$6$UgYCf9yRSc/mL$Z9OzpJAKvJENOsb3Kg7ccWFKOBRdIsN7ahpn1luSKLz8oO1tAAm.5jWmh.J3xPKIdyTZdpZ/5jbqfbL557OP40:1199:1199::/public/home/yangchen3:/bin/bash
yanghang2:$6$MU1DF2stBw0xBLkm$NL/lSFM4MPUShZ.KClSPE0zI18ucYZhtn0y8JxjdOSeVfNzHZVDqCVN9cgY6CvPQL4IBVOvzx43IMvuY5/l2f/:1324:1324::/public/home/yanghang2:/bin/bash
yanghao5:$6$LuJDhK08WqtHspqm$FXHIwyjUJfmuikcOJ5vY/4hqcad57.CQX4H9kIAF4pNbrGmR4GrAORJq.vUzRJorhv.TvBBxdznZnFMA1c5n81:11419:11419::/public/home/yanghao5:/bin/bash
yangql:$6$iZDX/IhcNvXeJRY3$eGnD2.7fpD0KxjNgGJs4S.vjspRuOVgc0hcIdeipX8a8wxC4UU.GpreNXYjmG8F/OJJX1HekU9wbNBSRYJLOr.:1107:1107::/public/home/yangql:/bin/bash
yangql1:$6$PoTAa/9WdfW/SVm$egVt40I8x3SQXTBw7KbhFhSM7o8lqVU7HzHXgy46YEtWlfybCoQFEOBNg58u4FdS3fET7.qQUDETRHehApodY0:1150:1150::/public/home/yangql1:/bin/bash
yangrong:$6$B72kcP8McR$vLN9A7aYfq3abF.sqPvmyMgb4xkdC44opwg1dKQbHWMTVL..8kQItJ1920whLynsDR7aA9xNPRSU00PJwatkm0:1138:1138::/public/home/yangrong:/sbin/nologin
yangshj1:$6$VsnnuFd3tztpd$ROsa74FJvmAdbsRqibTD3df5J55I12t5K5zMGZlIaV1JGAzMG/2Wg2MXqWfRbQEj26U5xAefMXtV0IqsRRgDZ.:1363:1363::/public/home/yangshj1:/bin/bash
yangwl:$6$jeEWbqf36I/OfYzr$aqHhEhzDjBaBBDf.mdVdTAUnoBwmN5r.edj8nfX9XJVn5KwJkYXE3EF/q9hUKekM52Se7I9oh.DIYSY29WNuM0:1229:1229::/public/home/yangwl:/bin/bash
yangxue3:$6$0zyi27xIVm7iuFjm$pBzEPZ4UuSyloqy4zHClc/O8pRwRtXLyKQ4qSiDYmCokdRa8Yvp2yGfAL5GC7aTe4kYqjjiP9DlZQTIp5ECQA1:1419:1419::/public/home/yangxue3:/bin/bash
yangxun:$6$vaYUw/bvx$0Unaku0CqVVPXqbPeHDoojERvW7H2N3lhFtE6iKETPV8YE3rLFv11mQzvPVruDzYiHDHBqZsEl7FjVs9e9gSN0:1116:1116::/public/home/yangxun:/bin/bash
yangyao:$6$hsw1zXKndwwz3imr$lLb61S0ghG6Nw2Y87hf5GbMvDXJsV15M8vku/oYF8vi1uizRanZiIVgooqnLKV27yehdPrRp0FJF95JEjrBQw0:1397:1397::/public/home/yangyao:/bin/bash
yangyn1:$6$rwA7W/OClWUAp2Rw$tDNqHiS8/VDK.gMI7574nhW2osGAwqdTHjbKyNslvyXKa8L1.DW1ZUwLcgkPmmW0hjeoI9nT23AsehQqy2vk.0:1156:1156::/public/home/yangyn1:/bin/bash
yangzhong:$6$c0avRRhq0plQMakb$VTmiwUGj0psI.u/bNyZVWiV5TXpDEFAL7DHnHk6CT9ZUSHw8f.ba4lnbYqK2.3hBXS6kynAV1/ZrSgC253.Gi/:1097:1097::/public/home/yangzhong:/bin/bash
yangzhy1:$6$GOYzFRQDiKtHNMH/$jP78/Gc85IKe1guCDCK47U6CAc5rbG4IXHGNZ9dAFknVEKNUfHBbZj1V7AU69LcwiGOJhCgRpeBjCspOTZRc81:1188:1188::/public/home/yangzhy1:/sbin/nologin
yanzy:$6$aNgnUX/Dak7CKoXv$EiWgXbx9.6jZsR3g.thMRYUP2veJgwboGOmanRZ1XCF..c5k7ubYKMnhWWm1BBmDsF6U/EhwDSzJDEJX6kPSI.:1368:1368::/public/home/yanzy:/bin/bash
yaoht:$6$6mnbbh7JHOqaKeI/$hcRK/dk0koUUoMetSAP88A2k1z4HK2DzUpgAgD9YahaPoB2ZgEf2s3BLks4elhhFhCI2UsDjxoDuJKsQMIVJ4.:1117:1117::/public/home/yaoht:/bin/bash
yinbw1:$6$Z1EiMl5q5Q/jO$lf3Nf4hy.C8cFvB7fp903LffdKGMynEbDbTsDOy3Pk8LMdeMVEiHs/4jbHL12Fmgf10ZROPXd8YdhSQl/1LBr.:1209:1209::/public/home/yinbw1:/bin/bash
yiqa:$6$dMRZCZMBZvL5prR5$rMeCQ0/6x3jZlp/8o1./JjUBKfzImDfzv.p5mh5AAXtLr37xUyiLJerAFe98QrICQJGH4S4Vxy2bPSQEFFGyO1:11452:11455::/public/home/yiqa:/bin/bash
yongshk:$6$HHJzZDxK6Yvnlyxr$astkufX5GjJru7Tym0MUYbzccnCYb/4sSlSu.tQ9hrwcwIUk7Na2E8Ao4l8PFb26jNSShnOjgpOKuTrp3E.oZ0:1094:1094::/public/home/yongshk:/bin/bash
yuanming:$6$qzGFFpOxc3OkC68b$FHPWrq.n5TQeb0STBOqH6BcQJOQBVVCyoC2w3UqgdIDSL4kChPxi4TF89G8rENHAfqu2MOqlfOwjyIa4eKF331:1228:1228::/public/home/yuanming:/bin/bash
yuanshq1:$6$8dBjX2.H2vGiPvaI$mTFXN1iXo.l8vvRZUQ/oErvHz1eeaI5CW5EtHE1kHf.fQU2r9SUg/O49aT3qfVdNSfgtQmVXWp0qRrU.9yDyP1:11448:11451::/public/home/yuanshq1:/bin/bash
yuanxiaojie:$6$ayHhN/B4Ur$TqeT3JzfR9P6xv6SWgLq/Xk2aVxFfysZzKOBo37PPoJU7bH6p5ueR8Y2AymSllyuKUQioqvnUsKhWADU73dNf/:1303:1303::/public/home/yuanxiaojie:/bin/bash
yuanxj:$6$f5uET/c2C1k/SU$zAfE7OGBc9E94N1O0greSCKb0eQgJ6aXxBAAOq08Fqjy17TyC515S6z8hHb9WClgADIdv1EFoNH5CTK.DxbCh.:1304:1304::/public/home/yuanxj:/bin/bash
yuezr:$6$i7BI.jqPHsmCX8Y8$nsTPacBPGVoCJuKYFSgo3E/0PQopMIKZ73PaL6b6gKBB5DWoG2TSRn/sFdgGyfoLutZWSosHXSQLaNGYj8gDp0:11439:11442::/public/home/yuezr:/bin/bash
yuguo:$6$gpgcM.RSX/NF56fd$FTrLi398AlkxjoKduvw5ERiHsl2W.C2XAdo.5wz1FbkaWkJ9.8N21FhJLcY55aKz6kFRyvvNu.jf.ZbfeUvx11:1082:1082::/public/home/yuguo:/bin/bash
yuhui1:$6$6Woj8s8WsJ6R0TXA$4S1AndN1r89MLFUo6n3xT1o8gqp1/reBUYRhUpjc/tkA0zphGXZ5CgX1AzVGeqaSoH6w9GfkJFHcXycJuko.c/:11436:11438::/public/home/yuhui1:/bin/bash
yujq2:$6$Fc0fMStsBp5Jmajs$vH15A10QP5le00NZUuDYRpVW3Vv2lQg9445PGCcGDx7wx1gyiOCwhiQgv6MV43cyT65qMU/6l4sHfjjPocr041:1172:1172::/public/home/yujq2:/bin/bash
zc:$6$aiTT7RIACxm.l$R7ZSTeqagC6OaqfdQ47CQZT88zb5ooNT4jYQQYREIfOJZt3jxXPs.DH3zH94GlX7K2QvkwcttSQc3gy4sMA0w1:1305:1305::/public/home/zc:/bin/bash
zhangbo:$6$zKycNE1wyz4I$iD4e/.t4mGVg65YqHnfRWe91wBcZ.w/DlZOwrUYLc1mtVBz8K16ucNek16dLOWnclom3LC1nhR2aPVi36HdOO0:1058:1058::/public/home/zhangbo:/bin/bash
zhangchao5:$6$IXwAQbgi8mUFDfAW$2fwh4BQxyGVIiUFiAbn3F1afGgZS6UUe.TUkBa44uDRpYyEwWLSBxjIlOLONqrA9bNXiISDhALo9selq8Yhcw0:1166:1166::/public/home/zhangchao5:/bin/bash
zhangdong1:$6$AT5dufKyp.w1OkNi$9RmASomPp9ZF0XH/lHFr4XS9UGquHgArTVnHWjb/HSw6TWmrCqkcxlDvRHRBJBHXnaC73mBFbpGChAw5hV98g1:1168:1168::/public/home/zhangdong1:/bin/bash
zhangdong3:$6$pfpQJ/gZXMY$lzp7V8cNVCL4TMrXq.QQb4rOKG3qRhQNUJoKKBDpRrZY3ji4j.V.IDQ.OoI5bxlbPl7TogM9NU.f2yFbkymUz.:1226:1226::/public/home/zhangdong3:/bin/bash
zhanggj:$6$msygTX6OFzXHWEo.$N4Xj3yWkPmpOPxsXVijM.xE5Mnc5UKvogB5LrkDxaJYiPLvUW8/fmlRVq7xL3Zfc452kZos6gdAVhxi635NNS0:1136:1136::/public4/home/zhanggj:/bin/bash
zhanggj3:$6$HJKOYVil2JTk0/pb$Wkr8ClhcLvN/IErAd7lRsLWSzSIWG4fR/OcMA7nrfs4Z/N1MrrHqiVpEzGZypeOcOi07Cy7sMkV6tbi72oxGx0:11417:11417::/public/home/zhanggj3:/bin/bash
zhanggzh:$6$oe6K9SdzUGXnK/pE$ce6SbqDHweY6bTzKZlZz3668AQABLeO59BjthqBiIIevqZD93vZPkHlVGdP1sYlsjXwz6OdHYhdp6jB40OOi.1:1069:1069::/public/home/zhanggzh:/sbin/nologin
zhanghang3:$6$lvhNWdzEf3BNn9hf$EelP6h1xl9DCaWLQKv9vVJn9QelGKIPooX5UPcLyUOSz17ucKIHJ6poV5Gv3XqDEYC7oi.6UZvHYrRtzT/h4z.:11450:11453::/public/home/zhanghang3:/bin/bash
zhanghj:$6$pvLQO7POYeX8NjfL$ixE76ROBAMaM6zEfDK7QcvSngnUCTp2499hX1oTc6Y2tsR1dOg1xL4dkh/sZRR6cBzeTxq.zSJHm2jS0LWq/w1:1182:1182::/public/home/zhanghj:/bin/bash
zhangjy10:$6$QNZ1Ez1fwaiucpx$Ks6z7kKI7/4LbD4fhe8gdLIr9mT74ouUIIZYDjDGcDtm5hTyjgI5oPhSNEQ3l/pRBA99ROpAAs.obDOylY2Yf.:11426:11426::/public/home/zhangjy10:/bin/bash
zhangmf3:$6$ldVjZbzvS0Fbs1QK$cJHJ7nGXZ/0MXAw/6CpIS6TC/dsrCWhmtldBB9BCl5zcqs/kFnzX8J1rahCLxm/Hplp5f0vvx81gfMq77mVXw0:1401:1401::/public/home/zhangmf3:/bin/bash
zhangqha:$6$JkMYuXxRUwI33.Kw$HjOvk1veUyobUuYGbrJWw21tBVflVO9U2gm/eDF/gGTAlnWco4pYq8oewKxcNwZudZDrIsalD.o7R4D3RAeH60:1076:1076::/public/home/zhangqha:/bin/bash
zhangsen:$6$VovuDdS2ZPbLubLu$H5lxDiskOpoOpAa/O0vVa2AeGE8ah1KYbbeXnfazngmJqyFv4tjo8ywdkfS6.oI3fchpl07pXYC968j7xuH2I1:1217:1217::/public/home/zhangsen:/bin/bash
zhangshao:$6$Oh2cgHu7uxkPrTId$FYr0uyy/Y8UDkQpr7cdNncx3u3FwNkfr8Vtmifme6T.HzPs/zC.W2KfyHBy.VEIMzHf6RKTRtRHXTMvPF..dw1:1070:1070::/public/home/zhangshao:/bin/bash
zhangshx:$6$JOdLk/WWQnyI2Zj$bSkgJLWWansbg0u4ZdKWU73fci1WHtxCbAXrbJD30OtIZwsymUYPW1TRgxfzPtbrtFDqNmEPArcLpU6m/UK3N1:1219:1219::/public/home/zhangshx:/bin/bash
zhangsw:$6$DHTl7/a1.2$.HqNPJZH7Oi0HU8Yn7Gd5DsRS9f8qf.EsjUT2KaYgs75EpHa/0KCJGuoZb/HIUATzaCO9GVDnHABySjhfkrSv1:1306:1306::/public/home/zhangsw:/bin/bash
zhangtt1:$6$pNPoaUQqHm95ylvH$jFfXDq1DwM0YcjSSmitNKe53Xig4v01xYF04EbG1arwLAp1dEBwJq7KNE1xre2/IqTLUyHtSZRPTbO73fmq4.1:1220:1220::/public/home/zhangtt1:/bin/bash
zhangwb3:$6$DAsyC2G1iGYIrIL2$2bSzGnP1U/TiOO9x9qXYNgXSRbQKR06fcwLt6maY/6dnNkJuOI4i3bxiOLxUjKkCmTv7voSGvbO7WpBvS2TZh1:1372:1372::/public/home/zhangwb3:/bin/bash
zhangwq:$6$6KESdrm0ns2Eks5W$RJ4QI/Sxeo4YnaqvQc.0SIYP3n7aKqFywvtCRLs9BpuhTucFKva/oinyPZzbz6kn0SsKcu7f1WKRi53z2LEfX0:1130:1130::/public/home/zhangwq:/bin/bash
zhangxb3:$6$TgeBH6agflm0d0ft$NzPAV.2cADksZ6ZP9.ojTl.DP1TGTEOQTtZGU7AN.Xzs/M8DMiMRZFPJ/3PewCcwJ2sTXqfAU8zMFAsGGU7uv1:11415:11415::/public/home/zhangxb3:/bin/bash
zhangxin10:$6$52TzWgXq77rVysf1$DBJra6Pd2LSeMZLFUsPpX8N/q/o7zEQT9gytTzbgChyNILDYSKDaCMAYAlpt8X8PDJJGZS84rVl2HVU7OmOQS0:1383:1383::/public/home/zhangxin10:/bin/bash
zhangxp:$6$vchwg/8EfE2/k75e$5LLFqsYM0Vpi8N5mzw9JHw20UhyaAyQ/8z9UkCq7xlF/5KMxQ2iEJ71ril/DQw90JGDiSJuWXtK1k5gqGP2g4.:1307:1307::/public/home/zhangxp:/sbin/nologin
zhangxp3:$6$hLACy/e8qh$ceUnCuwcST1Kf5hV6bvaiPAW7PqHLsqPBqUJcQVGxb.RcSYsXf0/YXznPg2FfMNtCsPqkmGUeptU8JzhNcrif0:1223:1223::/public/home/zhangxp3:/sbin/nologin
zhangyh15:$6$cLnufGGMa3/V8i6s$E87fohnqEiYaWSX345nQ.Ecfe3Dk5rMAy5lSpCm3vJAYvZRyFG3Hsb0xnyupL8odXtF09EOAyiUzpFcmQgYGS/:1339:1339::/public/home/zhangyh15:/bin/bash
zhangyz:$6$ieilN7AiR7d3eJ3$kZxGBquLLaixFuo9AQFFnvWShUQZWmPRTsc6rCpbnyeiRafYSrl2NoMtXWbaRmsHNI0iWTHiAyw4J18A7X4Ee/:1057:1057::/public/home/zhangyz:/bin/bash
zhaochao:$6$mrSrt/n53R$jSBpj729p6r42SbUPBglhBkYv0bnO3rLUvH5oA78EYJdAEwldOhNhQMiaEnBbUAvEuBjwoNSycspXRjrYZrFv0:1308:1308::/public/home/zhaochao:/bin/bash
zhaocy:$6$Wi5ch85ejIq9zoB$t.nXLKJv3YQWij2NdaZL61nUxSFlzM2clMUgn4Wn.YfChhF.QvV6t0oD8InLiFS.FaITtimYwH4LYiLohDvsk/:1101:1101::/public/home/zhaocy:/bin/bash
zhaodd:$6$J0Pob/d7Bk8dWJJK$a3LYS2MpfFj/0xiRneRgRVIk7r62ZxPVWgJ4NOeyAX3Cy972toQ14m7vmpqk4AA2vBQfgFmvlLpuZTo3eItuk1:1309:1309::/public/home/zhaodd:/bin/bash
zhaodd3:$6$Kjr1z7Q7K3/W$QPSQji8P0EkBcPLVJSeyunPlUiN44UMJkVIIJQh5x48adnECSzWSWginpwTLK80nPJQkXN1H0P64LMOnoX4hU/:1222:1222::/public/home/zhaodd3:/bin/bash
zhaohp:$6$erplpKLimjI8M$vzWDq6HZxfvUCC2oiIW9CNSVourTsORR131EIfjH4DljeXs9Aq./0qfd2SVVdPpfIwdAQCIw/2SlSd3LBlLwH/:1060:1060::/public/home/zhaohp:/bin/bash
zhaojie:$6$81oF0FjTwZEvEUaZ$wwcllVclgrMr4Rr4G8fLlxxmFp6BGM1UcU13DDX1kSIMxugPp3JEs0Fmo0ZytOP3kxVYSVUCPkvTXvv9aLyui.:1405:1405::/public/home/zhaojie:/bin/bash
zhaomy3:$6$D4d6ciKy.BkuyPr6$DKPWq06oM/hxCMRB2lVLCeudSS9mZERPa3XhcBFJWKWuHIvmqMp7HhJsSVuFtQcGgGPDX.a5Oyb30FvVsMvad1:1146:1146::/public/home/zhaomy3:/bin/bash
zhaoxy6:$6$wRl43sPDTDIiN7WZ$AgTFMWAhcs17JIEjQAo7xIwmUduf2A01iXD3/PxE4Hv9Meg1Ry9JwWldesLXj6LjWv1WI6ptvnOmXfhY.t4pD0:11429:11431::/public/home/zhaoxy6:/bin/bash
zhaoying:$6$qQs5T03IETT5jrq$4J89o9IDvk74SRy1jAfB9EyoelHbPVDheowT4U6l8QLgqu097ZlYfF95abHilF/.OW2oxXe5BgQ1cLo/HZUS..:1093:1093::/public/home/zhaoying:/sbin/nologin
zhaoyu:$6$wFnzoFa9z60NWlJJ$SISRB4yDZcFXbAZmeg6UAxDPI6UMwcnPYYTwc1XPPWJFcKgA6Sm35E0mUrN2XOU.71Y/it0yeW2.lm.b5bQv5.:1187:1187::/public/home/zhaoyu:/bin/bash
zhaoyu6:$6$bapDH5D.I$qeQMotvrG.c3fQuT7H7bpu40SxuA7Mxgrf8y8SaiN8NHAsDq83oIuA5sHJ45O4cnXFugByN0AIKL7D6sZ9U3G1:1310:1310::/public/home/zhaoyu6:/bin/bash
zhaozg:$6$LZYrg2Vt3J6h1wqD$m6RSWcLVB.K7nPAXbk9mE7ouT23aETXtZWqAUc6xKN1KeWgrnD7YOYy9pT5ZHYntca4tsl5zaLgZXs/fZDM9D.:1311:1311::/public/home/zhaozg:/bin/bash
zhenggf:$6$UYRhxjiEc1akX22p$WYz0vV4RZNck9ps0nuA9kBqdW5sLFI95G2vY/4FEczEvM7j7FgOf5fXD5ecB.iz6A5Qa/2E8/JVH7kf7xn//j0:1104:1104::/public/home_tmp/zhenggf:/bin/bash
zhengjj:$6$Y/jIh/QH$p1oSgbH0MmdJFgXhle6FoiSYij9Zd10pUKAocaS6LBcY7/f7zoJlPiLTQlBlenbaomJFvHbz13JmQiLFMGy.P.:1312:1312::/public/home/zhengjj:/bin/bash
zhiyuan_test:$6$mfBjkuzfB9BE89vA$VOMgsNdgYYAuvuDAo7Jgt2tRdPqM869WaUNgVX4Ik0JBWf6wJW2sh4LL8T1hqqC9Qseyd89t63IdsSq.adq1W/:11438:11440::/public/home/zhiyuan_test:/bin/bash
zhoubo:$6$LuzBxHBYlyg0QdXh$s0y9VTBVaMFw.FGsXo5NQ0/kuidMsG.xcuIogVz/5okdSz2thf4.jcRim0IO0O2009i6GsbrkHcRfeIVJOCUo0:1225:1225::/public/home/zhoubo:/bin/bash
zhougf:$6$1vSF.opDv.iBUXHv$TFYBJoxKXi2fd.Ewg6N5USPtLfic/JROzaslS7AAHAZuvliSlXHAz4.DsVM4YN6nMVyOz5liIKrxR6MXW73eY.:1185:1185::/public/home/zhougf:/bin/bash
zhouwg1:$6$duDke/r4$A3H.c2Qqo6/uAesd6HUZsJUNkYmu3GuoAWT9Dl3sEe7sd3g/OaAxTrmAmdlwygUFtv6YIDckdE4QYEqBn6qjO0:1376:1376::/public/home/zhouwg1:/bin/bash
zhouxiang:$6$zkLaPDhJbRIqInw5$d1uODHrjPPr4HrTrLU4/4TOHyhzNADJSbI.69rPS13tMzg42hmv7.sQ19l/1T9bxhgI7qGxM9wb3bMj8nRVRp.:1098:1098::/public/home/zhouxiang:/bin/bash
zhouxin:$6$P4V9vgL6OOhmAgHs$up3u0o3gS0qg/XVe5yenN1P9OUd3dyZnDhtH8lHZ2yehXdReahOesF1K.FbQRZ4oHcAa1eOSdzzAEimeuuqhY0:1313:1313::/public/home/zhouxin:/bin/bash
zhufzh:$6$dPAu8lI2brcTJfeX$QmL7A/Yu8A.Jq1KlpUQdPYXQ0Ak8WEBplcm3sDmybT.AT.IPRuZ1NP8BjJJlQdGK62Yq9VNbC2NluZADeAu7U0:1152:1152::/public/home/zhufzh:/bin/bash
zhugzh1:$6$SRG2r9nJGou5IKJe$B8muyeCD.sFKneNxyT67188e.kwwI1bDS/b0ldkAxiBnOgKuseyRBvixofYATCoCb9WdfJy37ZAd1k5I6YA9u.:1211:1211::/public/home/zhugzh1:/bin/bash
zhumc:$6$teoxB7Ku0JaGfmhv$271uRFpE1aApN0YHwEOYOEEAUZjUm0pXtUHyutmMu5.c0PeJDX6z0VigQ0Fyg1Z0hYePAm7s5egjbm.NNhO5d0:1135:1135::/public/home/zhumc:/bin/bash
zhurui5:$6$PKtmn2Wv1hMODDEd$4FpSI0VUMJkk2KChy7TYFScTl8tHMPq9hTLTkjWq6544ZnvMBEUTRcTzBbpU13UzwLuhXGZ29vIsXwTSb6Xma0:1337:1337::/public/home/zhurui5:/bin/bash
zhush1:$6$yf7wKWAxRBVWvxOV$G8VmtVmiUFZFXieGbTANEMO9IKNr9OURPCrhL.uVBvPfDiZrepzF44SOmDZOCukl2c3Q1hHjDImWrMB8S6y7H.:11421:11421::/public/home/zhush1:/bin/bash
zhushy1:$6$w7GihbVtUONZnxfI$O2AHQnCwLVX3dQdMyFMye.ypTO85O4Hc1dPdmDWuocjDYbVC4FII66GfBNpRAp5gqpXYbowXDJ9b5KA4teY1K1:1416:1416::/public/home/zhushy1:/bin/bash
zhuww:$6$fVq7I65KgyUI4KjD$zYzLeZpEr6UPj0LYNfvXSoAH9uhYR6OG4J9feiYIRor4XWoNJN7MdB/DWuOzwP74uE7RIbIpV8AglyjtdNZWi0:1071:1071::/public/home/zhuww:/bin/bash
zhuyan:$6$54Q6A/EPMW//rarQ$hxvh/gcuzGjBWOlo3XFK4G91mOxy2tOM.aCxVqNnNe0NJEicUuGkBg5BuYOezP0bcsYTC4QqT/pOsP/9MwIwf/:1079:1079::/public/home/zhuyan:/bin/bash
zhuyq:$6$JXeCmcB50Hx4w0je$ovmO1kevKOUqb7AIRHnyZjFYYvXvlCsxUpLB2I9Celzo2BPpgUyLQRtgxHdq9SAmIDhb/v3adE8dc6fk4Xa4H/:11433:11435::/public/home/zhuyq:/bin/bash
ztt1:$6$dG8pXcrihTZ$9U3uHAOsNvq2Oc00ynUql10kwXZVWDmXCw/qmghSviTzZGkElWRhfwrwEjvAxePxD6KReRM6zOz4.FIoFeT.40:1314:1314::/public/home/ztt1:/bin/bash
\ No newline at end of file
# rsyslog配置,将指定服务的日志发送到socket里
$ModLoad omuxsock
$OMUxSockSocket /tmp/mysock
authpriv.* :omuxsock:
Dec 22 17:52:31 bw11 sshd[59102]: Accepted publickey for root from 10.16.4.1 port 36752 ssh2: ED25519 SHA256:0o84iZ8MJUCRzTIipR8eLzX2g+Rx96MKMVq/RakG/GA
Dec 22 17:52:31 bw11 sshd[59102]: pam_unix(sshd:session): session opened for user root by (uid=0)
Dec 22 17:55:34 bw11 sshd[59109]: Received disconnect from 10.16.4.1 port 36752:11:
Dec 22 17:55:34 bw11 sshd[59109]: Disconnected from user root 10.16.4.1 port 36752
Dec 22 17:55:34 bw11 sshd[59102]: pam_unix(sshd:session): session closed for user root
Dec 22 19:09:47 liming-ecs sshd[3831482]: Accepted password for root from 125.46.29.2 port 58138 ssh2
Dec 22 19:09:47 liming-ecs sshd[3831482]: pam_unix(sshd:session): session opened for user root by (uid=0)
Dec 22 19:09:50 liming-ecs sshd[3831486]: Received disconnect from 125.46.29.2 port 58138:11:
Dec 22 19:09:50 liming-ecs sshd[3831486]: Disconnected from user root 125.46.29.2 port 58138
Dec 22 19:09:50 liming-ecs sshd[3831482]: pam_unix(sshd:session): session closed for user root
Sep 28 14:52:37 login01 sshd[4092]: Accepted keyboard-interactive/pam for fengchao from 10.206.8.202 port 55805 ssh2
"<86>Dec 23 15:57:07 bw11 sshd[1575855]: Accepted publickey for root from 10.16.4.1 port 60058 ssh2: ED25519 SHA256:0o84iZ8MJUCRzTIipR8eLzX2g+Rx96MKMVq/RakG/GA"
\ No newline at end of file
root tty1 2025-12-22 19:38 . 1603
root pts/0 2025-12-22 19:34 00:04 1486 (192.168.200.1)
root pts/1 2025-12-22 19:39 . 1486 (192.168.200.1)
gaoya pts/0 2025-12-22 10:45 05:20 218163 (10.16.4.4)
gaoya pts/1 2025-12-22 10:52 08:47 218822 (10.16.5.2)
fanwl pts/3 2025-12-22 14:23 05:23 239781 (10.16.4.4)
gaoya pts/4 2025-12-22 11:02 00:44 221233 (10.16.5.2)
fanth pts/5 2025-12-22 15:10 01:34 246862 (10.16.4.4)
fanth pts/6 2025-12-22 15:27 01:34 249322 (10.16.4.4)
gaoya pts/7 2025-12-22 18:00 01:44 402386 (10.16.5.2)
ops :1 2025-12-22 19:45 ? 430638 (:1)
root pts/8 2025-12-22 19:48 . 432149 (10.16.4.1)
\ No newline at end of file
package main
import (
"log"
"net"
"os"
"github.com/gin-gonic/gin"
)
var (
GIN_SOCK_PATH = "/tmp/gin.sock"
)
func InitGin() {
os.RemoveAll(GIN_SOCK_PATH)
sock, err := net.Listen("unix", GIN_SOCK_PATH)
if err != nil {
log.Fatalf("error listen unix socket %s: %v", GIN_SOCK_PATH, err)
}
err = os.Chmod(GIN_SOCK_PATH, 0666)
if err != nil {
sock.Close()
log.Fatalf("error chmod of %s: %v", GIN_SOCK_PATH, err)
}
g := gin.Default()
g.Any("/", getLoginedUserInfo)
go g.RunListener(sock)
}
package main
import (
"log"
"net"
"os"
"os/signal"
"sync"
"syscall"
)
var (
wg = sync.WaitGroup{}
)
func main() {
InitSSH()
InitGin()
socketPath := "/tmp/mysock"
err := os.RemoveAll(socketPath)
if err != nil {
log.Fatalf("error delete %s: %v", socketPath, err)
}
conn, err := net.ListenPacket("unixgram", socketPath)
if err != nil {
log.Fatalf("listen unix socket %s failed: %s", socketPath, err.Error())
}
err = os.Chmod(socketPath, 0666)
if err != nil {
log.Fatalf("chmod 666 %s failed: %v", socketPath, err)
}
sigChan := make(chan os.Signal, 1)
signal.Notify(sigChan, os.Interrupt, syscall.SIGTERM)
wg.Add(1)
go func(wg *sync.WaitGroup) {
select {
case <-sigChan:
conn.Close()
os.Remove(socketPath)
case <-globalCtx.Done():
conn.Close()
os.Remove(socketPath)
}
wg.Done()
}(&wg)
buffer := make([]byte, 16384)
for {
n, _, err := conn.ReadFrom(buffer)
if err != nil {
// log.Printf("error read unix socket: %v", err)
globalCancelFunc()
break
}
go ParseSSHLog(string(buffer[:n]))
}
wg.Wait()
}
#!/bin/bash
curl -s --unix-socket /tmp/gin.sock http://localhost | jq
\ No newline at end of file
package main
import (
"context"
"fmt"
"log"
"maps"
"os"
"regexp"
"slices"
"sshd-tool/utils"
"strconv"
"strings"
"sync"
"time"
"github.com/gin-gonic/gin"
)
var (
sysuerInfo map[int]utils.LinuxSysUser = nil // key uid
sysuserLock = sync.RWMutex{}
username2uid map[string]int = nil
haveNis bool = false
globalCtx context.Context = nil
globalCancelFunc context.CancelFunc = nil
onlineInfo map[string]utils.OnlineUser = make(map[string]utils.OnlineUser) // key pidstr
onlineLock = sync.RWMutex{}
hostname string
loginedUser map[string]LoginedUser = make(map[string]LoginedUser)
loginedLock = sync.RWMutex{}
)
// getUserInfo 根据用户名获取系统用户信息
func getUserInfo(name string) *utils.LinuxSysUser {
rl := sysuserLock.RLocker()
rl.Lock()
uid, have := username2uid[name]
if !have {
rl.Unlock()
user, _ := utils.GetOneSysUser(name)
if user == nil && !haveNis {
return nil
}
if user == nil {
user, _ = utils.GetOneNisUser(name)
}
if user == nil {
return nil
}
sysuserLock.Lock()
sysuerInfo[user.Uid] = utils.LinuxSysUser{
Name: user.Name,
Home: user.Home,
Shell: user.Shell,
Uid: user.Uid,
Gid: user.Gid,
SSHkeyInfo: maps.Clone(user.SSHkeyInfo),
}
username2uid[user.Name] = user.Uid
sysuserLock.Unlock()
return user
}
user := sysuerInfo[uid]
rl.Unlock()
result := utils.LinuxSysUser{
Name: user.Name,
Home: user.Home,
Shell: user.Shell,
Uid: user.Uid,
Gid: user.Gid,
SSHkeyInfo: maps.Clone(user.SSHkeyInfo),
}
return &result
}
type LoginedUser struct {
Online utils.OnlineUser `json:"online"` // 在线信息
AuthType string `json:"authType"` // 登录时的认证方式
KeyHash *string `json:"keyHash,omitempty"` // 登录时使用的公钥hash
KeyUser *string `json:"keyUser,omitempty"` // 登录公钥的用户信息
}
// updateOnline 更新在线用户信息
func updateOnline() {
us, err := utils.GetOnlineUser()
if err != nil {
log.Fatalf("error get online user: %v", err)
}
onlineLock.Lock()
clear(onlineInfo)
for _, v := range us {
onlineInfo[v.PidString()] = v
}
onlineLock.Unlock()
}
// Init 初始化
func InitSSH() {
ypcat := utils.FindCmd(utils.NIS_YPCAT)
if ypcat != nil {
u, err := utils.GetNisUser()
if err != nil {
log.Fatalf("error get nis user: %v", err)
}
sysuerInfo = u
haveNis = true
}
sysU, err := utils.GetSysUser()
if err != nil {
log.Fatalf("error get sys user: %v", err)
}
if sysuerInfo == nil {
sysuerInfo = sysU
} else {
maps.Copy(sysuerInfo, sysU)
}
username2uid = make(map[string]int)
for _, v := range sysuerInfo {
username2uid[v.Name] = v.Uid
}
globalCtx, globalCancelFunc = context.WithCancel(context.Background())
n, err := os.Hostname()
if err != nil {
log.Fatalf("error get hostname: %v", err)
}
hostname = n
us, err := utils.GetOnlineUser()
if err != nil {
log.Fatalf("error get online user: %v", err)
}
for _, v := range us {
onlineInfo[v.PidString()] = v
}
go updateSysuser()
}
// updateSysuser 每10秒刷新一下用户信息
func updateSysuser() {
ticker := time.NewTicker(time.Second * 10)
for {
select {
case <-ticker.C:
if haveNis {
u, err := utils.GetNisUser()
if err != nil {
log.Printf("error get nis user: %v", err)
globalCancelFunc()
continue
}
sysU, err := utils.GetSysUser()
if err != nil {
log.Printf("error get sys user: %v", err)
globalCancelFunc()
continue
}
maps.Copy(u, sysU)
sysuserLock.Lock()
sysuerInfo = u
for _, v := range sysuerInfo {
username2uid[v.Name] = v.Uid
}
sysuserLock.Unlock()
} else {
sysU, err := utils.GetSysUser()
if err != nil {
log.Printf("error get sys user: %v", err)
globalCancelFunc()
continue
}
sysuserLock.Lock()
sysuerInfo = sysU
for _, v := range sysuerInfo {
username2uid[v.Name] = v.Uid
}
sysuserLock.Unlock()
}
case <-globalCtx.Done():
ticker.Stop()
return
}
}
}
/*
登录
Sep 30 11:08:47 login01 sshd[1768988]: Accepted keyboard-interactive/pam for caiyu from 61.153.50.229 port 4733 ssh2
退出
Sep 30 11:08:19 login01 sshd[1767042]: pam_unix(sshd:session): session closed for user <username>
*/
var (
ReSSHLogin = regexp.MustCompile(`^<\d+>[A-Z][a-z]{2} \d+ \d+:\d+:\d+ (\S+) sshd\[(\d+)\]: Accepted (\S+) for (\S+) from (\S+) port (\d+) ssh(?:|\d+)$`)
ReSSHLoginPK = regexp.MustCompile(`^<\d+>[A-Z][a-z]{2} \d+ \d+:\d+:\d+ (\S+) sshd\[(\d+)\]: Accepted publickey for (\S+) from (\S+) port (?:\d+) ssh(?:|\d+):\s+(\S+)\s+(?:sha|SHA)256:(.*)$`)
ReSSHLogout = regexp.MustCompile(`^<\d+>[A-Z][a-z]{2} \d+ \d+:\d+:\d+ (\S+) sshd\[(\d+)\]: pam_unix\(sshd:session\): session closed for user (.*)$`)
)
// ParseSSHLog 过滤出登录和退出ssh的sshd日志,并对全局信息做出修改
func ParseSSHLog(str string) {
if !strings.Contains(str, "sshd") {
// 不是sshd相关日志
return
}
if ReSSHLogin.MatchString(str) {
go handleSSHLogin(str)
return
}
if ReSSHLoginPK.MatchString(str) {
go handleSSHLoginPK(str)
return
}
if ReSSHLogout.MatchString(str) {
go handleSSHLogout(str)
return
}
}
func handleSSHLogout(str string) {
fields := ReSSHLogout.FindStringSubmatch(str)
user := fields[3]
pidstr := strList(fields[2])
rl := loginedLock.RLocker()
rl.Lock()
u, have := loginedUser[pidstr]
rl.Unlock()
if !have {
return
}
if u.Online.Name == user {
loginedLock.Lock()
delete(loginedUser, pidstr)
loginedLock.Unlock()
onlineLock.Lock()
delete(onlineInfo, pidstr)
onlineLock.Unlock()
}
}
func handleSSHLoginPK(str string) {
fields := ReSSHLoginPK.FindStringSubmatch(str)
name := fields[3]
pidstr := strList(fields[2])
keyHash := strings.Trim(fields[6], "=")
auth := "publickey"
user := getUserInfo(name)
if user == nil {
log.Fatal("unknow error, can't find user")
}
if user.SSHkeyInfo == nil {
log.Fatal("error, login use publickey, but can't find the key")
}
key, have := user.SSHkeyInfo[keyHash]
if !have {
log.Fatal("error, login use publickey, but can't find the key")
}
updateOnline()
u := LoginedUser{}
u.AuthType = auth
u.KeyHash = &keyHash
keyUser := key.UserInfo
u.KeyUser = &keyUser
rl := onlineLock.RLocker()
rl.Lock()
on, have := onlineInfo[pidstr]
rl.Unlock()
if !have {
log.Fatalf("sshd login, but who not find: %s", pidstr)
}
u.Online = utils.OnlineUser{
Name: on.Name,
Type: on.Type,
When: on.When,
Pids: slices.Clone(on.Pids),
LoginFrom: on.LoginFrom,
}
loginedLock.Lock()
loginedUser[u.Online.PidString()] = u
loginedLock.Unlock()
}
func handleSSHLogin(str string) {
fields := ReSSHLogin.FindStringSubmatch(str)
from := fields[5]
auth := fields[3]
pidstr := strList(fields[2])
updateOnline()
rl := onlineLock.RLocker()
rl.Lock()
on, have := onlineInfo[pidstr]
rl.Unlock()
if !have {
log.Fatalf("sshd login, but who not find: %s", pidstr)
}
u := LoginedUser{}
u.AuthType = auth
u.Online = utils.OnlineUser{
Name: on.Name,
Type: on.Type,
When: on.When,
Pids: slices.Clone(on.Pids),
LoginFrom: from,
}
loginedLock.Lock()
loginedUser[u.Online.PidString()] = u
loginedLock.Unlock()
}
func strList(str string) string {
pids := strings.Split(str, ",")
pid := make([]int, 0, 4)
for _, p := range pids {
pp, err := strconv.Atoi(strings.Trim(p, " "))
if err != nil {
log.Fatalf("error convert string to int: %v", err)
}
pid = append(pid, pp)
}
slices.Sort(pid)
return fmt.Sprintf("%v", pid)
}
func getLoginedUserInfo(ctx *gin.Context) {
rl := loginedLock.RLocker()
rl.Lock()
defer rl.Unlock()
ctx.JSON(200, loginedUser)
}
package common
module sshd-tool
go 1.24.9
require github.com/gin-gonic/gin v1.11.0
require (
github.com/bytedance/sonic v1.14.0 // indirect
github.com/bytedance/sonic/loader v0.3.0 // indirect
github.com/cloudwego/base64x v0.1.6 // indirect
github.com/gabriel-vasile/mimetype v1.4.8 // indirect
github.com/gin-contrib/sse v1.1.0 // indirect
github.com/go-playground/locales v0.14.1 // indirect
github.com/go-playground/universal-translator v0.18.1 // indirect
github.com/go-playground/validator/v10 v10.27.0 // indirect
github.com/goccy/go-json v0.10.2 // indirect
github.com/goccy/go-yaml v1.18.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
github.com/leodido/go-urn v1.4.0 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
github.com/quic-go/qpack v0.5.1 // indirect
github.com/quic-go/quic-go v0.54.0 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.3.0 // indirect
go.uber.org/mock v0.5.0 // indirect
golang.org/x/arch v0.20.0 // indirect
golang.org/x/crypto v0.40.0 // indirect
golang.org/x/mod v0.25.0 // indirect
golang.org/x/net v0.42.0 // indirect
golang.org/x/sync v0.16.0 // indirect
golang.org/x/sys v0.35.0 // indirect
golang.org/x/text v0.27.0 // indirect
golang.org/x/tools v0.34.0 // indirect
google.golang.org/protobuf v1.36.9 // indirect
)
github.com/bytedance/sonic v1.14.0 h1:/OfKt8HFw0kh2rj8N0F6C/qPGRESq0BbaNZgcNXXzQQ=
github.com/bytedance/sonic v1.14.0/go.mod h1:WoEbx8WTcFJfzCe0hbmyTGrfjt8PzNEBdxlNUO24NhA=
github.com/bytedance/sonic/loader v0.3.0 h1:dskwH8edlzNMctoruo8FPTJDF3vLtDT0sXZwvZJyqeA=
github.com/bytedance/sonic/loader v0.3.0/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI=
github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M=
github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM=
github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8=
github.com/gin-contrib/sse v1.1.0 h1:n0w2GMuUpWDVp7qSpvze6fAu9iRxJY4Hmj6AmBOU05w=
github.com/gin-contrib/sse v1.1.0/go.mod h1:hxRZ5gVpWMT7Z0B0gSNYqqsSCNIJMjzvm6fqCz9vjwM=
github.com/gin-gonic/gin v1.11.0 h1:OW/6PLjyusp2PPXtyxKHU0RbX6I/l28FTdDlae5ueWk=
github.com/gin-gonic/gin v1.11.0/go.mod h1:+iq/FyxlGzII0KHiBGjuNn4UNENUlKbGlNmc+W50Dls=
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
github.com/go-playground/validator/v10 v10.27.0 h1:w8+XrWVMhGkxOaaowyKH35gFydVHOvC0/uWoy2Fzwn4=
github.com/go-playground/validator/v10 v10.27.0/go.mod h1:I5QpIEbmr8On7W0TktmJAumgzX4CA1XNl4ZmDuVHKKo=
github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw=
github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ=
github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/quic-go/qpack v0.5.1 h1:giqksBPnT/HDtZ6VhtFKgoLOWmlyo9Ei6u9PqzIMbhI=
github.com/quic-go/qpack v0.5.1/go.mod h1:+PC4XFrEskIVkcLzpEkbLqq1uCoxPhQuvK5rH1ZgaEg=
github.com/quic-go/quic-go v0.54.0 h1:6s1YB9QotYI6Ospeiguknbp2Znb/jZYjZLRXn9kMQBg=
github.com/quic-go/quic-go v0.54.0/go.mod h1:e68ZEaCdyviluZmy44P6Iey98v/Wfz6HCjQEm+l8zTY=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
github.com/ugorji/go/codec v1.3.0 h1:Qd2W2sQawAfG8XSvzwhBeoGq71zXOC/Q1E9y/wUcsUA=
github.com/ugorji/go/codec v1.3.0/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4=
go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU=
go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM=
golang.org/x/arch v0.20.0 h1:dx1zTU0MAE98U+TQ8BLl7XsJbgze2WnNKF/8tGp/Q6c=
golang.org/x/arch v0.20.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk=
golang.org/x/crypto v0.40.0 h1:r4x+VvoG5Fm+eJcxMaY8CQM7Lb0l1lsmjGBQ6s8BfKM=
golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY=
golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w=
golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs=
golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8=
golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/text v0.27.0 h1:4fGWRpyh641NLlecmyl4LOe6yDdfaYNrGb2zdfo4JV4=
golang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU=
golang.org/x/tools v0.34.0 h1:qIpSLOxeCYGg9TrcJokLBG4KFA6d795g0xkBkiESGlo=
golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg=
google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw=
google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
package utils
import (
"os"
"strings"
)
var (
PATH = make([]string, 0, 128)
)
func parsePath() {
envPath, have := os.LookupEnv("PATH")
if !have {
return
}
envPath = strings.Trim(envPath, "\n")
plist := strings.Split(envPath, ":")
clear(PATH)
for _, v := range plist {
PATH = append(PATH, strings.TrimSuffix(v, "\n"))
}
}
// FindCmd 查询命令是否存在
func FindCmd(cmd string) *string {
if len(PATH) == 0 {
parsePath()
if len(PATH) == 0 {
return nil
}
}
for _, v := range PATH {
target := v + "/" + cmd
stat, err := os.Stat(target)
if err != nil {
continue
}
p := stat.Mode().Perm()
if p.IsDir() {
continue
}
if p&0111 != 0 {
return &target
}
}
return nil
}
package utils
import (
"crypto/sha256"
"encoding/base64"
"fmt"
"os"
"os/exec"
"regexp"
"slices"
"strconv"
"strings"
"time"
)
const (
NIS_YPCAT = "ypcat"
SYS_PASSWD = "/etc/passwd"
)
// LinuxSysUser linux系统用户信息
type LinuxSysUser struct {
Name string
Home string
Shell string
Uid int
Gid int
SSHkeyInfo map[string]SSHPubKeyInfo
}
func GetOneSysUser(name string) (*LinuxSysUser, error) {
content, err := os.ReadFile(SYS_PASSWD)
if err != nil {
return nil, err
}
lines := strings.Split(strings.Trim(string(content), "\n"), "\n")
for _, line := range lines {
if strings.HasPrefix(line, name) {
fields := strings.Split(line, ":")
if len(fields) != 7 || fields[0] != name {
continue
}
uid, err := strconv.Atoi(fields[2])
if err != nil {
continue
}
if uid < 999 && uid != 0 {
continue
}
u := LinuxSysUser{}
u.Uid = uid
gid, err := strconv.Atoi(fields[3])
if err != nil {
continue
}
u.Gid = gid
u.Name = fields[0]
u.Shell = fields[6]
u.Home = fields[5]
s, err := ParseSSHAuthKey(u.Home + "/.ssh/authorized_keys")
if err == nil {
u.SSHkeyInfo = s
}
return &u, nil
}
}
return nil, nil
}
func GetOneNisUser(name string) (*LinuxSysUser, error) {
ypcat := FindCmd(NIS_YPCAT)
if ypcat == nil {
return nil, nil
}
content, err := exec.Command(NIS_YPCAT, "passwd").Output()
if err != nil {
return nil, err
}
lines := strings.Split(strings.Trim(string(content), "\n"), "\n")
for _, line := range lines {
if strings.HasPrefix(line, name) {
fields := strings.Split(line, ":")
if len(fields) != 7 || fields[0] != name {
continue
}
uid, err := strconv.Atoi(fields[2])
if err != nil {
continue
}
if uid < 999 && uid != 0 {
continue
}
u := LinuxSysUser{}
u.Uid = uid
gid, err := strconv.Atoi(fields[3])
if err != nil {
continue
}
u.Gid = gid
u.Name = fields[0]
u.Shell = fields[6]
u.Home = fields[5]
s, err := ParseSSHAuthKey(u.Home + "/.ssh/authorized_keys")
if err == nil {
u.SSHkeyInfo = s
}
return &u, nil
}
}
return nil, nil
}
// GetSysUser 获取系统用户信息
func GetSysUser() (map[int]LinuxSysUser, error) {
content, err := os.ReadFile(SYS_PASSWD)
if err != nil {
return nil, err
}
r := parsePasswd(string(content))
return r, nil
}
// GetNisUser 获取Nis用户信息
func GetNisUser() (map[int]LinuxSysUser, error) {
ypcat := FindCmd(NIS_YPCAT)
if ypcat == nil {
return make(map[int]LinuxSysUser), nil
}
output, err := exec.Command(NIS_YPCAT, "passwd").Output()
if err != nil {
return nil, err
}
r := parsePasswd(string(output))
return r, nil
}
// GetClusUser 获取Clusconf用户信息
func GetClusUser() {
// todo
}
type SSHPubKeyInfo struct {
Type string
Content string // base64格式的公钥
UserInfo string
Sha256 string // 公钥经过sha256后,再base64,如果结尾是=,删除=
}
// ParseSSHAuthKey 解析ssh认证文件的内容
func ParseSSHAuthKey(path string) (map[string]SSHPubKeyInfo, error) {
content, err := os.ReadFile(path)
if err != nil {
return nil, err
}
pub := string(content)
lines := strings.Split(strings.Trim(pub, "\n"), "\n")
result := make(map[string]SSHPubKeyInfo)
for _, line := range lines {
if len(line) == 0 {
continue
}
fields := strings.Fields(line)
if len(fields) != 3 {
continue
}
if !strings.HasPrefix(fields[0], "ssh-") {
continue
}
item := SSHPubKeyInfo{}
item.Type, _ = strings.CutPrefix(fields[0], "ssh-")
item.Content = fields[1]
item.UserInfo = fields[2]
key, err := base64.StdEncoding.DecodeString(item.Content)
if err != nil {
continue
}
b := sha256.Sum256(key)
item.Sha256 = strings.Trim(base64.StdEncoding.EncodeToString(b[:]), "=")
result[item.Sha256] = item
}
return result, nil
}
func parsePasswd(str string) map[int]LinuxSysUser {
result := make(map[int]LinuxSysUser)
pwd := strings.Trim(string(str), "\n")
lines := strings.Split(pwd, "\n")
for _, line := range lines {
fields := strings.Split(line, ":")
if len(fields) != 7 {
continue
}
uid, err := strconv.Atoi(fields[2])
if err != nil {
continue
}
if uid < 999 && uid != 0 {
continue
}
u := LinuxSysUser{}
u.Uid = uid
gid, err := strconv.Atoi(fields[3])
if err != nil {
continue
}
u.Gid = gid
u.Name = fields[0]
u.Shell = fields[6]
u.Home = fields[5]
s, err := ParseSSHAuthKey(u.Home + "/.ssh/authorized_keys")
if err == nil {
u.SSHkeyInfo = s
}
result[u.Uid] = u
}
return result
}
type OnlineUser struct {
Name string `json:"name"`
Type string `json:"type"`
When time.Time `json:"loginTime"`
Pids []int `json:"pids"`
LoginFrom string `json:"loginForm"`
}
func (ou OnlineUser) String() string {
return fmt.Sprintf("name:%s type:%s when:%s pids:%v login from:%s", ou.Name, ou.Type, ou.When.Format("2006-01-02 15:04"), ou.Pids, ou.LoginFrom)
}
func (ou OnlineUser) Sha256sum() [32]byte {
return sha256.Sum256([]byte(ou.String()))
}
func (ou OnlineUser) PidString() string {
if len(ou.Pids) == 0 {
return "[]"
}
return fmt.Sprintf("%v", ou.Pids)
}
var (
ReOnLineUser = regexp.MustCompile(`^(?i)([a-zA-Z_0-9]*)\s+([a-zA-Z0-9/]*)\s+(\d{4}-\d{1,2}-\d{1,2} \d{2}:\d{2})\s+(?:old|\.|\d{2}:\d{2})\s+(\d*(?:,\d*)*)\s+\((.*)\)$`) // sshd远程登录的
ReOnLineUserTTY = regexp.MustCompile(`^(?i)([a-zA-Z_0-9]*)\s+(tty[0-9]*)\s+(\d{4}-\d{1,2}-\d{1,2} \d{2}:\d{2})\s+(?:old|\.|\d{2}:\d{2})\s+(\d*(?:,\d*)*)$`) // 通过控制台登录的
ReOnLineUserX = regexp.MustCompile(`^(?i)([a-zA-Z_0-9]*)\s+(:[0-9]*)\s+(\d{4}-\d{1,2}-\d{1,2} \d{2}:\d{2})\s+\?\s+(\d*(?:,\d*)*).*$`) // 通过图像界面
)
// GetOnlineUser
func GetOnlineUser() ([]OnlineUser, error) {
output, err := exec.Command("who", "-u").Output()
if err != nil {
return nil, err
}
lines := strings.Split(strings.Trim(string(output), "\n"), "\n")
result := make([]OnlineUser, 0, 16)
for _, line := range lines {
if ReOnLineUser.MatchString(line) {
m := ReOnLineUser.FindStringSubmatch(line)
if len(m) != 6 {
continue
}
u := OnlineUser{}
u.Name = m[1]
u.Type = m[2]
t, err := time.Parse("2006-01-02 15:04", m[3])
if err != nil {
return nil, err
}
u.When = t
u.LoginFrom = m[5]
pids := strings.Split(m[4], ",")
u.Pids = make([]int, 0, len(pids))
for _, v := range pids {
p, err := strconv.Atoi(v)
if err != nil {
return nil, err
}
u.Pids = append(u.Pids, p)
}
slices.Sort(u.Pids)
result = append(result, u)
} else if ReOnLineUserTTY.MatchString(line) {
// todo
}
}
return result, nil
}
package utils
import (
"crypto/sha256"
"encoding/base64"
"testing"
)
func TestFindCmd(t *testing.T) {
target := "ypcat"
p := FindCmd(target)
if p == nil {
t.Logf("not find %s", target)
return
}
t.Logf("find : %s", *p)
}
func TestKeySha256(t *testing.T) {
// AAAAC3NzaC1lZDI1NTE5AAAAIJ//DeJIwpNQ3bboddfladiUs/xMbsbRikgvJ/m+30Uj
// 0o84iZ8MJUCRzTIipR8eLzX2g+Rx96MKMVq/RakG/GA
b, err := base64.StdEncoding.DecodeString("AAAAC3NzaC1lZDI1NTE5AAAAIJ//DeJIwpNQ3bboddfladiUs/xMbsbRikgvJ/m+30Uj")
if err != nil {
t.Error(err)
}
sh := sha256.Sum256(b)
t.Log(base64.StdEncoding.EncodeToString(sh[:]))
}
func TestGetSysUser(t *testing.T) {
u, err := GetSysUser()
if err != nil {
t.Error(err)
}
for k, v := range u {
t.Logf("%d: %s, home: %s, shell: %s", k, v.Name, v.Home, v.Shell)
if len(v.SSHkeyInfo) > 0 {
for _, s := range v.SSHkeyInfo {
t.Logf(" %s: %s", s.UserInfo, s.Type)
}
}
}
}
func TestGetNisUser(t *testing.T) {
u, err := GetNisUser()
if err != nil {
t.Error(err)
}
for k, v := range u {
t.Logf("%d: %s, home: %s, shell: %s", k, v.Name, v.Home, v.Shell)
if len(v.SSHkeyInfo) > 0 {
for _, s := range v.SSHkeyInfo {
t.Logf(" %s: %s", s.UserInfo, s.Type)
}
}
}
}
func TestReOnLineUser(t *testing.T) {
target := "gaojm pts/2 2025-12-22 14:13 00:08 12010 (10.16.4.4)"
m := ReOnLineUser.MatchString(target)
if m {
f := ReOnLineUser.FindStringSubmatch(target)
for _, v := range f {
t.Log(v)
}
} else {
t.Error("not match")
}
}
func TestReOnLineUserX(t *testing.T) {
target := "ops :1 2025-12-22 19:45 ? 430638 (:1)"
m := ReOnLineUserX.MatchString(target)
if m {
f := ReOnLineUserX.FindStringSubmatch(target)
for _, v := range f {
t.Log(v)
}
} else {
t.Error("not match")
}
}
func TestReOnLineUserTTY(t *testing.T) {
target := "root tty1 2025-12-22 19:38 . 1603"
m := ReOnLineUserTTY.MatchString(target)
if m {
f := ReOnLineUserTTY.FindStringSubmatch(target)
for _, v := range f {
t.Log(v)
}
} else {
t.Error("not match")
}
}
func TestGetOnlineUser(t *testing.T) {
u, err := GetOnlineUser()
if err != nil {
t.Error(err)
}
for _, v := range u {
t.Logf("%+v\n", v)
}
}
func TestGetOneSysUser(t *testing.T) {
u, err := GetOneSysUser("root")
if err != nil {
t.Error(err)
}
t.Logf("%d: %s, home: %s, shell: %s", u.Uid, u.Name, u.Home, u.Shell)
if len(u.SSHkeyInfo) > 0 {
for _, s := range u.SSHkeyInfo {
t.Logf(" %s: %s", s.UserInfo, s.Type)
}
}
}
func TestGetOneNisUser(t *testing.T) {
u, err := GetOneNisUser("liming6")
if err != nil {
t.Error(err)
}
t.Logf("%d: %s, home: %s, shell: %s", u.Uid, u.Name, u.Home, u.Shell)
if len(u.SSHkeyInfo) > 0 {
for _, s := range u.SSHkeyInfo {
t.Logf(" %s: %s", s.UserInfo, s.Type)
}
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment