Linux的用戶組與權(quán)限用法及說(shuō)明
Linux的用戶與權(quán)限
前言 :
在Linux操作系統(tǒng)中任何文件都屬于某一特定的用戶,而任何用戶都隸屬于至少一個(gè)用戶組。
用戶是否有權(quán)限對(duì)某文件進(jìn)行訪問(wèn)、讀寫及執(zhí)行,受到系統(tǒng)嚴(yán)格約束。
這種清晰、嚴(yán)謹(jǐn)?shù)挠脩襞c用戶組管理系統(tǒng)在很大程度上保證了Linux系統(tǒng)的安全性。
一.賬戶管理
1.0 創(chuàng)建用戶useradd
作用:useradd 可用來(lái)建立用戶帳號(hào)。帳號(hào)建好之后,再用 passwd 設(shè)定帳號(hào)的密碼。而可用 userdel 刪除帳號(hào)。使用 useradd 指令所建立的帳號(hào),實(shí)際上是保存在 /etc/passwd 文本文件中
格式:useradd【選項(xiàng)】用戶名
常用選項(xiàng)說(shuō)明
| 選項(xiàng) | 說(shuō)明 |
|---|---|
| -c | 加上備注文字。備注文字會(huì)保存在passwd的備注欄位中 |
| -d | 指定用戶登入時(shí)的起始目錄 |
| -D | 變更預(yù)設(shè)值 |
| -e | 指定帳號(hào)的有效期限 |
| -f | 指定在密碼過(guò)期后多少天即關(guān)閉該帳號(hào) |
| -g | 指定用戶所屬的群組 |
| -G | 指定用戶所屬的附加群組 |
| -m | 自動(dòng)建立用戶的登入目錄 |
| -M | 不要自動(dòng)建立用戶的登入目錄 |
| -n | 取消建立以用戶名稱為名的群組 |
| -r | 建立系統(tǒng)帳號(hào) |
| -s | 指定用戶登入后所使用的shell |
| -u | 指定用戶ID |
1.1 示例
1.1.1添加一般用戶
useradd zhuang

1.1.2.為新添加的用戶添加組
useradd -g root wei

1.1.3.創(chuàng)建一個(gè)系統(tǒng)用戶
useradd -r liang1

1.1.4.為新添加的用戶指定home目錄下
useradd -d /home/myd liang2

1.1.5.建立用戶且定制ID
useradd liang3 -u 1008

1.1.6.添加一個(gè)不能登錄的賬號(hào)

注: useradd命令參數(shù)必須是在創(chuàng)建賬戶時(shí)同時(shí)輸入才有用,創(chuàng)建賬戶后無(wú)法使用useradd更改參數(shù)
2.0 用戶賬號(hào)存儲(chǔ)文件
作用: 保存用戶名稱,宿主目錄,登錄Shell等基本信息文件位置:/etc/passwd
2.1每一行對(duì)應(yīng)一個(gè)用戶的賬號(hào)記錄

2.2 各個(gè)字段含義如下圖,他們各自用“:”號(hào)隔開(kāi)

- root:用戶名,用戶名僅是為了方便用戶記憶。Linux系統(tǒng)是通過(guò)UID來(lái)識(shí)別用戶身份,分配用戶權(quán)限。
- x:表示此用戶設(shè)有密碼,但不是真正的密碼,真正的密碼保存在/etc/shadow文件Linux系統(tǒng)把真正的加密密碼串放置在/etc/shadow文件中,此文件只有root用戶可以瀏覽和操作,最大限度地保證了密碼的安全。
補(bǔ)充:
注意!!!,雖然"x"并不表示真正的密碼,但也不能刪除,如果刪除了"x",那么系統(tǒng)會(huì)認(rèn)為這個(gè)用戶沒(méi)有密碼,從而導(dǎo)致只輸入用戶名而不用輸入密碼就可以登陸(只能在使用無(wú)密碼登錄,遠(yuǎn)程是不可以)。
- 0:用戶賬號(hào)的UID號(hào)。
- 0:所屬基本組賬號(hào)的GID號(hào)
- root:描述性信息,此字段只是用來(lái)解釋這個(gè)用戶的意義而已
- /root:宿主目錄,即該用戶登錄后所在的默認(rèn)工作目錄
- 注:通常稱為用戶的主(家)目錄。例如:root主目錄為/root,普通用戶odysee的主目錄為/home/ody see
- /bin/bash錄shell等信息,用戶完成登錄后使用的
3.0 用戶賬號(hào)文件/etc/shadow
作用:保存用戶的密碼,賬號(hào)有效期等信息
文件位置: /etc/shadow
3.1 每一行對(duì)應(yīng)一個(gè)用戶的密碼記錄
如圖所示:

