Linux用戶及用戶組管理



Linux是一個多用戶的操作系統,引入用戶,可以更加方便管理Linux服務器,系統默認需要以一個用戶的身份登入,而且在系統上啟動進程也需要以一個用戶身份去運行,用戶可以限制某些進程對特定資源的權限控制。每個用戶實際上是代表一組權限,而這些權限分別表示可以執行不同的操作,是能獲取系統資源的權限的集合。

這里將介紹Linux系統如何管理創建、刪除、修改用戶角色、用戶權限配置、組權限配置及特殊權限深入剖析。


一、 Linux用戶及組的識別符,UID與GID

當我們登錄Linux主機的時候是輸入的用戶帳號,但是Linux系統並不會直接識別你的帳號名稱,他僅識別帳號的ID。這個ID就是UID(User ID)

Linux操作系統可以有多用戶,所謂用戶組是指一組權限和功能相似的用戶的集合,每個用戶可以在一個獨立的組,或同時在多個組,每個組的權限都會傳遞個這個用戶,每個組也可以有零個用戶或者多個用戶。組也有他的ID這個ID就是GID(Group ID)

Linux系統用戶是根據用戶UID來識別的,從默認UID編號從0開始,分別如下:

系統管理員 (UID 0) #當UID是0時,代表這個用戶是root用戶,當你讓其他帳號也具有root權限時,將該帳號的UID改為0即可。這里需要注意的是一個UID可有多個用戶名,但不建議這樣設置會有問題。

系統帳號 (UID 1-999) #保留給系統使用的UID,用於滿足文件或者服務啟動的需要。這些帳號通常不可以登錄。

普通用戶 (ID 1000以上) #給普通用戶使用的

Linux系統中的每個文件或者文件夾,都有一個所屬用戶及所屬組,使用id命令可以顯示當前用戶的信息,使用passwd命令可以修改當前用戶密碼。Linux操作系統用戶的特點如下:

每個用戶擁有一個UserID,操作系統實際讀取的是UID,而非用戶名;

每個用戶屬於一個主組,屬於一個或多個附屬組,一個用戶最多有31個附屬組;

每個組擁有一個GroupID;

每個進程以一個用戶身份運行,該用戶可對進程擁有資源控制權限;

每個可登陸用戶擁有一個指定的Shell環境。


二、 Linux用戶管理

Linux用戶在操作系統可以進行日常管理和維護,涉及到的相關配置文件如下:

/etc/passwd          保存用戶信息

/etc/shadow         保存用戶密碼(以加密形式保存)

/etc/group     保存組信息

/etc/login.defs    用戶屬性限制,密碼過期時間,密碼最大長度等限制

/etc/default/useradd     顯示或更改默認的useradd命令的配置文件

/etc/passwd文件結構
在/etc/passwd文件中每行代表一個用戶帳號,有幾行就代表有幾個帳號在你的系統中。里面有很多帳號是系統正常運行所必須的,例如:bin nobody等,這些帳號不要隨便刪掉。查看/etc/passwd文件,只摘錄一部分
-----------------------------------------------------------------
openSUSE:~ # cat /etc/passwd
avahi:x:468:472:User for Avahi:/run/avahi-daemon:/bin/false
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
tftp:x:476:477:TFTP account:/srv/tftpboot:/bin/false
vnc:x:465:467:user for VNC:/var/lib/empty:/sbin/nologin
pipci:x:1000:100:Pipci:/home/pipci:/bin/bash
------------------------------------------------------------------
通過上面的摘錄信息可以看出每一行都使用“:”冒號分隔,共有7個字段,每個字段的含義如下:

賬號名稱:賬號密碼:賬號UID:賬號GID:用戶說明:用戶家目錄:shell解析

接下來,給大家分別介紹這 7 個字段。

1、賬號名稱:  和用戶UID對應,這是用戶登錄時使用的賬號名稱,在系統中是唯一的,不能重復。

2、賬號密碼:  早期的Unix系統中,該字段是存放賬號密碼的,由於安全原因,后來把這個密碼字段內容移動到/etc/shadow中,這里可以看到一個字母表示該用戶密碼在/etc/shadow中保護

