首頁 > 軟體

CentOS 7賬戶和許可權管理詳解

2020-06-16 16:31:55
一、管理使用者賬號
1、使用者賬號
在 Linux系統中,根據系統管理的需要將使用者賬號分為不同的型別,其擁有的許可權、擔任的角色也各不相同,主要包括超級使用者、普通使用者和程式使用者。
(1)超級使用者:root使用者是 Linux系統中預設的超級使用者賬號,對本主機擁有最高的許可權,類似於 Windows系統中的 Administrator使用者。只有當進行系統管理、維護任務時,才建議使用root使用者登入系統,日常事務處理建議只使用普通使用者賬號。
(2)普通使用者:普通使用者賬號需要由root使用者或其他管理員使用者建立,擁有的許可權受到一定限制,一般只在使用者自己的宿主目錄中擁有完整許可權。
(3)程式使用者:在安裝 Linux系統及部分應用程式時,會新增一些特定的低許可權使用者賬號,這些使用者一般不允許登入到系統,而僅用於維持系統或某個程式的正常執行,如bin、 daemon、ftp、mail等。
2、UID號
Linux系統中的每一個使用者賬號都有一個數位形式的身份標記,稱為UID(ser IDentity使用者標識號),對於系統核心來說,UID作為區分使用者的基本依據,原則上每個使用者的UID號應該是唯一的。root使用者賬號的UID號為固定值0,而程式使用者賬號的UID號預設為1~999,1000~60000的UID號預設分配給普通使用者使用。
3、使用者賬號檔案
(1)/etc/passwd用於儲存使用者名稱稱、宿主目錄、登入Shell等基本資訊。passwd檔案中的設定行格式如下。

(2)/etc/shadow用於儲存使用者的密碼、賬號有效期等資訊。shadow檔案中的設定各欄位含義如下。

第 1 欄位:使用者賬號名稱。
第 2 欄位:使用 SHA-512(雜湊演算法中的一種)加密的密碼字串資訊,當為“”或“!!”時表示此使用者不能登入到系統。若該欄位內容為空,則該使用者無須密碼即 可登入系統。
第 3 欄位:上次修改密碼的時間,表示從 1970 年 01 月 01 日算起到最近一次修改 密碼時間隔的天數。 
第 4 欄位:密碼的最短有效天數,自本次修改密碼後,必須至少經過該天數才能再 次修改密碼。預設值為 0,表示不進行限制。
第 5 欄位:密碼的最長有效天數,自本次修改密碼後,經過該天數以後必須再次修 改密碼。預設值為 99999,表示不進行限制。
第 6 欄位:提前多少天警告使用者密碼將過期,預設值為 7。
第 7 欄位:在密碼過期之後多少天內禁用此使用者。
第 8 欄位:賬號失效時間,此欄位指定了使用者作廢的天數(從 1970 年 01 月 01 日 起計算),預設值為空,表示賬號永久可用。
第 9 欄位:保留欄位,目前沒有特定用途。
4、新增使用者賬號—usradd命令*

常見的選項如下。
(1)-u:指定使用者的UID號,要求該UID號碼未被其他使用者使用。
(2)-d:指定使用者的宿主目錄位置(當與-M一起使用時,不生效)。
(3)-e:指定使用者的賬戶失效時間,可使用YYYY-MM-DD的日期格式。
(4)-M:不建立宿主目錄,即使/etcc/login defs系統設定中已設定要建立宿主目錄。
(5)-s:指定使用者的登入 Shell。
(6)-g:修改使用者的基本組名。
(7)-G:修改使用者的感覺組名。
如圖我們執行“useradd -d +指定目錄+使用者名稱”命令新增使用者zhangsan到opt目錄下,並執行“-s +/sbin/nologin”命令指定該使用者不能用Shell登入。

5、設定/更改使用者口令—passwd

常見的選項如下。
(1)-d:清空指定使用者的密碼,僅使用使用者名稱即可登入系統。
(2)-l:鎖定使用者賬戶。
(3)-S:檢視使用者賬戶的狀態(是否被鎖定)。
(4)-u:解鎖使用者賬戶。
如圖我們執行“passwd -l +使用者名稱”命令鎖定使用者,並執行“passwd -S +使用者名稱”命令檢視使用者賬戶狀態。

6、修改使用者賬號的屬性—usermod命令

