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)建用戶也是“??!”,如果密碼前面顯示雙感嘆號(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 遠(yuǎn)程管理及sshd服務(wù)驗(yàn)證知識(shí)點(diǎn)詳解
在本篇文章里小編給大家整理了一篇關(guān)于Linux 遠(yuǎn)程管理及sshd服務(wù)驗(yàn)證知識(shí)點(diǎn)總結(jié),有需要的朋友們跟著學(xué)習(xí)參考下。2021-12-12centos6.5 編譯安裝lamp以及相關(guān)錯(cuò)誤的解決方法
這篇文章主要介紹了centos6.5 編譯安裝lamp以及相關(guān)錯(cuò)誤的解決方法,需要的朋友可以參考下2016-08-08關(guān)于Grep的多次管道過(guò)濾的問(wèn)題及解決
這篇文章主要介紹了關(guān)于Grep的多次管道過(guò)濾的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03VMware 12 下 Ubuntu 16.04 安裝圖文教程
這篇文章主要為大家詳細(xì)介紹了VMware 12 下 Ubuntu 16.04 安裝圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06阿里云centos7服務(wù)器搭建nginx web服務(wù)經(jīng)驗(yàn)示例
本篇文章主要介紹了阿里云centos7服務(wù)器搭建nginx web服務(wù)經(jīng)驗(yàn)示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08