3、賬戶UID:  賬號UID一般由一個整數表示的,范圍是0~65535,新的內核版本會比這個更大。

4、賬戶GID:  賬號GID一般也是由一個整數表示的,范圍是0~65535,當添加賬戶時,默認情況下會同時建立一個與用戶同名且UID和GID相同的組,這個與發行版有關。

5、用戶說明:  這個字段是對這個賬號二隊描述說明,一般為用戶的全名。

6、用戶家目錄:  用戶登錄后首先進入的目錄,一般為(/home/用戶名)這樣的目錄

7、shell解析器:當前用戶登錄后所使用的shell,在centos/rhel等linux中,默認的shell為bash,就是在這里設置的。如果不希望用戶登錄系統,可以用個usermod或者手工修改passwd配置,將該字段改為/sbin/nologin即可。如果仔細看passwd文件,會發現大部分內置系統賬號的這個字段都是/sbin/nologin,表示禁止登錄系統,這是出於安全考慮的。

/etc/shadow文件結構
/etc/shadow 文件,用於存儲 Linux 系統中用戶的密碼信息,又稱為“影子文件”。前面介紹了 /etc/passwd 文件,由於該文件允許所有用戶讀取,易導致用戶密碼泄露,因此 Linux 系統將用戶的密碼信息從 /etc/passwd 文件中分離出來,並單獨放到了此文件中。/etc/shadow 文件只有 root 用戶擁有讀權限,其他用戶沒有任何權限,這樣就保證了用戶密碼的安全性。注意,如果這個文件的權限發生了改變,則需要注意是否是惡意攻擊。
查看/etc/shadow文件,只摘錄一部分
----------------------------------------------------------
openSUSE:~ # cat /etc/shadow
avahi:!:18033::::::
bin:!:18033::::::
pulse:!:18033::::::
root:$6$a4hM/suhtofw$DwRlYLvjWboyMny0Xz9ZwNXGs5fN1jMe8HyGjaL1zc4uvH2EBzQUeG/NnIGmnwxHWhfk3Tec8QPC2X1urI62l/:18033::::::
vnc:!:18033::::::
pipci:$6$WzSE91rBbzYf$ZCAOoKaKF2TQ1Vke03tgspLKnVqA3v2IhXLdKEiM80CAYEdBVeq.WIMVHNpBf5UVYWL22R1NNg9JhbndzaXSa1:18033:0:99999:7:::
uucp:!:18046::::::
----------------------------------------------------------
同 /etc/passwd 文件一樣,文件中每行代表一個用戶,同樣使用 ":" 作為分隔符,不同之處在於,每行用戶信息被划分為 9 個字段。每個字段的含義如下:

用戶名:加密密碼:最后一次修改時間:最小修改時間間隔:密碼有效期:密碼需要變更前的警告天數:密碼過期后的寬限時間:賬號失效時間:保留字段

接下來,給大家分別介紹這 9 個字段。
1、賬戶名稱
同 /etc/passwd 文件的用戶名有相同的含義。

2、加密后的密碼,如果這一欄的第一個字符為!或者*的話,說明這是一個不能登錄的賬戶,ubuntu系統默認的不啟用root賬戶。
這里保存的是真正加密的密碼。目前 Linux 的密碼采用的是 SHA512 散列加密算法,原來采用的是 MD5 或 DES 加密算法。SHA512 散列加密算法的加密等級更高,也更加安全。注意,這串密碼產生的亂碼不能手工修改,如果手工修改,系統將無法識別密碼,導致密碼失效。很多軟件透過這個功能,在密碼串前加上 "!"、"*" 或 "x" 使密碼暫時失效。所有偽用戶的密碼都是 "!!" 或 "*",代表沒有密碼是不能登錄的。當然,新創建的用戶如果不設定密碼,那么它的密碼項也是 "!!",代表這個用戶沒有密碼,不能登錄。

3、最近改動密碼的日期(這個是從1970年1月1日算起的總的天數)。
Linux 計算日期的時間是以 1970 年 1 月 1 日作為 1 不斷累加得到的時間,到 1971 年 1 月 1 日,則為 366 天。這里顯示 15775 天,也就是說,此 root 賬號在 1970 年 1 月 1 日之后的第 15775 天修改的 root 用戶密碼,如果是0代表下次用戶登錄必須更改密碼。
通過下面的命令可以把累加時間轉化成正常可讀取時間
openSUSE:~ # date -d "1970-01-01 18033 days"        #累加時間為18033,這里可以改成自己想要轉換的時間

