如果你不想任何人能夠su為root的話,你應該編輯/etc/pam.d/su文件,加下面幾行:
auth sufficient /lib-
/security/pam_rootok-
.so debug
auth required /lib-
/security/pam_wheel-
.so group=isd
這意味著僅僅isd組的用戶可以su作為root。如果你希望用戶admin能su作為root.就運行下面的命令:
usermod -G10 admin
suid程序也是非常危險的,這些程序被普通用戶以euid=0(即root)的身份執行,只能有少量程序被設置為suid。用這個命令列出系統的suid二進制程序:
suneagle# find / -perm -4000 -print
你可以用chmod -s去掉一些不需要程序的suid位。
關於賬戶注銷
如果系統管理員在離開系統時忘了從root注銷,系統應該能夠自動從shell中注銷。那麼,你就需要設置一個特殊的 Linux 變量“tmout”,用以設定時間。 同樣,如果用戶離開機器時忘記了注銷賬戶,則可能給系統安全帶來隱患。你可以修改/etc/profile文件,保證賬戶在一段時間沒有操作後,自動從系統注銷。 編輯文件/etc/profile,在“histfilesize=”行的下一行增加如下一行:
tmout=600
則所有用戶將在10分鐘無操作後自動注銷。注意:修改了該參數後,必須退出並重新登錄root,更改才能生效。
關於系統文件
對於系統中的某些關鍵性文件如passwd、passwd.old、passwd._、shadow、shadown._、inetd.conf、services和lilo.conf等可修改其屬性,防止意外修改和被普通用戶查看。 如將inetd文件屬性改為600:
# chmod 600 /etc/inetd.conf
這樣就保證文件的屬主為root,然後還可以將其設置為不能改變:
# chattr +i /etc/inetd.conf
這樣,對該文件的任何改變都將被禁止。 你可能要問:那我自己不是也不能修改了?當然,我們可以設置成只有root重新設置復位標志後才能進行修改:
# chattr -i /etc/inetd.conf