/etc/shadow 文件只有root用戶擁有讀權(quán)限,其他用戶沒(méi)有任何權(quán)限,這樣就保證了用戶密碼的安全性
和/etc/nasswd文件一樣,文件中每行代表一個(gè)用戶,同樣使用":"作為分隔符,不同之處在于,每行用戶信息被劃分為9個(gè)字段
- 第一列:賬戶名
- 第二列:存放真正加密的密碼,采用SHA512散列算法,更加安全加密原來(lái)用MD5或DES“!!”和“*”表示沒(méi)有密碼不能登陸,新創(chuàng)建用戶也是“?。?rdquo;,如果密碼前面顯示雙感嘆號(hào)表示該賬戶被銷定了
- 第三列:上一次修改密碼的時(shí)間,從1970年1月1日開(kāi)始算的,因?yàn)?970年是Linux的誕生日,date -d"1970-01-01 18983 days"可以查看哪一天改過(guò)
- 第四列:多久之后才可以修改密碼,如果是0,則密碼可以隨時(shí)修改最小修改間隔時(shí)間,也就是說(shuō)該字段規(guī)定了從第三個(gè)字段(最后一次修改密碼的日期)起,多長(zhǎng)時(shí)間之內(nèi)不能修改密碼,如果是0剛隨時(shí)修改密碼,如果是20則代表密碼修改后20天之內(nèi)不能再次修改密碼,此字段是為了針對(duì)某些人頻繁更改賬號(hào)密碼而設(shè)計(jì)的
- 第五列:密碼有效期,默認(rèn)99999(273年),表示永久生效
- 第六列:密碼到期前的第幾天發(fā)出告警信息,默認(rèn)是7天,每次登錄系統(tǒng)都會(huì)向該賬戶發(fā)出"修改密碼"的警告信息
- 第七列:密碼過(guò)期的寬限天數(shù),過(guò)期后的幾天還是可以登陸的,如果過(guò)了寬限天數(shù),系統(tǒng)將不再讓此賬戶登陸,也不會(huì)提示賬戶過(guò)期,是完全禁用比如說(shuō),此字段規(guī)定的寬限天數(shù)是10,則代表密碼過(guò)期10天后失效;如果是0則代表密碼過(guò)期后立即失效;如果是-1則代表密碼永遠(yuǎn)不會(huì)失效
- 第八列:賬號(hào)失效時(shí)間,使用自1970年1月1日以來(lái)的總天數(shù)作為賬戶的失效時(shí)間
- 第九列:保留,未使用
4.0 chage命令
作用:修改賬號(hào)密碼的有效期,針對(duì)目前系統(tǒng)已經(jīng)存在的用戶
格式:chage 【選項(xiàng)】用戶名
常用選項(xiàng)
| 選項(xiàng) | 說(shuō)明 |
|---|---|
| -m | 密碼可更改的最小天數(shù),為零代表任何時(shí)候都可以更改密碼 |
| -M | 密碼保持有效的最大天數(shù)。chage -M 20 root |
| -W | 用戶密碼到期前,收到警告信息的天數(shù) |
| -E | 賬戶到期的日期,過(guò)了這天,此賬號(hào)將不可用 |
| -d | 上一次更改的日期 |
| -i | 停滯日期,如果一個(gè)密碼已過(guò)期這些天,那么此賬號(hào)將不可用 |
| -l | 列出當(dāng)前的設(shè)置,由非特權(quán)用戶來(lái)確定他們的密碼或賬號(hào)何時(shí)過(guò)期 |
4.1 示例:
設(shè)置用戶liang2將在2022.06.25號(hào)失效(不可登錄)
設(shè)置賬戶liang2最后一次修改密碼時(shí)間為2022.03.30