通過下面的命令可以把想要設置的時間轉換成累加時間
openSUSE:~ # echo $(($(date --date="2019/10/10" +%s)/86400+1))   #這里是把2019/10/10換算成累加時間,可以改成自己想要設置的目標時間。

4、密碼不可被變更的天數:設置了這個值,則表示從變更密碼的日期算起,多少天內無法再次修改密碼,如果是0的話,則沒有限制
該字段規定了從第 3 字段(最后一次修改密碼的日期)起,多長時間之內不能修改密碼。如果是 0,則密碼可以隨時修改;如果是 10,則代表密碼修改后 10 天之內不能再次修改密碼。

5、密碼需要重新變更的天數:如果為99999則沒有限制
經常變更密碼是個好習慣,為了強制要求用戶變更密碼,這個字段可以指定距離第 3 字段(最后一次更改密碼)多長時間內需要再次變更密碼,否則該賬戶密碼進行過期階段。
該字段的默認值為 99999,也就是 273 年,可認為是永久生效。如果改為 90,則表示密碼被修改 90 天之后必須再次修改,否則該用戶即將過期。管理服務器時,通過這個字段強制用戶定期修改密碼。

6、密碼需要變更前的警告天數
與第 5 字段相比較,當賬戶密碼有效期快到時,系統會發出警告信息給此賬戶,提醒用戶 "再過 n 天你的密碼就要過期了,請盡快重新設置你的密碼!"。該字段的默認值是 7,也就是說,距離密碼有效期的第 7 天開始,每次登錄系統都會向該賬戶發出 "修改密碼" 的警告信息。

7、密碼過期的寬限時間:如果在5中設置的日期過后,用戶仍然沒有修改密碼,則該用戶還可以繼續使用的天數
也稱為“口令失效日”,簡單理解就是,在密碼過期后,用戶如果還是沒有修改密碼,則在此字段規定的寬限天數內,用戶還是可以登錄系統的;如果過了寬限天數,系統將不再讓此賬戶登陸,也不會提示賬戶過期,是完全禁用。比如說,此字段規定的寬限天數是 10,則代表密碼過期 10 天后失效;如果是 0,則代表密碼過期后立即失效;如果是 -1,則代表密碼永遠不會失效。

8、賬號失效日期,過了這個日期賬號就無法使用
同第 3 個字段一樣,使用自 1970 年 1 月 1 日以來的總天數作為賬戶的失效時間。該字段表示,賬號在此字段規定的時間之外,不論你的密碼是否過期,都將無法使用!
該字段通常被使用在具有收費服務的系統中。

9、保留的
這個字段目前沒有使用,等待新功能的加入。


三、Linux用戶組,有效用戶組和初始用戶組

所有的Linux或者Windows系統都有組的概念,通過組可以更加方便的管理用戶,組的概念應用於各行行業,例如企業會使用部門、職能或地理區域的分類方式來管理成員,映射在Linux系統,同樣可以創建用戶,並用組的概念對其管理。

Linux組有如下特點:

每個組有一個組ID;

組信息保存在/etc/group中;

每個用戶至少擁有一個初始用戶組,同時還可以擁有31個附屬組。

通過命令groupadd、groupdel、groupmod來對組進行管理,后就將介紹

/etc/group文件結構
/ect/group 文件是用戶組配置文件,即用戶組的所有信息都存放在此文件中。此文件是記錄組 ID(GID)和組名相對應的文件。前面講過,/etc/passwd 文件中每行用戶信息的第四個字段記錄的是用戶的初始組 ID,那么,此 GID 的組名到底是什么呢?就要從 /etc/group 文件中查找。
查看/etc/group文件,只摘錄一部分
------------------------------------------------------------
openSUSE:~ # cat /etc/group
audio:x:492:pulse
avahi:x:472:
bin:x:1:daemon
vboxusers:x:463:pipci
video:x:484:
root:x:0:
vnc:x:467:
wheel:x:496:
winbind:x:469:
users:x:100:
------------------------------------------------------------
此文件中每一行各代表一個用戶組。各用戶組中,還是以 ":" 作為字段之間的分隔符,分為 4 個字段,每個字段對應的含義為:

