GB | BIG5
|
| 首頁 > 安全技術 > 系統 > 正文 |
 |
| linux系統安全(二) |
| 本文出自:http://www.xici.net 作者:大鷹 (2001-08-01 10:00:00) |
5./etc/passwd文件
/etc/passwd文件是UNIX安全的關鍵文件之一.該文件用用戶登錄時校驗
用戶的口令,當然應當僅對root可寫.文件中每行的一般格式為:
LOGNAME:PASSWORD:UID:GID:USERINFO:HOME:SHELL
每行的頭兩項是登錄名和加密的口令,面的兩個數是UID和GID,接著的
一項是系統管理員想寫入的有關該用戶的任何信息,最兩項是兩個路徑名:
一個是分配給用戶的HOME目錄,第二個是用戶登錄將執行的shell(若為空格則缺省為
/bin/sh).
(1)口令時效
/etc/passwd文件的格式使系統管理員能要求用戶定期地改變他們的口令.
在口令文件中可以看到,有些加密的口令有逗號,逗號有幾個字符和一個冒號.如:
steve:xyDfccTrt180x,M.y8:0:0:admin:/:/bin/sh
restrict:pomJk109Jky41,.1:0:0:admin:/:/bin/sh
pat:xmotTVoyumjls:0:0:admin:/:/bin/sh
可以看到,steve的口令逗號有4個字符,restrict有2個,pat沒有逗號.
逗號第一個字符是口令有效期的最大周數,第二個字符決定了用戶再次
修改口信之前,原口令應使用的最小周數(這就防止了用戶改了新口令立刻又改回成
老口令).其余字符表明口令最新修改時間.
要能讀懂口令中逗號的信息,必須首先知道如何用passwd_esc計數,計
數的方法是: .=0 /=1 0-9=2-11 A-Z=12-37 a-z=38-63
系統管理員必須將前兩個字符放進/etc/passwd文件,以要求用戶定期的
修改口令,另外兩個字符當用戶修改口令時,由passwd命令填入.
注意:若想讓用戶修改口令,可在最一次口令被修改時,放兩個".",則下
一次用戶登錄時將被要求修改自己的口令.
有兩種特殊情況:
. 最大周數(第一個字符)小最小周數(第二個字符),則不允許用戶修改
口令,僅超級用戶可以修改用戶的口令.
. 第一個字符和第二個字符都是".",這時用戶下次登錄時被要求修改口
令,修改口令,passwd命令將"."刪除,此再不會要求用戶修改口令.
(2)UID和GID
/etc/passwd中UID信息很重要,系統使用UID而不是登錄名區別用戶.一般
來說,用戶的UID應當是獨一無二的,其他用戶不應當有相同的UID數值.根據慣例,從0到
99的UID保留用作系統用戶的UID(root,bin,uucp等).
如果在/etc/passwd文件中有兩個不同的入口項有相同的UID,則這兩個用
戶對相互的文件具有相同的存取權限.
6./etc/group文件
/etc/group文件含有關小組的信息,/etc/passwd中的每個GID在本文件中
應當有相應的入口項,入口項中列出了小組名和小組中的用戶.這樣可方便地了解每個
小組的用戶,否則必須根據GID在/etc/passwd文件中從頭至尾地尋找同組用戶.
/etc/group文件對小組的許可權限的控制並不是必要的,因為系統用UID,GID
(取自/etc/passwd)決定文件存取權限,即使/etc/group文件不存在系統中,具有相同
的GID用戶也可以小組的存取許可權限共享文件.
小組就像登錄用戶一樣可以有口令.如果/etc/group文件入口項的第二個域
為非空,則將被認為是加密口令,newgrp命令將要求用戶給出口令,然將口令加密,再
與該域的加密口令比較.
給小組建立口令一般不是個好作法.第一,如果小組內共享文件,若有某人猜
著小組口令,則該組的所有用戶的文件就可能泄漏;其次,管理小組口令很費事,因為對
小組沒有類似的passwd命令.可用/usr/lib/makekey生成一個口令寫入
/etc/group.
以下情況必須建立新組:
(1)可能要增加新用戶,該用戶不屬任何一個現有的小組.
(2)有的用戶可能時常需要獨自為一個小組.
(3)有的用戶可能有一個SGID程序,需要獨自為一個小組.
(4)有時可能要安裝運行SGID的軟件系統,該軟件系統需要建立一個新組.
要增加一個新組,必須編輯該文件,為新組加一個入口項.
由用戶登錄時,系統從/etc/passwd文件中取GID,而不是從/etc/group中
取GID,所以group文件和口令文件應當具有一致性.對一個用戶的小組,UID和GID應當
是相同的.多用戶小組的GID應當不同任何用戶的UID,一般為5位數,這樣在查看/etc
/passwd文件時,就可根據5位數據的GID識別多用戶小組,這將減少增加新組,新用戶時
可能產生的混淆.
7.增加,刪除,移走用戶
(1)增加用戶
增加用戶有三個過程:
. 在/etc/passwd文件中寫入新用戶的入口項.
. 為新登錄用戶建立一個HOME目錄.
. 在/etc/group中為新用戶增加一個入口項.
在/etc/passwd文件中寫入新的入口項時,口令部分可先設置為NOLOGIN,
以免有人做為此新用戶登錄.在修改文件前,應mkdir /etc/ptmp,以免他人同時修改此
文件.新用戶一般獨立為一個新組,GID號與UID號相同(除非他要加入目前已存在的一個
新組),UID號必須和其他人不同,HOME目錄一般設置在/usr或/home目錄下建立一個以用
戶登錄名為名稱的目錄做為其主目錄.
(2)刪除用戶
刪除用戶與加用戶的工作正好相反,首先在/etc/passwd和/etc/group文
件中刪除用戶的入口項,然刪除用戶的HOME目錄和所有文件.
rm -r /usr/loginname 刪除整個目錄樹.
如果用戶在/usr/spool/cron/crontabs中有crontab文件,也應當刪除.
(3)將用戶移到另一個系統
這是一個復雜的問題,不只是拷貝用戶的文件和用戶在/etc/passwd文件
中的入口項.首先一個問題是用戶的UID和GID可能已經用另一個系統,若是出現這種
情況,必須給要移的用戶分配另外的UID和GID,如果改變了用戶的UID和GID,則必須搜索
該用戶的全部文件,將文件的原UID和GID改成新的UID和GID.
用find命令可以完成這一修改:
find . -user olduid -exec chown newuid {} ;
find . -group oldgid -exec chgrp newgid {} ;
也許還要為用戶移走其它一些文件:
/usr/mail/user和/usr/spool/cron/crontabs/user.
如果用戶從一個不是本系統管理員的系統移來,則應對該用戶的目錄結構
運行程序來檢查.一個不安全系統的用戶,可能有與該用戶其它文件存在一起的SUID/S
GID程序,而這個SUID/SGID程序屬另一個用戶.在這種情況下,如果用cpio或tar命令
將用戶的目錄結構拷貝到本系統,SUID/SGID程序也將會拷貝到本系統而沒有任何警告
信息.應當在允許用戶使用新系統以前先刪除這種文件的SUID/SGID許可.總之,始終堅
持檢查所移用戶的文件總是更安全些.也可以用su命令進入用戶的戶頭,再拷貝用戶文
件,這樣文件的所有者就是該用戶,而不是root.
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
linux系統安全(三) (2001-08-01 12:00:00) linux系統安全(二) (2001-08-01 10:00:00) linux系統安全(一) (2001-08-01 09:00:00)
|
|
|
|
 |
★ 樊強制作 歡迎分享 ★ |