4.2 小結(jié):
- 第三個(gè)字段為:密碼最后一次修改的時(shí)間 (chage -d)
- 第四個(gè)字段為:密碼最小修改間隔時(shí)間 (chage -m)
- 第五個(gè)字段為:密碼的有效期 (chage -M)
- 第六個(gè)字段為:密碼需要變更前的警告天數(shù) (chage -W)
- 第七個(gè)字段為:密碼過(guò)期后的寬限天數(shù) (chage -I)
- 第八個(gè)字段為:賬號(hào)失效時(shí)間 (chage -E)
5.0賬號(hào)的初始設(shè)置
5.1文件來(lái)源
新建用戶帳號(hào)時(shí),從 /etc/skel 目錄中復(fù)制而來(lái),比如默認(rèn)bin/bash,默認(rèn)家目錄

主要的用戶初始配置文件 (對(duì)用戶有效)
- .bash_profile : 這個(gè)文件是為系統(tǒng)全局變量配置文件,可以通過(guò)重啟系統(tǒng)或者執(zhí)行source /etc/profile 命令使profile文件被讀取
- .bashrc: 這個(gè)文件實(shí)際上是/etc/profile的子目錄,存放的是一些應(yīng)用程序所需的啟動(dòng)腳本
- .bash_logout: 每一個(gè)允許bash shell 的用戶都會(huì)執(zhí)行此文件,可通過(guò)執(zhí)行bash命令打開(kāi)一個(gè)新的bash shell時(shí),使bashrc文件被讀取
PS:
1.修改/etc/profile文件中相關(guān)配置,切換bash或者用戶后都需要source /etc/profile才生效;
2.修改/etc/bashrc文件中相關(guān)配置,切換bash或者用戶后直接生效;
6.0 設(shè)置更改用戶命令passwd
作用:Linux passwd命令用來(lái)更改使用者的密碼
格式 :passwd 【選項(xiàng)】用戶名
常用選項(xiàng)及說(shuō)明
| 選項(xiàng) | 說(shuō)明 |
|---|---|
| -d | 清空指定用戶的密碼,僅使用用戶名即可登錄系統(tǒng) |
| -l | 鎖定用戶賬戶 |
| -S | 查看用戶賬戶的狀態(tài)(是否被鎖定) |
| -u | 解鎖用戶賬戶 |
| -i | 口令過(guò)期后多少天停用賬戶 |
| -g | 修改群組密碼 |
| -x | 指定口令最長(zhǎng)存活期 |
| -k | 更新只能發(fā)送在過(guò)期之后 |
| -w | 口令要到期提前警告的天數(shù) |
| -f | 強(qiáng)迫用戶下次登錄時(shí)必須修改口令 |
6.1 示例:
創(chuàng)建賬戶liang2,并且設(shè)置密碼

6.2 擴(kuò)展:
在實(shí)際生產(chǎn)中為了方便系統(tǒng)管理,passwd命令提供了“–stdin”選項(xiàng),用于批量給用戶設(shè)置密碼

7.0 usermod命令
作用:Linux usermod命令用于修改用戶帳號(hào)。
usermod可用來(lái)修改用戶帳號(hào)的各項(xiàng)設(shè)定
格式:usermod【選項(xiàng)】用戶名
常用選項(xiàng)及說(shuō)明
| 選項(xiàng) | 參數(shù) |
|---|---|
| -c | 修改用戶帳號(hào)的備注文字。 |
| -d | 修改用戶登入時(shí)的目錄 |
| -e | 修改帳號(hào)的有效期限 |
| -f | 修改在密碼過(guò)期后多少天即關(guān)閉該帳號(hào) |
| -g | 修改用戶所屬的群組 |
| -G | 修改用戶所屬的附加群組 |
| -l | 修改用戶帳號(hào)名稱 |
| -L | 鎖定用戶密碼,使密碼無(wú)效 |
| -s | 修改用戶登入后所使用的shell |
| -u | 修改用戶ID |
| -U | 解除密碼鎖定 |
7.1 示例:
鎖定liang2賬戶密碼,使密碼失效