常用的選項如下。
(1)-u:修改使用者的UID號。
(2)-d:修改使用者的宿主目錄位置。
(3)-e:修改使用者的賬戶失效時間,可使用YYYY-M-DD的日期格式。
(4)-s:指定使用者的登入 Shell。
(5)-l:更改使用者賬號的登入名稱(Login Name)。
(6)-L:鎖定使用者賬戶。
(7)-U:解鎖使用者賬戶。
(8)-g:修改使用者的基本組名。
(9)-G:修改使用者的感覺組名。
如圖我們執行“usermod -L +使用者名稱”命令同樣也可以鎖定使用者。

7、刪除使用者賬號—userdel命令

userdel命令結合“-r”選項可以同時刪除宿主目錄。
如圖我們執行“userdel -r +使用者名稱”命令刪除使用者賬號。

8、使用者賬號的初始組態檔
檔案來源:“/etc/skel”

(1)“~/.bashrc_profile”檔案中的命令將在該使用者每次登入時被執行。
(2)“~/.bashrc”檔案中的命令會在每次載入“/bin/Bash”程式時(當然也包括登入系統)執行。
(3)“~/.bash_logout”檔案中的命令將在使用者每次退出登入時執行。理解這些檔案的作用,可以方便我們安排一些自動執行的後台管理任務。
如圖我們執行“cd /opt/使用者名稱 |ls -a”命令去檢視一下個使用者賬號的組態檔。

二、管理組賬號
1、組賬號
(1)基本組(私有組):這個組稱為該使用者的基本組(或私有組)
(2)附加組(公共組):每一個使用者賬號至少屬於一個組,若該使用者同時還包含在其他的組中,則這些組稱為該使用者的附加組(或公共組)。
2、組賬號檔案
(1)/etc/group:儲存組賬號基本資訊。
(2)/etc/gshadow:儲存組賬號的密碼資訊。
(3)GID號:組標識號(Group IDentify)。
3、新增組賬號—命令

使用groupadd命令可以新增一個組賬號,需要指定GID號時,可以使用“-g”選項。
如圖我們執行“groupadd +組賬號名”命令新增一個組,再執行“more /etc/group |tail -5”命令去檢視我們新建的組。

4、新增刪除組成員—gpasswd命令

常用選項如下。
(1)-a:向組內新增一個使用者。
(2)-d:從組內刪除一個使用者成員。
(3)-M:定義組成員列表,以逗號分隔。
如圖我們執行“gpaaawd -a +使用者賬號 +組賬號名”命令將使用者新增到組中,然後執行“tail -l /etc/group”命令檢視組列表裡是否有剛新增的使用者。

5、查詢賬號資訊
(1)查詢使用者所屬的組

(2)查詢使用者身份標識

(3)查詢使用者賬號的詳細資訊

(4)查詢已登入到主機的使用者資訊
使用w、who、users命令查詢。
如圖我們執行“id +使用者名稱”查詢使用者身份標識或“groups +使用者名稱”命令檢視使用者所屬的組。

6、檢視檔案/目錄的許可權和歸屬
(1)存取許可權
① 讀取r:允許檢視檔案內容、顯示目錄列表
② 寫入w:允許修改檔案內容,允許在目錄中新建、移動、刪除檔案或子目錄
③ 可執行x:允許執行程式、切換目錄
(2)歸屬(所有權)
① 屬主:擁有該檔案或目錄的使用者帳號
② 屬組:擁有該檔案或目錄的組帳號
各欄位含義如下圖。

r、w、x許可權字元也可以分別用為八進位制數位4、2、1表示。

7、設定檔案許可權和命令的許可權—chmod命令

注意:檔案最大許可權為666,目錄最大許可權為777。
如圖我們執行“chmod 666 +檔名”命令將檔案的許可權放到最大。

8、設定檔案和目錄的歸屬—chown命令
也可以結合“-R”選項遞回修改指定目錄下所有檔案、子目錄的歸屬。

如圖我們執行“chown 使用者名稱:使用者名稱 檔名”命令修改檔案的屬主和屬組。

9、許可權掩碼—umask
umask就是預設指定目前使用者在新建檔案或目錄時的許可權預設值。
(1)umask作用
控制新建的檔案或者目錄的許可權
預設許可權去除umask的許可權就為新建的檔案或者目錄的許可權
(2)umask設定: umask022
(3)umask檢視: umask
舉例:將umask設為000,新建目錄或者檔案,檢視許可權。將 umask設為022,新建目錄或者檔案,再檢視許可權。
注意:檔案的最大許可權是666,那麼檔案的許可權掩碼就是022(666-644,即rw-r--r--)。目錄清單許可權為777,那麼命令許可權掩碼就是022(777-755,即rwxr-xr-x)。

IT145.com E-mail:sddin#qq.com