用戶組名稱:用戶組密碼:GID:此用戶組包含的用戶賬號名稱

接下來,給大家分別介紹這 4 個字段。

1、用戶組名稱  :就是用戶組名稱啦!

2、用戶組密碼:  通常不需要設置,這個設置通常是給“用戶組管理員”使用的,目前很少有這個機會設置用戶組管理員。同樣,密碼已經移動到/etc/gshadow去,因此這個字段只會存在一個“x”而已。

3、GID 就是用戶組的ID。我們/etc/passwd第四個字段使用的GID對應的用戶組名就是由這里對應出來的。

4、此用戶組包含的賬號名稱:我們知道一個賬號可以加入多個用戶組,那某個賬號想要加入此用戶組時,將該賬號填入這個字段即可。舉例來說,如果我想要讓pi1與pi2加入到root這個用戶組,那么在root組這一行的最后面加上”pi1,pi2”,注意不要有空格,使其成為“root:x:0:pi1,pi2”就可以了。

初始用戶組:
在/etc/passwd中用戶對應的那一行的第4個字段,就是所謂的初始用戶組。也就是說,當用戶登錄系統,立刻就擁有這個用戶組的相關權限。但是如果不是初始用戶組,則必須要在/etc/group對應的某一行的第4個字段中添加用戶名,才能把該用戶添加進該用戶組。/etc/group的每行的第4字段列出每個群組包含的所有用戶。需要注意的是,如果該用戶組是這個用戶的初始組,則該用戶不會寫入這個字段,而該字段顯示的用戶都是這個用戶組的附加用戶。

有效用戶組
如果一個賬號同時在多個用戶組內,那如果該用戶新建一個新的文件或目錄時,新文件的組是哪個呢?這個就跟當時的有效用戶組有關了。
想要知道用戶自己當前的有效用戶組和支持的用戶組,使用groups命令即可。
---------------------------------------------------------
pipci@openSUSE:~> groups
users vboxusers
pipci@openSUSE:~> touch ii
pipci@openSUSE:~> ll ii
-rw-r--r-- 1 pipci users 0 6月 29 06:56 ii
---------------------------------------------------------
在上面這個輸出的信息中列出了pipci用戶支持的用戶組只有兩個,第一個輸出的用戶組就是當前的有效用戶組了,后面的組就是次要用戶組,新建的ii文件所屬組就是users這個有效用戶,如果不做有效用戶組的切換默認的初始用戶組就是有效用戶組。

使用newgrp命令可以切換有效用戶組,注意只能切換當前賬號支持的用戶組。
--------------------------------------------------------------
pipci@openSUSE:~> newgrp vboxusers
pipci@openSUSE:~> groups
vboxusers users
pipci@openSUSE:~> touch uu
pipci@openSUSE:~> ll uu
-rw-r--r-- 1 pipci vboxusers 0 6月 29 06:57 uu
--------------------------------------------------------------
上面的例子通過newgrp命令將用戶pipci的有效用戶在切換成vboxusers,再新建文件uu,可以看出uu這個文件所屬組已經是vboxusers了。這個命令是以另外一個shell來提供這個功能的,換句話說,用戶使用了另一個shell來登錄,而且新的shell給予該用戶的有效GID是新切換的用戶組。由於是新取得一個shell,因此如果想回到原來的shell,則需要輸入exit。


四、添加帳號

如需創建新用戶,可以使用命令useradd,執行命令#useradd pi1即可創建pi1用戶。

useradd pi1 命令默認創建用戶pi1,會根據如下步驟進行操作:

1、讀取/etc/default/useradd,根據配置文件執行創建操作;

2、在/etc/passwd文件中添加用戶信息;

3、如使用passwd命令創建密碼,密碼會被加密保存在/etc/shadow中;

4、為pi1創建家目錄:/home/pi1; #CentOS7會默認創建,Debian9.5和OpenSUSE15不會創建,只有加-m參數才會主動創建。

5、會將/etc/skel中的文件復制至/home/pi1家目錄;