初始無(wú)“!”,鎖定后出現(xiàn)“!”密碼不可用,解鎖后“!”消失密碼可用


注: usermod 更改用戶參數(shù)只能在用戶設(shè)定好之后使用
8.0 刪除用戶指令/suerdel
作用: 刪除無(wú)用用戶信息
格式: userdel [-r] 用戶名
添加-r選項(xiàng)時(shí), 表示連用戶的宿主目錄一并刪除
8.1 示例:
刪除用戶zhu

二. 用戶賬號(hào)和組賬號(hào)
Linux基于用戶身份對(duì)資源訪問(wèn)進(jìn)行控制
1.0 用戶賬號(hào)
超級(jí)用戶:root用戶是Linux操作系統(tǒng)中默認(rèn)的超級(jí)用戶賬號(hào),在本機(jī)中權(quán)限最高,只有當(dāng)進(jìn)行系統(tǒng)管理、維護(hù)任務(wù)時(shí),才建議使用root用戶登錄系統(tǒng),日常事物處理建議只使用普通賬號(hào)。
root擁有對(duì)系統(tǒng)最高的管理權(quán)限 ID=0
普通用戶:普通用戶賬號(hào)需要由root用戶或其他管理員用戶創(chuàng)建,擁有的權(quán)限受到一定限制,一般只在用戶自己的宿主目錄中擁有完整權(quán)限
程序用戶:在安裝Linux操作系統(tǒng)及部分應(yīng)用程序時(shí),會(huì)添加一些特定的低權(quán)限用戶賬號(hào),這些用戶一般不允許登錄到系統(tǒng),而僅用于維持系統(tǒng)或某個(gè)程序的正常運(yùn)行。如:ftp,apache,bin,daemon,ftp,mail等
組賬號(hào)
- 基本組(私有組):基于某種特定聯(lián)系(如都需要訪問(wèn)FTP服務(wù))將多個(gè)用戶集合在一起,即構(gòu)成一個(gè)用戶組,表示該組內(nèi)所有用戶的賬號(hào)稱為組賬號(hào)。每一個(gè)用戶賬號(hào)至少屬于一個(gè)組,這個(gè)組稱為該用的基本組(或私有組);
- 附加組(公共組):若該用戶同時(shí)還包含在其他的組中,則這些組稱為該用戶的附加組(或公共組)
2.0 組文件存放位置
/etc/group:保存組帳號(hào)基本信息
/etc/gshadow:保存組帳號(hào)的密碼信息


3.0 UID 和 GID
UID (User IDentity ,用戶標(biāo)識(shí)號(hào)):
- 每個(gè)用戶的身份標(biāo)識(shí),類似于每個(gè)人的身份證號(hào)碼
- 管理員用戶:root:0
- 系統(tǒng)用戶: 1-999(CentOS7),1-499(CentOS5,6)
GID (Group IDentify ,組標(biāo)識(shí)號(hào)):
- 管理員組:root:0
- 系統(tǒng)組:1-499(CentOS5,6),1-999(CentOS7)
- 普通組:500+(CentOS5,6),1000+(CentOS7)
- 默認(rèn)行為當(dāng)你創(chuàng)建一個(gè)新用戶時(shí)會(huì)自動(dòng)創(chuàng)建一個(gè)和之同名的主組
3.1 如何查看用戶的UID ,GID和組
示例:查看用戶liang的UID,GID和組id liang

**小結(jié):**用戶和組的關(guān)系:用戶是員工,組是職位,人只有一個(gè),但可以身兼數(shù)職
4.0 組賬號(hào)管理
4.1 添加組賬號(hào)命令groupadd
格式: groupadd【-g GID】組賬號(hào)名
示例:
創(chuàng)建GID為1009的chirou

4.2 擴(kuò)展:
1.檢索root組包含那些用戶

