开心六月综合激情婷婷|欧美精品成人动漫二区|国产中文字幕综合色|亚洲人在线成视频

    1. 
      
        <b id="zqfy3"><legend id="zqfy3"><fieldset id="zqfy3"></fieldset></legend></b>
          <ul id="zqfy3"></ul>
          <blockquote id="zqfy3"><strong id="zqfy3"><dfn id="zqfy3"></dfn></strong></blockquote>
          <blockquote id="zqfy3"><legend id="zqfy3"></legend></blockquote>
          打開(kāi)APP
          userphoto
          未登錄

          開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

          開(kāi)通VIP
          linux管理任務(wù): 用戶和組帳戶

          LPI 102 考試準(zhǔn)備,主題 111: 管理任務(wù)

          初級(jí)管理(LPIC-1)主題 111

          developerWorks
          第 2 頁(yè),共 10 頁(yè)


          對(duì)本教程的評(píng)價(jià)

          幫助我們改進(jìn)這些內(nèi)容


          用戶和組帳戶

          本節(jié)介紹初級(jí)管理(LPIC-1)考試 102 的 1.111.1 主題的內(nèi)容。這個(gè)主題的權(quán)值為 4。

          在本節(jié)中,我們將學(xué)習(xí)如何:

          • 添加、修改和刪除用戶和組
          • 終止和修改用戶帳戶
          • 管理密碼數(shù)據(jù)庫(kù)和組數(shù)據(jù)庫(kù)中的用戶和組信息
          • 使用正確的工具管理影子密碼數(shù)據(jù)庫(kù)和組數(shù)據(jù)庫(kù)
          • 創(chuàng)建和管理受限制的和用于特殊用途的帳戶

          正如在 “LPI 101 考試準(zhǔn)備(主題 104):設(shè)備、Linux 文件系統(tǒng)和文件系統(tǒng)層次標(biāo)準(zhǔn)” 中學(xué)到的,Linux 是一種多用戶系統(tǒng),Linux 上的每個(gè)用戶屬于一個(gè) 組,還可能屬于其他組。在 Linux 中,文件的所有權(quán)與用戶 id 和組密切相關(guān)。注意,可以作為一個(gè)用戶登錄,然后使用 susudo -s 變成另一個(gè)用戶,然后可以使用 whoami 命令檢查當(dāng)前的有效 id,使用 groups 命令了解當(dāng)前用戶所屬的組。在本節(jié)中,學(xué)習(xí)如何創(chuàng)建、刪除和管理用戶和組。還要了解 /etc 中的文件,這個(gè)目錄中存儲(chǔ)用戶和組信息。

          添加和刪除用戶和組

          使用 useradd 命令在 Linux 系統(tǒng)中添加用戶,使用 userdel 命令刪除用戶。與此相似,分別使用 groupaddgroupdel 命令添加和刪除組。

          添加用戶或組

          現(xiàn)代的 Linux 桌面往往為用戶和組管理提供了圖形界面。常??梢酝ㄟ^(guò)用于系統(tǒng)管理的菜單項(xiàng)訪問(wèn)這些圖形界面。這些界面的差異相當(dāng)大,所以您系統(tǒng)上的界面可能與這里的示例不一樣,但是底層概念和命令是相似的。

          首先,以圖形化方式在 Fedora Core 5 系統(tǒng)中添加一個(gè)用戶,然后查看底層命令。對(duì)于使用 GNOME 桌面的 Fedora Core 5,使用 System > Administration > Users and Groups,然后單擊 Add User 按鈕。

          圖 1 顯示 User Manager 面板和 Create New User 面板,其中顯示了新用戶 ‘john’ 的基本信息。已經(jīng)輸入了用戶的完整姓名(John Doe)和密碼。面板指定默認(rèn)的登錄 shell 為 /bin/bash。在 Fedora 系統(tǒng)上,默認(rèn)行為是創(chuàng)建一個(gè)與這個(gè)用戶同名(在這個(gè)示例中是 ‘john’)的新組和主目錄 /home/john。


          圖 1. 添加用戶
          添加用戶

          清單 1 顯示如何使用 id 命令顯示這個(gè)新用戶的基本信息??梢钥吹?,john 的用戶編號(hào)是 503,他與 john 組(組編號(hào)為 503)相關(guān)聯(lián)。這是 john 所屬的惟一一個(gè)組。


          清單 1. 顯示用戶 id 信息
                                  [root@pinguino ~]# id john
                                  uid=503(john) gid=503(john) groups=503(john)
                                  

          要想從命令行完成同樣的任務(wù),應(yīng)該使用 groupadduseradd 創(chuàng)建組和用戶,然后使用 passwd 命令為新創(chuàng)建的用戶設(shè)置密碼。這些命令都需要根權(quán)限。清單 2 使用這些命令添加另一個(gè)用戶 jane。


          清單 2. 添加用戶 jane
                                  [root@pinguino ~]# groupadd jane
                                  [root@pinguino ~]# useradd -c "Jane Doe" -g jane -m jane
                                  [root@pinguino ~]# passwd jane
                                  Changing password for user jane.
                                  New UNIX password:
                                  Retype new UNIX password:
                                  passwd: all authentication tokens updated successfully.
                                  [root@pinguino ~]# id jane
                                  uid=504(jane) gid=504(jane) groups=504(jane)
                                  [root@pinguino ~]# ls -ld /home/jane
                                  drwx------ 3 jane jane 4096 Jun 25 18:22 /home/jane
                                  

          在這兩個(gè)示例中,用戶 id 和組 id 的值都大于 500。請(qǐng)注意,一些比較新的系統(tǒng)的用戶 id 從 1000 開(kāi)始編號(hào),而不是從 500 開(kāi)始。這些值通常表示普通用戶,500(對(duì)于從 1000 開(kāi)始普通用戶編號(hào)的系統(tǒng),是 1000)以下的值是為系統(tǒng)用戶 保留的。本節(jié)后面將討論 系統(tǒng)用戶。實(shí)際的分界點(diǎn)是在 /etc/login.defs 中作為 UID_MINGID_MIN 設(shè)置的。

          在上面的清單 2 中,groupadd 命令接受一個(gè)參數(shù) jane,這是要添加的組的名稱。組名必須以小寫(xiě)字母或下劃線開(kāi)頭,通常只包含小寫(xiě)字母、下劃線和連字符或破折號(hào)??梢灾付ǖ倪x項(xiàng)見(jiàn)表 3。

          表 3. groupadd 的選項(xiàng)
          選項(xiàng) 用途
          -f 如果這個(gè)組已經(jīng)存在,那么以成功狀態(tài)退出。這對(duì)于腳本編程很方便,這樣就不需要在嘗試創(chuàng)建一個(gè)組之前檢查它是否存在。
          -g 手工指定組 id。默認(rèn)行為是使用大于等于 GID_MIN 并大于現(xiàn)有的任何組 id 的最小值。組 id 通常是惟一的,而且必須是非負(fù)的。
          -o 允許組具有非惟一的 id。
          -K 可以用來(lái)覆蓋來(lái)自 /etc/login.defs 的默認(rèn)設(shè)置。

          在上面的清單 2 中,useradd 命令接受一個(gè)參數(shù) jane,這是要添加的用戶的名稱,還指定了 -c、-g-m 選項(xiàng)。useradd 命令的常用選項(xiàng)見(jiàn)表 4。

          表 4. useradd 的選項(xiàng)
          選項(xiàng) 用途
          -b
          --base-dir
          創(chuàng)建用戶主目錄的默認(rèn)基目錄。這常常是 /home,用戶的主目錄是 /home/$USER。
          -c
          --comment
          描述 id 的文本字符串,比如用戶的完整姓名。
          -d
          --home
          為主目錄指定目錄名。
          -e
          --expiredate
          帳戶將過(guò)期或禁用的日期,采用的形式是 YYYY-MM_DD。
          -g
          --gid
          用戶的初始登錄組的名稱或編號(hào)。這個(gè)組必須已經(jīng)存在,所以在清單 2 中先創(chuàng)建 jane 組,然后再創(chuàng)建 jane 用戶。
          -G
          --groups
          用戶所屬的其他組的列表(以逗號(hào)分隔)。
          -K 可以用來(lái)覆蓋來(lái)自 /etc/login.defs 的默認(rèn)設(shè)置。
          -m
          --create-home
          如果用戶的主目錄不存在,就創(chuàng)建它。將 /etc/skel 中的骨架文件和所有目錄復(fù)制到主目錄。
          -o
          --non-unique
          允許用戶具有非惟一的 id。
          -p
          --password
          加密的密碼。如果沒(méi)有指定密碼,默認(rèn)行為是禁用帳戶。通常會(huì)在后續(xù)步驟中使用 passwd 命令,而不是生成加密的密碼并在 useradd 命令中指定它。
          -s
          --shell
          如果用戶的登錄 shell 不是默認(rèn)的登錄 shell,那么可以用這個(gè)選項(xiàng)指定用戶的登錄 shell 的名稱。
          -u
          --uid
          非負(fù)的數(shù)字用戶 id;如果沒(méi)有指定 -o 選項(xiàng),那么用戶 id 必須是惟一的。默認(rèn)行為是使用大于等于 UID_MIN 并大于現(xiàn)有的任何用戶 id 的最小值。

          注意:

          1. 一些系統(tǒng)(包括 Fedora 和 Red Hat 發(fā)行版)對(duì)創(chuàng)建用戶命令提供了擴(kuò)展。例如,默認(rèn)的 Fedora 和 Red Hat 行為是為一個(gè)用戶創(chuàng)建一個(gè)新組,可以在 useradd 命令中使用 -n 選項(xiàng)來(lái)禁用這個(gè)功能。應(yīng)該了解這些系統(tǒng)差異,如果有疑問(wèn),應(yīng)該參考系統(tǒng)上的手冊(cè)頁(yè)。
          2. 在 SUSE 系統(tǒng)上,使用 YaST 或 YaST2 訪問(wèn)用戶和組管理圖形界面。
          3. 圖形界面可能會(huì)執(zhí)行其他任務(wù),比如在 /var/spool/mail 中創(chuàng)建用戶的郵件文件。

           

          刪除用戶或組

          與添加用戶或組相比,刪除用戶或組要簡(jiǎn)單得多,因?yàn)檫x項(xiàng)更少。實(shí)際上,用來(lái)刪除組的 groupdel 命令只需要組名;它沒(méi)有選項(xiàng)。不能刪除任何用戶的主組。如果使用圖形界面刪除用戶或組,其功能與這里顯示的命令非常相似。

          使用 userdel 命令刪除用戶。-r--remove 選項(xiàng)請(qǐng)求同時(shí)刪除用戶的主目錄以及其中包含的任何內(nèi)容,還刪除用戶的郵件 spool。如果在 /etc/login.defs 中還設(shè)置了 USERGROUPS_ENAB 為 yes,那么在刪除用戶時(shí),還會(huì)刪除與用戶同名的組,但這個(gè)組必須不是另一個(gè)用戶的主組。

          在清單 3 中可以看到一個(gè)刪除組的示例,在這里有多個(gè)用戶共享同一個(gè)主組。之前已經(jīng)在系統(tǒng)中添加了另一個(gè)用戶 jane2,他的組與 jane 相同。


          清單 3. 刪除用戶和組
                                  root@pinguino:~# groupdel jane
                                  groupdel: cannot remove user‘s primary group.
                                  root@pinguino:~# userdel -r jane
                                  userdel: Cannot remove group jane which is a primary group for another user.
                                  root@pinguino:~# userdel -r jane2
                                  root@pinguino:~# groupdel jane
                                  

          注意:

          1. 有一個(gè) userdel 選項(xiàng) -f--force,可以使用它同時(shí)刪除用戶和他們的組。這個(gè)選項(xiàng)很危險(xiǎn),只應(yīng)該作為最后的手段。執(zhí)行此操作之前,請(qǐng)仔細(xì)閱讀手冊(cè)頁(yè)。
          2. 注意,如果刪除用戶或組,而且文件系統(tǒng)上有屬于這個(gè)用戶或組的文件,那么這些文件不會(huì)自動(dòng)地刪除或分配給另一個(gè)用戶或組。

           





          回頁(yè)首


          終止和修改帳戶

          您現(xiàn)在可以創(chuàng)建或刪除用戶 id 或組,還可能需要修改它們。

          修改用戶帳戶

          假設(shè)用戶 john 希望用 tcsh shell 作為默認(rèn) shell。常??梢栽趫D形界面中找到編輯用戶(或組)的方法,或者查看對(duì)象屬性的方法。圖 2 是 Fedora Core 5 系統(tǒng)上用戶 john 的屬性對(duì)話框。


          圖 2. 修改用戶帳戶
          修改用戶帳戶

          在命令行上可以使用 usermod 命令修改用戶帳戶??梢允褂?useradd 的大多數(shù)選項(xiàng),但是不能為這個(gè)用戶創(chuàng)建或填充新的主目錄。如果需要修改用戶名,那么指定 -l--login 選項(xiàng)并加上新名稱??赡芟M薷闹髂夸浢Q來(lái)匹配用戶 id。還可能需要修改其他項(xiàng)目的名稱,比如電子郵件 spool 文件。如果修改登錄 shell,那么可能需要修改一些相關(guān)聯(lián)的配置文件。清單 4 將用戶 john 改為 john2,將 /bin/tcsh 設(shè)置為默認(rèn) shell,并將主目錄重命名為 /home/john2。


          清單 4. 修改用戶
                                  [root@pinguino ~]# usermod -l john2 -s /bin/tcsh -d /home/john2 john
                                  [root@pinguino ~]# ls -d ~john2
                                  ls: /home/john2: No such file or directory
                                  [root@pinguino ~]# mv /home/john /home/john2
                                  [root@pinguino ~]# ls -d ~john2
                                  /home/john2
                                  

          注意:

          1. 如果需要修改用戶的其他組,那么必須指定其他組的完整列表。沒(méi)有命令只為用戶添加或刪除一個(gè)組。
          2. 如果一個(gè)用戶已經(jīng)登錄,或者他有正在運(yùn)行的進(jìn)程,那么對(duì)修改他的名稱或 id 有一些限制。詳情請(qǐng)查閱手冊(cè)頁(yè)。
          3. 如果修改一個(gè)用戶的編號(hào),可能希望修改他擁有的文件和目錄來(lái)匹配這個(gè)新編號(hào)。

           

          修改組

          使用 groupmod 修改組信息。用 -g 選項(xiàng)修改組編號(hào),用 -n 選項(xiàng)修改名稱。


          清單 5. 修改組名稱
                                  [root@pinguino ~]# ls -ld ~john2
                                  drwx------ 3 john2 john 4096 Jun 26 18:29 /home/john2
                                  [root@pinguino ~]# groupmod -n john2 john
                                  [root@pinguino ~]# ls -ld ~john2
                                  drwx------ 3 john2 john2 4096 Jun 26 18:29 /home/john2
                                  

          在清單 5 中,當(dāng)使用 groupmod 修改組名稱時(shí),john2 的組目錄的組名稱自動(dòng)地改變了。覺(jué)得奇怪嗎?因?yàn)榻M在文件系統(tǒng)索引節(jié)中由它們的編號(hào)表示,而不是由名稱表示。但是,如果修改組的編號(hào),那么應(yīng)該更新以這個(gè)組作為主組的所有用戶,還可能希望更新屬于這個(gè)組的文件和目錄來(lái)匹配新編號(hào)(采用上面介紹的修改用戶編號(hào)的方法)。清單 6 將用戶 john2 的組編號(hào)改為 505,更新用戶帳戶,并對(duì) /home 文件系統(tǒng)中受影響的所有文件做適當(dāng)?shù)男薷?。如果可能的話,您也許希望對(duì)用戶和組重新編號(hào)。


          清單 6. 修改組編號(hào)
                                  [root@pinguino ~]# groupmod -g 505 john2
                                  [root@pinguino ~]# ls -ld ~john2
                                  drwx------ 3 john2 503 4096 Jun 26 18:29 /home/john2
                                  [root@pinguino ~]# id john2
                                  uid=503(john2) gid=503 groups=503
                                  [root@pinguino ~]# usermod -g john2 john2
                                  [root@pinguino ~]# id john2
                                  uid=503(john2) gid=505(john2) groups=505(john2)
                                  [root@pinguino ~]# ls -ld ~john2
                                  drwx------ 3 john2 503 4096 Jun 26 18:29 /home/john2
                                  [root@pinguino ~]# find /home -gid 503 -exec chgrp john2 {} \;
                                  [root@pinguino ~]# ls -ld ~john2
                                  drwx------ 3 john2 john2 4096 Jun 26 18:29 /home/john2
                                  

          用戶和組密碼

          您已經(jīng)看到了用來(lái)修改用戶密碼的 passwd 命令。密碼是(或應(yīng)該是)用戶惟一的,可以由用戶修改。根用戶可以修改任何用戶的密碼。

          組也可以有密碼,使用 gpasswd 命令設(shè)置它們。如果用戶知道組密碼,他們就能夠用 newgrp 命令臨時(shí)加入一個(gè)組。當(dāng)然,讓許多人知道一個(gè)密碼是不安全的,所以必須權(quán)衡用 usermod 將用戶加入組的優(yōu)點(diǎn),以及讓太多人知道組密碼的安全風(fēng)險(xiǎn)。

          終止或鎖定帳戶

          如果需要禁止一個(gè)用戶登錄,那么可以使用 usermod 命令的 -L 選項(xiàng)終止(suspend)鎖定(lock)帳戶。使用 -U 選項(xiàng)給帳戶解鎖(unlock)。清單 7 顯示如何鎖定 john2 帳戶,以及在 john2 試圖登錄系統(tǒng)時(shí)發(fā)生的情況。注意,當(dāng) john2 帳戶解鎖時(shí),會(huì)恢復(fù)相同的密碼。


          清單 7. 鎖定帳戶
                                  [root@pinguino ~]# usermod -L john2
                                  [root@pinguino ~]# ssh john2@pinguino
                                  john2@pinguino‘s password:
                                  Permission denied, please try again.
                                  

          圖 2 中,對(duì)話框上有幾個(gè)選項(xiàng)卡顯示其他用戶屬性。我們簡(jiǎn)要提到了如何使用 passwd 命令設(shè)置用戶密碼,但是這個(gè)命令和 usermod 命令都可以執(zhí)行與用戶帳戶相關(guān)的許多任務(wù),它們的作用與 chage 命令相似。表 5 列出了一部分選項(xiàng)。關(guān)于這些和其他選項(xiàng)的更多細(xì)節(jié),請(qǐng)參考手冊(cè)頁(yè)。

          表 5. 修改用戶帳戶的命令和選項(xiàng)
          命令的選項(xiàng) 用途
          Usermod Passwd Chage
          -L -l N/A 鎖定或終止帳戶。
          -U -u N/A 對(duì)帳戶解鎖。
          N/A -d N/A 將帳戶設(shè)置為無(wú)密碼,從而禁用帳戶。
          -e -f -E 為帳戶設(shè)置過(guò)期日期。
          N/A -n -m 以天為單位的最小密碼生命周期。
          N/A -x -M 以天為單位的最大密碼生命周期。
          N/A -w -W 在必須修改密碼之前提前發(fā)出警告的天數(shù)。
          -f -i -I 密碼過(guò)期之后,直到禁用帳戶之前的天數(shù)。
          N/A -S -l 輸出關(guān)于當(dāng)前帳戶狀態(tài)的簡(jiǎn)短消息。




          回頁(yè)首


          管理用戶和組數(shù)據(jù)庫(kù)

          用戶和組信息的主要存儲(chǔ)庫(kù)是 /etc 中的 4 個(gè)文件。

          /etc/passwd
          這是密碼 文件,包含關(guān)于用戶的基本信息
          /etc/shadow
          這是影子密碼 文件,包含加密的密碼
          /etc/group
          這是 文件,包含組的基本信息以及哪些用戶屬于哪些組
          /etc/gshadow
          這是影子組 文件,包含加密的組密碼

          本文前面介紹的命令會(huì)更新這些文件;在討論這些文件之后,您還會(huì)看到處理它們的更多命令。這些文件都是純文本文件。一般情況下,不應(yīng)該直接編輯它們。應(yīng)該使用工具更新它們,從而正確地鎖定它們并保持同步。

          您會(huì)注意到,passwd 和 group 文件都陰影化 了。這是為了保障安全。passwd 和 group 文件本身必須是廣泛可讀的,但是加密的密碼不應(yīng)該是廣泛可讀的。因此,影子文件包含加密的密碼,只有根用戶能夠讀取這些文件。suid 程序提供必要的身份驗(yàn)證訪問(wèn);suid 程序具有根權(quán)限,但是任何人都可以運(yùn)行它。確保為您的系統(tǒng)正確地設(shè)置權(quán)限。清單 8 給出一個(gè)示例。


          清單 8. 用戶和組數(shù)據(jù)庫(kù)權(quán)限
                                  [ian@pinguino ~]$ ls -l /etc/passwd /etc/shadow /etc/group /etc/gshadow
                                  -rw-r--r-- 1 root root  701 Jun 26 19:04 /etc/group
                                  -r-------- 1 root root  580 Jun 26 19:04 /etc/gshadow
                                  -rw-r--r-- 1 root root 1939 Jun 26 19:43 /etc/passwd
                                  -r-------- 1 root root 1324 Jun 26 19:50 /etc/shadow
                                  

          注意: 盡管從技術(shù)上說(shuō)可以不使用影子密碼和影子組文件,但是幾乎從不這樣做,也不建議這樣做。

          /etc/passwd 文件

          /etc/passwd 文件對(duì)于系統(tǒng)中的每個(gè)用戶包含一行記錄。清單 9 給出了一些示例行。


          清單 9. /etc/password 條目
                                  root:x:0:0:root:/root:/bin/bash
                                  jane:x:504:504:Jane Doe:/home/jane:/bin/bash
                                  john2:x:503:505:John Doe:/home/john2:/bin/tcsh
                                  

          每行包含幾個(gè)由冒號(hào)(:)分隔的字段,見(jiàn)表 6。

          表 6. /etc/passwd 中的字段
          字段 用途
          Username 用來(lái)登錄系統(tǒng)的用戶名。例如,john2。
          Password 加密的密碼。在使用影子密碼時(shí),它包含一個(gè) x 字符。
          User id
          (UID)
          在系統(tǒng)中用來(lái)表示這個(gè)用戶名的編號(hào)。例如,用戶 john2 的編號(hào)是 503。
          Group id
          (GID)
          在系統(tǒng)中用來(lái)表示這個(gè)用戶的主組的編號(hào)。例如,用戶 john2 的組編號(hào)是 505。
          Comment
          (GECOS)
          一個(gè)用來(lái)描述用戶的可選字段。例如,“John Doe”。這個(gè)字段可以包含多個(gè)逗號(hào)分隔的條目。它還由 finger 等程序使用。GECOS 這個(gè)名稱是由于歷史原因形成的。詳情見(jiàn) man 5 passwd。
          Home 用戶主目錄的絕對(duì)路徑。例如,/home/john2。
          Shell 當(dāng)用戶登錄系統(tǒng)時(shí)自動(dòng)啟動(dòng)的程序。這常常是一個(gè)交互式 shell,比如 /bin/bash 或 /bin/tcsh,但可能是任何程序,不一定是交互式的 shell。

          /etc/group 文件

          /etc/group 文件對(duì)于系統(tǒng)中的每個(gè)組包含一行記錄。清單 10 給出了一些示例行。


          清單 10. /etc/group 條目
                                  root:x:0:root
                                  jane:x:504:john2
                                  john2:x:505:
                                  

          每行包含四個(gè)由冒號(hào)(:)分隔的字段,見(jiàn)表 7。

          表 7. /etc/group 中的字段
          字段 用途
          Groupname 這個(gè)組的名稱。例如,john2。
          Password 加密的密碼。在使用影子密碼時(shí),它包含一個(gè) x 字符。
          Group id
          (GID)
          在系統(tǒng)中用來(lái)表示這個(gè)組的編號(hào)。例如,組 john2 的編號(hào)是 505。
          Members 逗號(hào)分隔的組成員列表,但是不包括以這個(gè)組作為主組的成員。

          影子文件

          應(yīng)該只有根用戶能夠讀取 /etc/shadow 文件。它包含加密的密碼,以及密碼和帳戶的過(guò)期信息。關(guān)于其中的字段的信息,參見(jiàn)手冊(cè)頁(yè)(man 5 shadow)。密碼可以使用 DES 加密,但是常常使用 MD5 加密。DES 算法使用用戶密碼的前 8 個(gè)字符的低 7 位作為 56 位的密鑰,而 MD5 算法使用整個(gè)密碼。在這兩種算法中,都對(duì)密碼做 salt 處理,所以兩個(gè)在其他方面相同的密碼不會(huì)生成相同的加密值。清單 11 演示如何為用戶 jane 和 john2 設(shè)置相同的密碼,然后顯示在 /etc/shadow 中生成的 MD5 加密密碼。


          清單 11. /etc/shadow 中的密碼
                                  [root@pinguino ~]# echo lpic1111 |passwd jane --stdin
                                  Changing password for user jane.
                                  passwd: all authentication tokens updated successfully.
                                  [root@pinguino ~]# echo lpic1111 |passwd john2 --stdin
                                  Changing password for user john2.
                                  passwd: all authentication tokens updated successfully.
                                  [root@pinguino ~]# grep "^j" /etc/shadow
                                  jane:$1$eG0/KGQY$ZJl.ltYtVw0sv.C5OrqUu/:13691:0:99999:7:::
                                  john2:$1$grkxo6ie$J2muvoTpwo3dZAYYTDYNu.:13691:0:180:7:29::
                                  

          輸出開(kāi)頭的 $1$ 表示一個(gè) MD5 密碼。下面是 salt 值(直到下一個(gè) $ 符號(hào)為止),它是一個(gè)最多 8 字符的長(zhǎng)度可變的字段。余下的 22 字符的字符串是加密的密碼。





          回頁(yè)首


          操作用戶和組的工具

          您已經(jīng)看到了幾個(gè)操作用戶帳戶和組文件及其影子文件的命令。下面學(xué)習(xí):

          • 組管理員
          • 編輯密碼和組文件的命令
          • 轉(zhuǎn)換程序

           

          組管理員

          在某些情況下,可能希望讓根用戶之外的用戶能夠管理一個(gè)或多個(gè)組,比如添加或刪除組成員。清單 12 展示了根用戶將用戶 jane 設(shè)置為組 john2 的管理員,然后 jane 將用戶 ian 添加為組成員。


          清單 12. 添加組管理員和成員
                                  [root@pinguino ~]# gpasswd -A jane john2
                                  [root@pinguino ~]# su - jane
                                  [jane@pinguino ~]$ gpasswd -a ian john2
                                  Adding user ian to group john2
                                  [jane@pinguino ~]$ id ian;id jane
                                  uid=500(ian) gid=500(ian) groups=500(ian),505(john2)
                                  uid=504(jane) gid=504(jane) groups=504(jane)
                                  

          您可能會(huì)吃驚地發(fā)現(xiàn),盡管 jane 是組 john2 的管理員,但她不是這個(gè)組的成員。/etc/gshadow 文件的結(jié)構(gòu)可以解釋這一現(xiàn)象的原因。/etc/gshadow 文件為每個(gè)條目包含四個(gè)字段,見(jiàn)表 8。注意,第三個(gè)字段是逗號(hào)分隔的組管理員列表。

          表 8. /etc/gshadow 中的字段
          字段 用途
          Groupname 這個(gè)組的名稱。例如,john2。
          Password 如果這個(gè)組有密碼,這個(gè)字段就用來(lái)保存加密的密碼。如果沒(méi)有密碼,在這里可能會(huì)看到 ‘x’、‘!’ 或 ‘!!’。
          Admins 逗號(hào)分隔的組管理員列表。
          Members 逗號(hào)分隔的組成員列表。

          可以看到,管理員列表和成員列表是兩個(gè)不同的字段。gpasswd-A 選項(xiàng)允許根用戶添加組管理員,-M 選項(xiàng)允許根用戶添加組成員。-a(注意,是小寫(xiě)的)選項(xiàng)允許管理員添加組成員,-d 選項(xiàng)允許管理員刪除組成員。其他選項(xiàng)可以刪除組密碼。細(xì)節(jié)見(jiàn)手冊(cè)頁(yè)。

          編輯密碼和組文件的命令

          盡管不屬于 LPI 學(xué)習(xí)目標(biāo),但是還應(yīng)該知道 vipw 命令可以安全地編輯 /etc/passwd,vigr 命令可以安全地編輯 /etc/group。在使用 vi 編輯器進(jìn)行修改時(shí),這些命令會(huì)鎖定相關(guān)文件。如果修改 /etc/passwd,那么 vipw 會(huì)詢問(wèn)是否也需要更新 /etc/shadow。同樣,如果使用 vigr 更新 /etc/group,就會(huì)詢問(wèn)是否更新 /etc/gshadow。如果需要?jiǎng)h除組管理員,就需要使用 vigr,因?yàn)?gpasswd 只能添加管理員。

          轉(zhuǎn)換程序

          還有四個(gè)沒(méi)有在 LPI 學(xué)習(xí)目標(biāo)中列出的相關(guān)命令。它們是 pwconv、pwunconv、grpconvgrpunconv。它們用來(lái)在影子和非影子密碼和組文件之間進(jìn)行轉(zhuǎn)換。您可能不會(huì)用到它們,但是應(yīng)該知道有這些命令存在。細(xì)節(jié)參見(jiàn)手冊(cè)頁(yè)。





          回頁(yè)首


          受限制的和特殊用途的帳戶

          按照慣例,系統(tǒng)用戶常常具有小于 100 的 id,根用戶的 id 是 0。普通用戶的自動(dòng)編號(hào)是從 /etc/login.defs 中設(shè)置的 UID_MIN 值開(kāi)始的,這個(gè)值常常設(shè)置為 500 或 1000。

          除了普通用戶帳戶和根帳戶之外,系統(tǒng)上常常有幾個(gè)特殊用途的帳戶,它們用于 FTP、SSH、郵件、新聞等守護(hù)進(jìn)程。清單 13 顯示 /etc/passwd 中一些特殊用途帳戶的記錄。


          清單 13. 受限制的和特殊用途的帳戶
                                  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
                                  news:x:9:13:news:/etc/news:
                                  uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
                                  gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
                                  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
                                  nobody:x:99:99:Nobody:/:/sbin/nologin
                                  apache:x:48:48:Apache:/var/www:/sbin/nologin
                                  ntp:x:38:38::/etc/ntp:/sbin/nologin
                                  

          這樣的帳戶常??刂浦募?,但是不應(yīng)該通過(guò)普通的登錄訪問(wèn)它們。因此,它們的登錄 shell 常常設(shè)置為 /sbin/nologin 或 /bin/false,所以登錄嘗試會(huì)失敗。

          本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
          打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
          猜你喜歡
          類似文章
          Linux添加/刪除用戶和用戶組
          12 條用于 Linux 的 MySQL/MariaDB 安全最佳實(shí)踐
          linux服務(wù)器出現(xiàn)嚴(yán)重故障后的處理辦法
          Linux中如何取消root密碼或者其他用戶密碼
          Linux初始root密碼設(shè)置
          在Linux系統(tǒng)下清除操作信息的記錄
          更多類似文章 >>
          生活服務(wù)
          分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
          綁定賬號(hào)成功
          后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
          如果VIP功能使用有故障,
          可點(diǎn)擊這里聯(lián)系客服!

          聯(lián)系客服