Linux 使用者ssh登入許可權檢查

victorymoshui發表於2011-07-12
第一步,檢視可以登入的使用者名稱:即排除不含 'nologin'的.

-v, --invert-match        select non-matching lines
-v 或者 --invert-match 反向匹配,實際就是取匹配行的補集,也就是不符合條件的那些行

[root@test ~]# cat /etc/passwd | grep -v 'nologin'

root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
news:x:9:13:news:/etc/news:
gm001:x:500:500::/home/gm001:/bin/bash
mysql:x:100:104:MySQL server:/var/lib/mysql:/bin/bash
virtual:x:503:503::/home/vir:/bin/bash
[root@test ~]#



第二步,進一步分析上面的賬號.
 #檢視所有登入的使用者,日期
#last

(1)使用如下命令關閉使用者賬號:

virtual:x:503:503::/home/ftp:/bin/bash
[root@test ~]# passwd virtual -l
Locking password for user virtual.
passwd: Success
重新釋放: passwd virtual -u
Unlocking password for user virtual.
passwd: Unsafe operation (use -f to force).

(2)永久性刪除使用者賬號
userdel
virtual
groupdel
virtual
usermod –G
virtual virtual   (強制刪除該使用者的主目錄和主目錄下的所有檔案和子目錄)

(3)顯示使用者資訊
[root@test ~]# id virtual
uid=503(virtual) gid=503(virtual) groups=503(virtual)


第三步 用finger命令 對可疑賬號分析.
yum install finger
Total download size: 21 k
Is this ok [y/N]: y
Downloading Packages:
finger-0.17-32.2.1.1.i386.rpm  
finger命令的功能是查詢使用者的資訊,通常會顯示系統中某個使用者的使用者名稱、主目錄、停滯時間、登入時間、登入shell等資訊。如果要查詢遠端機上的 使用者資訊,需要在使用者名稱後面接“@主機名”,採用[使用者名稱@主機名]的格式,不過要查詢的網路主機需要執行finger守護程式。

[root@test ~]# finger gm001     
Login: gm001                               Name: (null)
Directory: /home/gm001                      Shell: /bin/bash
On since Sat Aug 28 14:10 (CST) on pts/0 from 111.*.14.222
On since Sat Aug 28 14:10 (CST) on pts/1 from 111.*.14.222
1 hour 25 minutes idle
No mail.
No Plan.
[root@test ~]# finger root
Login: root                             Name: root
Directory: /root                        Shell: /bin/bash
Last login Wed Jul 21 05:02 (CST) on pts/2 from from 111.*.14.222
No mail.
No Plan.
-------------------  baidu-------------------

警告: usermod 最好不要用它來改使用者的密碼,因為他在/etc/shadow中顯示的是明口令;修改使用者的口令最好用passwd ;

[root@localhost ~]# usermod -p 123456 fishlinux  注:修改fishlinux的口令是123456 ;
[root@localhost ~]# more /etc/shadow |grep fishlinux  注:查詢/etc/shadow檔案中fishlinux的口令;我們看到明顯是沒有加密;
fishlinux:123456:13092:0:99999:7:::

-----------------

關於linux下口令相關的檔案存放位置說明

/usr/bin/passwd 包含 passwd 命令。
/etc/passwd 包含使用者 ID、使用者名稱、主目錄、登入 shell 和 finger 的資訊
/etc/security/passwd 包含加密的密碼和安全性資訊。
/etc/shdow 使用者加密後的口令存放位置

通常使用者標識號的取值範圍是0~65 535。0是超級使用者root的標識號,1~99由系統保留,作為管理賬號,普通使用者的標識號從100開始。在Linux系統中,這個界限是500。

得到使用者名稱簡單: 
awk -F':' '{print $1}' /etc/passwd

把/etc/passwd裡列出的使用者密碼全部修改成112233
不過把系統的祕密全改成一樣 非常不推薦 降低系統安全
#!/bin/bash
for name in `cat /etc/passwd | cut -d":" -f1`
do
passwd $name <112233
112233
EOF
done

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9390331/viewspace-701969/,如需轉載,請註明出處,否則將追究法律責任。

相關文章