6、創建與用戶名相同的pi1組; #在CentOS7與Debian9.5系統中會同時創建一個同名的組pi1,默認該用戶的初始和有效用戶組為pi1。而OpenSUSE15系統下面不會創建同名的用戶組,初始和有效用戶組在為users組。

7、pi1組信息保存在/etc/group配置文件中。

------------------------------------------------------

在使用useradd命令創建用戶時,可以支持如下參數:

用法:useradd [選項] 用戶名

選項:

-b,   指定新賬戶的基目錄,如果通過useradd -m添加用戶會創建用戶主目錄,這個目錄會在/home目錄下創建用戶名同名的目錄,如果指定基目錄后再創建
用戶主目錄就會在基目錄下創建用戶同名的目錄而不是在/home下創建,比如基目錄指定為opt,創建的用戶為pi1那么pi1用戶的主目錄就為/opt/pi1目錄;

-c,   新賬戶的說明內容,也就是/etc/passwd第5字段的內容,一般設置為用戶的全名;

-d,   指定某個目錄為新賬戶的主目錄,必須使用絕對路徑指定,CentOS7如果指定的目錄不存在會主動創建,Debian9和openSUSE15不會主動創建;

-D,    顯示或更改默認的 useradd 配置;

-e,   新賬戶的過期日期也就是/etc/shadow的第8字段的內容,格式YYYY-MM-DD,如果沒有指定,則使用/etc/default/useradd文件中的EXPIRE變量的值;如果為空字符串,則表示永遠不過期。

-f,      密碼過期的寬限時間,為/etc/shadow的第7字段的內容,0表示立即失效,-1表示永不失效;

-g,    指定新賬戶的初始組的名稱或ID;

-G,   為新賬戶添加的附加組列表;

-h,   顯示此幫助信息並推出;

-m,   創建用戶的主目錄,默認會在/home目錄下創建與用戶同名的目錄,CentOS7默認不用-m也會創建,Debian9和openSUSE15不會主動創建需要加-m參數才會創建;

-M,    不創建用戶的主目錄,CentOS7不創建需要加-M參數,Debian9和openSUSE15不需要加;

-r,   創建一個系統賬戶,不創建用戶的主目錄,UID為1000以下;

-R,   chroot 到的目錄

-s,    新賬戶的登錄shell,需要使用絕對路徑,CentOS7和openSUSE15會默認添加/bin/bash,Debian9需要指定;

-u,   指定新賬戶的用戶UID;

-U,   創建與用戶同名的初始用戶組,openSUSE15默認創建用戶的初始用戶在為users可以通過這個選項指定創建同名的初始用戶組;

 

Useradd案例演示:

新建pi1用戶,同時創建pi1初始用戶組,同時自動在/home下創建用戶主目錄,登錄shell為/bin/bash, 用戶的名為Pi1;
------------------------------------------------------
[root@CentOS7 ~]# useradd pi1 -c Pi1

root@debian:~# useradd -m pi1 -c Pi1 -s /bin/bash

OpenSUSE:~ # useradd -mU pi1 -c Pi1 -s /bin/bash
------------------------------------------------------
同樣的需求不同的發行版,創建時候所需要的參數不同,主要因為/etc/default/useradd, /etc/login.defs兩個文件的默認配置不同。

新建pi2用戶,同時創建pi2初始用戶組,同時指定/opt到的目錄;/pi2目錄為用戶的主目錄,登錄shell為/bin/bash ,用戶的名為Pi1;;
------------------------------------------------------------------------------------
[root@CentOS7 ~]# useradd pi2 -d /opt/pi2 -c Pi2                            #CetnOS7如果指定的目錄如果不存在會自動創建

root@debian:~# useradd pi2 -d /opt/pi2 -c Pi2 -s /bin/bash               #Debian9.5如果指定的目錄如果不存在不會自動創建,需要自己創建

OpenSUSE:~ # useradd pi3 -d /opt/pi3 -c Pi3 -s /bin/bash -U           #openSUSE15如果指定的目錄如果不存在不會自動創建,需要自己創建
------------------------------------------------------------------------------------

五、更改用戶密碼

使用passwd命令創建和更改用戶密碼