2.檢索那些組包含root用戶

4.3 添加,設(shè)置,刪除組成員/gpasswd
格式: gpasswd 【選項(xiàng)】源賬戶 目標(biāo)組
常用選項(xiàng)說(shuō)明
| 選項(xiàng) | 說(shuō)明 |
|---|---|
| -a | 添加用戶到組 |
| -d | 從組中刪除用戶 |
| -A | 指定用戶管理員 |
| -M | 指定組成員和-A差不多 |
| -r | 刪除密碼 |
| -R | 限制用戶登入組,只有組中成員才可以用newgrp加入該組 |
4.3.1 示例:
將用戶liang2加入到組chirou中

將liang2從chirou組中刪除

5.0 查詢帳號(hào)信息
5.1 finger命令
作用:查詢用戶的帳號(hào)的詳細(xì)信息
格式:finger 【用戶名】
示例:查詢用戶liang2的信息

5.2 w,who.users命令
作用:查詢已登錄到主機(jī)的用戶命令
示例:
5.2.1 w

通常使用tty來(lái)簡(jiǎn)稱各種類型的終端設(shè)備,Centos7系統(tǒng),tty1表示圖形界面,tty2-tty6表示文字界面,可以用Ctrl+Alt+F1-F6切換。
按Ctr1+A1t+F2登陸,執(zhí)行w命令,查看使用的終端就是ttv2
- User: 登錄用戶名
- TTY: 登錄后系統(tǒng)分配的終端號(hào)
- From: 遠(yuǎn)程主機(jī)名,即從哪登錄的 loqin@:何時(shí)登錄
- IDLE: 用戶空閑時(shí)間。這是個(gè)計(jì)時(shí)器,一日用戶執(zhí)行任何操作,改計(jì)時(shí)器就會(huì)被重置。
- JCPU: 和終端連接的所有進(jìn)程占用時(shí)間,包括當(dāng)前正在運(yùn)行的后臺(tái)作業(yè)占用時(shí)間
- PCPU: 當(dāng)前進(jìn)程所占用時(shí)間
- WHAT: 當(dāng)前正在運(yùn)行進(jìn)程的命令行
- pts: 說(shuō)明是用遠(yuǎn)程工具連接的,比如:xshell,后面的數(shù)字代表登錄的時(shí)間順序,越小證明登錄的越早
5.2.2 who

5.2.3 users

三. 文件/目錄的權(quán)限和歸屬
1.0 ???????三種權(quán)限
??????????????訪問(wèn)權(quán)限
- 讀取r:允許查看文件內(nèi)容、顯示目錄列表
- 寫入w:允許修改文件內(nèi)容,允許在目錄中新建、移動(dòng)、刪除文件或子目錄
- 可執(zhí)行x:允許運(yùn)行程序、切換目錄歸屬
屬主(所有權(quán)):
- 擁有該文件或目錄的用戶帳號(hào)屬組:擁有該文件或目錄的組帳號(hào)
2.0 查看文件/目錄的權(quán)限和歸屬
示例:
ls-l 文件

結(jié)構(gòu)如下


3.0 設(shè)置文件和目錄的權(quán)限chmod
chmod命令格式:
chmod 【ugoa】 【±=】 【rwx】文件或目錄
chmod nnn 文件或目錄
符號(hào)含義
| 符號(hào) | 含義 |
|---|---|
| u | 屬主 |
| g | 屬組 |
| o | 其他用戶 |
| a | 所有用戶 |
| r | 讀 |
| w | 寫 |
| x | 運(yùn)行權(quán)限 |
| + | 增加 |
| - | 去除 |
| = | 設(shè)置權(quán)限 |
| nnn | 3位八進(jìn)制數(shù) |

3.1
示例:
創(chuàng)建77.txt文件

3.1.1.將文件77.txt去除所有人不可讀所有者可寫權(quán)限:chmod ugo-r 77.txt

3.1.2.設(shè)置所有人可讀 所有者可寫:chmod a+r 77.txt

3.1.3.文件擁有者添加可執(zhí)行操作:chmod u+x 77.txt

