幾乎所有的類Unix操作系統(tǒng)的口令文件的格式都雷同,Linux亦不例外??诹畎踩荓inux操作系統(tǒng)的傳統(tǒng)安全問題之一。
傳統(tǒng)口令與影子口令
/etc/passwd是存放用戶的基本信息的口令文件。該口令文件的每一行都包含由6個(gè)冒號(hào)分隔的7個(gè)域:
username: passwd: uid: gid: comments: directory: shell
以上從左到右7個(gè)域分別敘述如下:
username:是用戶登陸使用的名字。
passwd:是口令密文域。密文是加密過的口令。如果口令經(jīng)過shadow則口令密文域只顯示一個(gè)x,通常,口令都應(yīng)該經(jīng)過shadow以確保安全。如果口令密文域顯示為*,則表明該用戶名有效但不能登陸。如果口令密文域?yàn)榭談t表明該用戶登陸不需要口令。
uid:系統(tǒng)用于唯一標(biāo)識(shí)用戶名的數(shù)字,uid系統(tǒng)是這樣分配的:
0 超級(jí)用戶
1~10 守護(hù)程序和偽用戶
11~99 系統(tǒng)保留用戶
100~ 正常用戶
gid:表示用戶所在默認(rèn)組號(hào)。由/etc/group文件決定。
comments:描述用戶的個(gè)人信息。
directory:定義用戶的初始工作目錄。
shell:就是指定用戶登陸到系統(tǒng)后啟動(dòng)的外殼程序。
表1列出了系統(tǒng)在安裝過程中創(chuàng)建的標(biāo)準(zhǔn)用戶,表中的內(nèi)容和/etc/passwd文件的描述是一致的。
表2列出系統(tǒng)安裝過程中創(chuàng)建的標(biāo)準(zhǔn)用戶組,和/etc/group文件是一致的:
Linux使用不可逆的加密算法如DES來加密口令,由于加密算法是不可逆的,所以從密文是得不到明文的。但問題在于,/etc/passwd文件是全局可讀的,加密的算法是公開的,如果有惡意用戶取得了/etc/passwd文件,他就可以窮舉所有可能的明文通過相同的算法計(jì)算出密文進(jìn)行比較,直到相同,于是他就破解了口令。因此,針對(duì)這種安全問題,Linux/Unix廣泛采用了“shadow(影子)”機(jī)制,將加密的口令轉(zhuǎn)移到/etc/shadow文件里,該文件只為root超級(jí)用戶可讀,而同時(shí)/etc/passwd文件的密文域顯示為一個(gè)x,從而最大限度減少密文泄露的機(jī)會(huì)。
/etc/shadow文件的每行是8個(gè)冒號(hào)分割的9個(gè)域,格式如下:
username: passwd: lastchg: min: max: warn: inactive: expire: flag
其中:
lastchg:表示從1970年1月1日起到上次修改口令所經(jīng)過的天數(shù)。
min:表示兩次修改口令之間至少經(jīng)過的天數(shù)。
max:表示口令還會(huì)有效的最大天數(shù),如果是99999則表示永不過期。
warn:表示口令失效前多少天內(nèi)系統(tǒng)向用戶發(fā)出警告。
inactive:表示禁止登陸前用戶名還有效的天數(shù)。
expire:表示用戶被禁止登陸的時(shí)間。0
flag:無意義,未使用。
啟用影子口令
RedHat Linux缺省安裝shadow,如果你發(fā)現(xiàn)你的系統(tǒng)的/etc/passwd文件仍然可以看到密文,就說明你沒有啟用shadow??梢詧?zhí)行pwconv來啟用shadow。
在RedHat Linux 7.1中,影子工具包(shadow utils)包含了幾個(gè)工具支持以下功能:
傳統(tǒng)口令與影子口令之間的轉(zhuǎn)換工具:pwconv、pwunconv。
驗(yàn)證口令,組和相應(yīng)的影子文件:pwck、grpck。
以符合工業(yè)標(biāo)準(zhǔn)的方法增加、刪除和修改用戶帳戶:useradd、usermod、userdel。
以符合工業(yè)標(biāo)準(zhǔn)的方法增加、刪除和修改用戶組:groupadd、groupmod、groupdel。
以符合工業(yè)標(biāo)準(zhǔn)的方法管理文件/etc/group。
無論系統(tǒng)是否啟用shadow機(jī)制,上述工具都可以正常使用。
更改Linux口令的最短長度
Linux系統(tǒng)默認(rèn)最短口令長度為5個(gè)字符,這個(gè)長度不足以保證口令的健壯性,應(yīng)該改為最短8個(gè)字符,編輯/etc/login.defs文件,在此文件中,將
PASS_MIN_LEN 5
改為:
PASS_MIN_LEN 8
表1
User Uid gid Directory shell
Root 0 0 /root /bin/bash
Bin 1 1 /bin
Daemon 2 2 /sbin
Adm 3 4 /var/adm
Lp 4 7 /var/spool/lpd
Sync 5 0 /sbin /bin/sync
shutdown 6 0 /sbin /sbin/shutdown
Halt 7 0 /sbin /sbin/halt
Mail 8 12 /var/spool/mail
News 9 13 /var/spool/news
Uucp 10 14 /var/spool/uucp
Operator 11 0 /root
Games 12 100 /usr/games
Gopher 13 30 /usr/lib/gopher-data
ftp 14 50 /home/ftp
Nobody 99 99 /
表2
Group Gid Members
Root 0 Root
Bin 1 root,bin,daemon
Daemon 2 root,bin,daemon
Sys 3 root,bin,adm
Adm 4 root,adm,daemon
Tty 5
Disk 6 Root
Lp 7 daemon,lp
Mem 8
Kmem 9
Whell 10 Root
Mail 12 Mail
News 13 News
Uucp 14 Uucp
Man 15
Games 20
Gopher 30
Dip 40
ftp 50
nobody 99
Users 100
floppy 19
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。