Linux使用者身份(命令詳解與補正)

提亞の鍊金工坊發表於2018-07-24

基於Red Hat Enterprise Linux 7.5


Linux中的root就是存在於所有類UNIX系統中的超級使用者,持有最高管理許可權,能新增/刪除使用者、開關機、關閉或開啟硬體或者系統服務等,並且root的操作無法被阻擋。

Linux中root為什麼叫root,不是因為名字叫root,而是UID為0(在Linux中每一個使用者的UID都是唯一的)

UID為0:系統最高管理員使用者root。

UID為1~999:系統使用者,Linux為了避免某個服務被入侵以至於被提權到整個server,預設服務程式會有獨立的系統使用者負責執行,將入侵破壞的範圍降到最低。

UID為1000~:普通使用者,所有UID大於1000的使用者都是普通使用者,管理員建立的使用者UID都是從1000開始。

 

為了方便管理,Linux增加了GID的概念,即將一個區域或者職權的使用者加入到一個使用者組中,在企業生產環境中能有效管控員工的安全風險問題,避免員工接觸到非自身職權內的資料。

Linux建立使用者的時候會自動建立一個同名使用者組,稱為基本使用者組;如果以後該使用者加入其他使用者組,稱之為擴充使用者組;一個使用者只有一個基本使用者組,但可以擁有多個擴充使用者組

 

常用命令

useradd

用於建立新的使用者,useradd [引數] username

引數

-u:後面接的是UID,即“useradd -u 987 username”(意為建立一個UID為987,名字叫username的使用者)

-e:後見接的是日期,格式為YYYY-MM-DD,即賬號的失效時間,這會寫入shadow的第八個欄位

-g:指定一個初始的基本使用者組(該使用者組必須事先在系統中建立並存在),該組的GID會被放置到/etc/passwd的第四個欄位

-G:指定一個或者多個擴充使用者組(該使用者組必須事先在系統中建立並存在),這個會修改/etc/group內的相關資料

-U:建立一個和使用者同名的組,並將使用者新增到組裡面

-N:不建立與改使用者同名的基本使用者組,而是將使用者新增到-g指定的使用者組裡面

-r:建立一個系統使用者,這個使用者的UID有限制(參考/etc/login.defs)

-s:指定該使用者的預設shell直譯器

-f:後面接shadow的第七欄位專案,密碼過期後,該賬戶被徹底禁用之前的天數,0表示立即禁用,-1表示永不禁用(密碼只會過期但登陸時強制重新設定密碼)

-M:強制不要建立該使用者家目錄(系統賬號預設值)

-m:強制建立改使用者使用者家目錄(一般賬號預設值)

-d:(不使用系統預設值)指定某個目錄成為家目錄,必須為絕對路徑

 

groupadd

用於建立使用者組,groupadd [引數] groupname

引數:

-g:建立的同時給這個group指定GID

-r:建立系統group

 

chage

用於修改賬號和密碼有效期限,chage [引數] username

引數

-l(小寫L):列出該賬號的詳細密碼引數

-d:後面接日期,上一次修改密碼的時間,格式為YYYY-MM-DD

-m:後面接天數,兩次密碼之間間隔的最小天數,即除了root操作的情況下,使用者修改自己的密碼必須間隔的最短時間(如果設定為3,那麼3天內使用者無法自行修改密碼),如果為0表示任何時間都可以修改

-M:後面接天數,兩次密碼之間間隔的最大天數

-W:使用者密碼到期前會接到天數警告

-I(大寫i):後面接天數,密碼失效日期

-E:後面接日期,賬號失效時間,格式為YYYY-MM-DD

 

passwd

用於修改使用者密碼,過期時間、認證資訊等,passwd [引數] username

引數:

-l(小寫L):鎖定該使用者密碼,禁止其登陸(root使用su切換到該使用者除外)

-u:解除該使用者密碼鎖定,允許登陸

-S:顯示改使用者密碼是否被鎖定以及密碼的加密演算法

-d:刪除該使用者的密碼,即可以用空密碼登陸

-e:強制該使用者下次登陸時修改密碼

-n:接天數,多少天內不可修改密碼

-x:接天數,多少天內必須修改密碼

-w:警告密碼過期時間

-i:接天數,密碼失效天數

 

usermod

使用者修改使用者的屬性,usermod [引數] username

引數

-c:填寫賬戶的備註資訊

-d、-m:-d和-m引數必須連用,指定使用者新的家目錄並將原有家目錄資料轉移至新目錄(-d是指定目錄,-m是移動檔案)

-g:變更所屬使用者組(該使用者組必須事先在系統中建立並存在)

-G:變更擴充使用者組(多個組之間用逗號隔開,沒有空格)注意:如果該使用者本身在一個組裡面(假定為group9),但-G後接引數group1,group2,group3……內沒有該組,那麼該使用者就會從該組(group9)裡面刪除,可以使用-a引數避免這個問題(-a引數是新增,如果不加-a那麼就是設定)

-a:將使用者新增到擴充使用者組中,該引數必須和-G連用,但不是-G的必要引數

-f:密碼過期之後,賬戶被徹底禁用前的天數

-e:後接日期,賬戶被徹底禁用的時間,格式為YYYY-MM-DD

-L:鎖定使用者禁止其登陸

-U:解鎖使用者並允許其登陸

-s:變更預設shell,如果為空即為系統預設登陸shell

-l(小寫L):修改使用者名稱

-u:修改該使用者的UID

-o:-u的可選引數,-o可以使得-u修改的UID可以是非唯一值(非負值)

 

userdel

用於刪除使用者,userdel [引數] username

引數

-f:強制刪除使用者賬戶,即使該賬戶目前仍處於登陸狀態,將強制刪除使用者郵箱以及家目錄,即使其他使用者也在瀏覽使用該使用者的郵箱和家目錄;如果/etc/login.defs中的USERGROUP_ENAB為yes,那麼如果有與該使用者同名的組也一併刪除,即使是其他使用者的基本組。該引數危險性極高,甚至可能將破壞系統穩定性

-r:使用者家目錄中的檔案將隨著使用者家目錄和使用者郵箱一起刪除,其他位置的檔案需要手動搜尋並刪除,該賬戶的郵箱在login.defs中的MAIL_DIR中有定義。

相關文章