3.1.4.所有人只可讀 chmod 444 77.txt

常用選項(xiàng)
-R:遞歸修改指定目錄下所有子項(xiàng)的權(quán)限
4.0 權(quán)限掩碼umask
4.1 umask作用
1.控制新建的文件或者目錄的權(quán)限
2.默認(rèn)權(quán)限去除umask的權(quán)限為新建的文件夾或者目錄的權(quán)限
- umask設(shè)置: umask 002
- umask查看:umask
4.2示例:
查看當(dāng)前目錄極限掩碼umask

新建目錄laozi權(quán)限為所有人可讀可寫可執(zhí)行umask 000mkdir laozi

**注:**若想用極限掩碼創(chuàng)建目錄權(quán)限則需要先設(shè)置極限掩碼,然后再創(chuàng)建目錄才能達(dá)到要求
5.0設(shè)置目錄與文件歸屬/chown
Linux chown(英文全拼:change owner)命令用于設(shè)置文件所有者和文件關(guān)聯(lián)組的命令。
Linux/Unix 是多人多工操作系統(tǒng),所有的文件皆有擁有者。利用 chown 將指定文件的擁有者改為指定的用戶或組,用戶可以是用戶名或者用戶 ID,組可以是組名或者組 ID,文件是以空格分開(kāi)的要改變權(quán)限的文件列表,支持通配符。
chown 需要超級(jí)用戶 root 的權(quán)限才能執(zhí)行此命令。
只有超級(jí)用戶和屬于組的文件所有者才能變更文件關(guān)聯(lián)組。非超級(jí)用戶如需要設(shè)置關(guān)聯(lián)組可能需要使用 chgrp 命令。
使用權(quán)限 : root
格式:chown 【選項(xiàng)】目的屬組 源目錄
示例:將wd 目錄屬組改到root chown root wd

總結(jié)
用戶組與權(quán)限之間關(guān)系十分緊密,在日常工作中,root權(quán)限不可能隨意給予別人,但是有的文件又必須給別人更改讀寫的權(quán)利,所以這時(shí)候我們就需要設(shè)置組和目錄權(quán)限
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux配置實(shí)現(xiàn)免密鑰登錄過(guò)程解析
這篇文章主要介紹了Linux配置實(shí)現(xiàn)免密鑰登錄過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Linux centos7環(huán)境下tomcat安裝教程
這篇文章主要為大家詳細(xì)介紹了Linux centos7環(huán)境下tomcat的安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
linux的網(wǎng)絡(luò)通信和進(jìn)程間通信解讀
Linux中進(jìn)程間通信(IPC)用于同一主機(jī)的高效數(shù)據(jù)交換,網(wǎng)絡(luò)通信支持跨主機(jī)的靈活傳輸,IPC適用于本地高可靠場(chǎng)景,網(wǎng)絡(luò)通信適合分布式系統(tǒng),選擇依據(jù)為性能需求和通信范圍,混合架構(gòu)可結(jié)合Unix Domain Socket優(yōu)化效率2025-09-09
linux系統(tǒng)中使用Vim刪除偶數(shù)行或者奇數(shù)行
vim中進(jìn)行奇偶數(shù)行操作,思路很簡(jiǎn)單,就是一次匹配兩行,然后刪除奇數(shù)行,刪除偶數(shù)行或者兩行合并。下面我們來(lái)看看具體怎么操作吧2014-08-08
Centos7.3服務(wù)器搭建LNMP環(huán)境的方法
這篇文章主要介紹了Centos7.3服務(wù)器搭建LNMP環(huán)境的方法,結(jié)合實(shí)例形式分析了Centos7.3搭建LNMP環(huán)境的相關(guān)步驟、命令、使用方法及注意事項(xiàng),需要的朋友可以參考下2018-04-04
Linux 每天自動(dòng)備份mysql數(shù)據(jù)庫(kù)的方法
linux下為了安全有時(shí)候需要自動(dòng)備份mysql數(shù)據(jù)庫(kù),下面是具體的實(shí)現(xiàn)步驟。感興趣的朋友跟隨小編一起看看吧2009-09-09