使用useradd創建了帳號之后,在默認的情況下,該帳號是被暫時封鎖的,也就是說該帳號是無法登錄的,可以去看下/etc/shadow文件的第二個字段是感嘆號,通過passwd命令為用戶創建密碼。

用法:passwd [選項] 用戶名

選項:

-d,    刪除用戶密碼,僅能以root權限操作;
-l,     鎖住用戶,被鎖定的用戶將無法登錄系統,僅能通過root權限操作,也就是在/etc/shadow文件的第二個字段加上感嘆號;
-u,    解除鎖定,與-l選項相反,也就是在/etc/shadow文件的第二個字段刪除感嘆號;
-f,     強制操作;僅root權限才能操作;
-x,    后面接天數,shadow的第5字段的內容,多久內必須改動密碼,僅能root權限操作;
-n,    后面接天數,shadow的第4字段的內容,多久內不可修改密碼,僅能root權限操作
-w,    后面接天數,shadow的第6字段的內容, 在距多少天提醒用戶修改密碼;僅能root權限操作;
-S,     查詢用戶的密碼狀態,僅能root用戶操作;

passwd案例演示:

在root用戶下為新用戶pi1創建密碼
-------------------------------------------------------------
[root@CentOS7 ~]# passwd pi1
更改用戶 pi1 的密碼
新的 密碼:   #要求輸入用戶的新密碼
重新輸入新的 密碼:   #要求再次輸入用戶的新密碼,兩次輸入同樣的密碼,防止你輸錯。
passwd:所有的身份驗證令牌已經成功更新。
[root@CentOS7 ~]#
-------------------------------------------------------------

普通用戶自己更改密碼
-------------------------------------------------------------
[pi1@CentOS7 ~]$ passwd pi1
passwd:只有根用戶才能指定用戶名。   #普通用戶只能更改自己的密碼,沒有權限更改他人的
[pi1@CentOS7 ~]$ passwd         #普通用戶更改自己的密碼不用在命令后面加上自己的用戶名
更改用戶 pi1 的密碼 。
為 pi1 更改 STRESS 密碼。
(當前)UNIX 密碼:     #普通用戶更改自己的密碼需要輸入原始密碼
新的 密碼:
無效的密碼: 密碼少於 8 個字符          #有密碼復雜讀要求
新的 密碼:
無效的密碼: 密碼與原來的太相似      #有密碼復雜讀要求
新的 密碼:
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新。
[pi1@CentOS7 ~]$
-------------------------------------------------------------

六、更改密碼策略

使用chage命令修改帳號和密碼的有效期限。

用法 chage [選項] 用戶名

選項
-l,  列出帳號的詳細密碼參數。
-d,  后面接天數,修改shadow的第3字段的內容,最近一次更改密碼的日期,格式YYYY-MM-DD。
-m,  后面接天數,修改shadow的第4字段的內容,密碼最短保留天數。
-M,  后面接天數,修改shadow的第5字段的內容,密碼多久需要進行修改。
-w,  后面接天數,修改shadow的第6字段的內容,密碼過期前的警告天數。
-I,   后面接天數,修改shadow的第7字段的內容,密碼失效日期。
-E,  后面接天數,修改shadow的第8字段的內容,帳號失效日期,格式YYYY-MM-DD。

chage案例演示:

顯示密碼的詳細信息
--------------------------------------------------------------
[root@CentOS7 ~]# chage -l pi1   #查看pi1用戶密碼的詳細信息
最近一次密碼修改時間 :10月 01, 2019
密碼過期時間 :從不
密碼失效時間 :從不
帳戶過期時間 :從不
兩次改變密碼之間相距的最小天數 :0
兩次改變密碼之間相距的最大天數 :99999
在密碼過期之前警告的天數 :7
[root@CentOS7 ~]#
--------------------------------------------------------------

設置新用戶下次登錄時候必須更改密碼才能登錄
--------------------------------------------------------------
[root@CentOS7 ~]# chage -d 0 pi1
--------------------------------------------------------------

七、修改用戶信息

通過usermod命令可以修改以創建用戶的屬性,包括用戶名,用戶主目錄,所屬用戶組以及登錄Shell等信息,

用法 usermod [選項] 用戶名

選項

-c, 修改/etc/passwd文件第5段說明內容,
-d, 修改用戶的主目錄,如果指定-m選項,則會把舊的主目錄下的內容復制到新的主目錄下
-e, 指定用戶帳號禁用的日期,格式YY-MM-DD,也就是/etc/shadow第8段的內容
-f, 密碼過期的寬限時間,也就是/etc/shadow第8段的內容,0表示密碼已過期就禁用帳號,-1表示禁用此功能,默認值是-1
-g, 修改用戶的初始用戶組,修改的用戶組必須存在,用戶主目錄中,屬於原來的主組的文件將轉交新組所有,主目錄之外的文件所屬的組必須手動更改
-G, 把用戶追加到某些附加組中,多個用戶組之間用逗號隔開
-l, 修改用戶的登錄名稱
-L, 鎖定用戶的密碼,被鎖定的用戶將無法登錄系統,也就是在/etc/shadow文件的第二個字段加上感嘆號
-m, 將用戶的主目錄中的文件移動到新的位置,通常和-d選項一起使用
-s, 修改用戶的默認shell
-u, 改用戶的uid,該uid必須唯一
-U, 解鎖用戶的密碼,與-L選項相反,也就是在/etc/shadow文件的第二個字段刪除感嘆號

usermod案例演示:

將pi1用戶添加到pi2,pi3用戶組
--------------------------------------------------------------
[root@CentOS7 ~]# usermod -G pi2,pi3 pi1
--------------------------------------------------------------

將pi1用戶的主目錄改為/home/pii 同時將用戶的主目錄中的文件移動到新的位置
--------------------------------------------------------------
[root@CentOS7 ~]# usermod -d /home/pii -m pi1
--------------------------------------------------------------

八、刪除用戶

userdel命令用來將一個用戶從Linux系統中刪除。

用法 userdel [選項] 用戶名

選項

-f, 強制刪除指定的用戶,即使該用戶處於登錄狀態
-r, 刪除用戶的同時用戶主目錄和用戶的郵箱也一起刪除,用戶主目錄以為的文件需要手動刪除。

usermod案例演示:

將pi1用戶及主目錄一同刪除
--------------------------------------------------------------
[root@CentOS7 ~]# userdel -r pi1
--------------------------------------------------------------

九,顯示用戶的信息

id命令可以顯示真實有限的用戶標識號和組標識號。

用法 id [選項] 用戶名

選項,這個命令一般不需要加選項直接id回車顯示全部信息最直觀

-g, 顯示用戶所屬群組的ID。
-G, 顯示用戶所屬附加群組的ID。
-n, 顯示用戶,所屬群組或附加群組的名稱。

id案例演示:

顯示pi1用戶的信息
--------------------------------------------------------------
[pi1@CentOS7 ~]$ id #已經登錄pi1用戶直接輸入id命令就好了
uid=1000(pi1) gid=1000(pi1) 組=1000(pi1) 環境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[pi1@CentOS7 ~]$
--------------------------------------------------------------


十、Linux添加用戶組

Linux系統通過groupadd命令添加用戶組

用法 groupadd [選項] 組名

選項

-g,   為新組指定GID;
-r,   創建一個系統工作組,工作組的GID小於1000;
-o,   允許使用重復的 GID

十一、更改用戶組信息

如果想更改組名或組ID可以通過groupmod命令來完成

用法 groupmod [選項] 組名

選項

-g,   修改組 GID;
-n,   修改組名;
-o,   允許使用重復的 GID;


十二、刪除用戶組

刪除用戶組的命令為groupdel,但是初始用戶組不能直接刪除,只有把對應的用戶刪除或給成其他的初始用戶組才可以。

groupdel用法

用法 groupmod 組名

組管理案例演示:

新建用戶組pig
--------------------------------------------------------------
[root@CentOS7 ~]# groupadd pig
--------------------------------------------------------------

更改用戶組pig名稱為gpi
--------------------------------------------------------------
[root@CentOS7 ~]# groupmod -n gpi pig
--------------------------------------------------------------

刪除用戶組gpi
--------------------------------------------------------------
[root@CentOS7 ~]# groupdel gpi
--------------------------------------------------------------

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM