Linux的用戶組與權(quán)限用法及說明
Linux的用戶與權(quán)限
前言 :
在Linux操作系統(tǒng)中任何文件都屬于某一特定的用戶,而任何用戶都隸屬于至少一個用戶組。
用戶是否有權(quán)限對某文件進行訪問、讀寫及執(zhí)行,受到系統(tǒng)嚴(yán)格約束。
這種清晰、嚴(yán)謹(jǐn)?shù)挠脩襞c用戶組管理系統(tǒng)在很大程度上保證了Linux系統(tǒng)的安全性。
一.賬戶管理
1.0 創(chuàng)建用戶useradd
作用:useradd 可用來建立用戶帳號。帳號建好之后,再用 passwd 設(shè)定帳號的密碼。而可用 userdel 刪除帳號。使用 useradd 指令所建立的帳號,實際上是保存在 /etc/passwd 文本文件中
格式:useradd【選項】用戶名
常用選項說明
選項 | 說明 |
---|---|
-c | 加上備注文字。備注文字會保存在passwd的備注欄位中 |
-d | 指定用戶登入時的起始目錄 |
-D | 變更預(yù)設(shè)值 |
-e | 指定帳號的有效期限 |
-f | 指定在密碼過期后多少天即關(guān)閉該帳號 |
-g | 指定用戶所屬的群組 |
-G | 指定用戶所屬的附加群組 |
-m | 自動建立用戶的登入目錄 |
-M | 不要自動建立用戶的登入目錄 |
-n | 取消建立以用戶名稱為名的群組 |
-r | 建立系統(tǒng)帳號 |
-s | 指定用戶登入后所使用的shell |
-u | 指定用戶ID |
1.1 示例
1.1.1添加一般用戶
useradd zhuang
1.1.2.為新添加的用戶添加組
useradd -g root wei
1.1.3.創(chuàng)建一個系統(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.添加一個不能登錄的賬號
注: useradd命令參數(shù)必須是在創(chuàng)建賬戶時同時輸入才有用,創(chuàng)建賬戶后無法使用useradd更改參數(shù)
2.0 用戶賬號存儲文件
作用: 保存用戶名稱,宿主目錄,登錄Shell等基本信息文件位置:/etc/passwd
2.1每一行對應(yīng)一個用戶的賬號記錄
2.2 各個字段含義如下圖,他們各自用“:”號隔開
- root:用戶名,用戶名僅是為了方便用戶記憶。Linux系統(tǒng)是通過UID來識別用戶身份,分配用戶權(quán)限。
- x:表示此用戶設(shè)有密碼,但不是真正的密碼,真正的密碼保存在/etc/shadow文件Linux系統(tǒng)把真正的加密密碼串放置在/etc/shadow文件中,此文件只有root用戶可以瀏覽和操作,最大限度地保證了密碼的安全。
補充:
注意!!!,雖然"x"并不表示真正的密碼,但也不能刪除,如果刪除了"x",那么系統(tǒng)會認(rèn)為這個用戶沒有密碼,從而導(dǎo)致只輸入用戶名而不用輸入密碼就可以登陸(只能在使用無密碼登錄,遠(yuǎn)程是不可以)。
- 0:用戶賬號的UID號。
- 0:所屬基本組賬號的GID號
- root:描述性信息,此字段只是用來解釋這個用戶的意義而已
- /root:宿主目錄,即該用戶登錄后所在的默認(rèn)工作目錄
- 注:通常稱為用戶的主(家)目錄。例如:root主目錄為/root,普通用戶odysee的主目錄為/home/ody see
- /bin/bash錄shell等信息,用戶完成登錄后使用的
3.0 用戶賬號文件/etc/shadow
作用:保存用戶的密碼,賬號有效期等信息
文件位置: /etc/shadow
3.1 每一行對應(yīng)一個用戶的密碼記錄
如圖所示:
/etc/shadow 文件只有root用戶擁有讀權(quán)限,其他用戶沒有任何權(quán)限,這樣就保證了用戶密碼的安全性
和/etc/nasswd文件一樣,文件中每行代表一個用戶,同樣使用":"作為分隔符,不同之處在于,每行用戶信息被劃分為9個字段
- 第一列:賬戶名
- 第二列:存放真正加密的密碼,采用SHA512散列算法,更加安全加密原來用MD5或DES“?。?rdquo;和“*”表示沒有密碼不能登陸,新創(chuàng)建用戶也是“??!”,如果密碼前面顯示雙感嘆號表示該賬戶被銷定了
- 第三列:上一次修改密碼的時間,從1970年1月1日開始算的,因為1970年是Linux的誕生日,date -d"1970-01-01 18983 days"可以查看哪一天改過
- 第四列:多久之后才可以修改密碼,如果是0,則密碼可以隨時修改最小修改間隔時間,也就是說該字段規(guī)定了從第三個字段(最后一次修改密碼的日期)起,多長時間之內(nèi)不能修改密碼,如果是0剛隨時修改密碼,如果是20則代表密碼修改后20天之內(nèi)不能再次修改密碼,此字段是為了針對某些人頻繁更改賬號密碼而設(shè)計的
- 第五列:密碼有效期,默認(rèn)99999(273年),表示永久生效
- 第六列:密碼到期前的第幾天發(fā)出告警信息,默認(rèn)是7天,每次登錄系統(tǒng)都會向該賬戶發(fā)出"修改密碼"的警告信息
- 第七列:密碼過期的寬限天數(shù),過期后的幾天還是可以登陸的,如果過了寬限天數(shù),系統(tǒng)將不再讓此賬戶登陸,也不會提示賬戶過期,是完全禁用比如說,此字段規(guī)定的寬限天數(shù)是10,則代表密碼過期10天后失效;如果是0則代表密碼過期后立即失效;如果是-1則代表密碼永遠(yuǎn)不會失效
- 第八列:賬號失效時間,使用自1970年1月1日以來的總天數(shù)作為賬戶的失效時間
- 第九列:保留,未使用
4.0 chage命令
作用:修改賬號密碼的有效期,針對目前系統(tǒng)已經(jīng)存在的用戶
格式:chage 【選項】用戶名
常用選項
選項 | 說明 |
---|---|
-m | 密碼可更改的最小天數(shù),為零代表任何時候都可以更改密碼 |
-M | 密碼保持有效的最大天數(shù)。chage -M 20 root |
-W | 用戶密碼到期前,收到警告信息的天數(shù) |
-E | 賬戶到期的日期,過了這天,此賬號將不可用 |
-d | 上一次更改的日期 |
-i | 停滯日期,如果一個密碼已過期這些天,那么此賬號將不可用 |
-l | 列出當(dāng)前的設(shè)置,由非特權(quán)用戶來確定他們的密碼或賬號何時過期 |
4.1 示例:
設(shè)置用戶liang2將在2022.06.25號失效(不可登錄)
設(shè)置賬戶liang2最后一次修改密碼時間為2022.03.30
4.2 小結(jié):
- 第三個字段為:密碼最后一次修改的時間 (chage -d)
- 第四個字段為:密碼最小修改間隔時間 (chage -m)
- 第五個字段為:密碼的有效期 (chage -M)
- 第六個字段為:密碼需要變更前的警告天數(shù) (chage -W)
- 第七個字段為:密碼過期后的寬限天數(shù) (chage -I)
- 第八個字段為:賬號失效時間 (chage -E)
5.0賬號的初始設(shè)置
5.1文件來源
新建用戶帳號時,從 /etc/skel 目錄中復(fù)制而來,比如默認(rèn)bin/bash,默認(rèn)家目錄
主要的用戶初始配置文件 (對用戶有效)
- .bash_profile : 這個文件是為系統(tǒng)全局變量配置文件,可以通過重啟系統(tǒng)或者執(zhí)行source /etc/profile 命令使profile文件被讀取
- .bashrc: 這個文件實際上是/etc/profile的子目錄,存放的是一些應(yīng)用程序所需的啟動腳本
- .bash_logout: 每一個允許bash shell 的用戶都會執(zhí)行此文件,可通過執(zhí)行bash命令打開一個新的bash shell時,使bashrc文件被讀取
PS:
1.修改/etc/profile文件中相關(guān)配置,切換bash或者用戶后都需要source /etc/profile才生效;
2.修改/etc/bashrc文件中相關(guān)配置,切換bash或者用戶后直接生效;
6.0 設(shè)置更改用戶命令passwd
作用:Linux passwd命令用來更改使用者的密碼
格式 :passwd 【選項】用戶名
常用選項及說明
選項 | 說明 |
---|---|
-d | 清空指定用戶的密碼,僅使用用戶名即可登錄系統(tǒng) |
-l | 鎖定用戶賬戶 |
-S | 查看用戶賬戶的狀態(tài)(是否被鎖定) |
-u | 解鎖用戶賬戶 |
-i | 口令過期后多少天停用賬戶 |
-g | 修改群組密碼 |
-x | 指定口令最長存活期 |
-k | 更新只能發(fā)送在過期之后 |
-w | 口令要到期提前警告的天數(shù) |
-f | 強迫用戶下次登錄時必須修改口令 |
6.1 示例:
創(chuàng)建賬戶liang2,并且設(shè)置密碼
6.2 擴展:
在實際生產(chǎn)中為了方便系統(tǒng)管理,passwd命令提供了“–stdin”選項,用于批量給用戶設(shè)置密碼
7.0 usermod命令
作用:Linux usermod命令用于修改用戶帳號。
usermod可用來修改用戶帳號的各項設(shè)定
格式:usermod【選項】用戶名
常用選項及說明
選項 | 參數(shù) |
---|---|
-c | 修改用戶帳號的備注文字。 |
-d | 修改用戶登入時的目錄 |
-e | 修改帳號的有效期限 |
-f | 修改在密碼過期后多少天即關(guān)閉該帳號 |
-g | 修改用戶所屬的群組 |
-G | 修改用戶所屬的附加群組 |
-l | 修改用戶帳號名稱 |
-L | 鎖定用戶密碼,使密碼無效 |
-s | 修改用戶登入后所使用的shell |
-u | 修改用戶ID |
-U | 解除密碼鎖定 |
7.1 示例:
鎖定liang2賬戶密碼,使密碼失效
初始無“!”,鎖定后出現(xiàn)“!”密碼不可用,解鎖后“!”消失密碼可用
注: usermod 更改用戶參數(shù)只能在用戶設(shè)定好之后使用
8.0 刪除用戶指令/suerdel
作用: 刪除無用用戶信息
格式: userdel [-r] 用戶名
添加-r選項時, 表示連用戶的宿主目錄一并刪除
8.1 示例:
刪除用戶zhu
二. 用戶賬號和組賬號
Linux基于用戶身份對資源訪問進行控制
1.0 用戶賬號
超級用戶:root用戶是Linux操作系統(tǒng)中默認(rèn)的超級用戶賬號,在本機中權(quán)限最高,只有當(dāng)進行系統(tǒng)管理、維護任務(wù)時,才建議使用root用戶登錄系統(tǒng),日常事物處理建議只使用普通賬號。
root擁有對系統(tǒng)最高的管理權(quán)限 ID=0
普通用戶:普通用戶賬號需要由root用戶或其他管理員用戶創(chuàng)建,擁有的權(quán)限受到一定限制,一般只在用戶自己的宿主目錄中擁有完整權(quán)限
程序用戶:在安裝Linux操作系統(tǒng)及部分應(yīng)用程序時,會添加一些特定的低權(quán)限用戶賬號,這些用戶一般不允許登錄到系統(tǒng),而僅用于維持系統(tǒng)或某個程序的正常運行。如:ftp,apache,bin,daemon,ftp,mail等
組賬號
- 基本組(私有組):基于某種特定聯(lián)系(如都需要訪問FTP服務(wù))將多個用戶集合在一起,即構(gòu)成一個用戶組,表示該組內(nèi)所有用戶的賬號稱為組賬號。每一個用戶賬號至少屬于一個組,這個組稱為該用的基本組(或私有組);
- 附加組(公共組):若該用戶同時還包含在其他的組中,則這些組稱為該用戶的附加組(或公共組)
2.0 組文件存放位置
/etc/group:保存組帳號基本信息
/etc/gshadow:保存組帳號的密碼信息
3.0 UID 和 GID
UID (User IDentity ,用戶標(biāo)識號):
- 每個用戶的身份標(biāo)識,類似于每個人的身份證號碼
- 管理員用戶:root:0
- 系統(tǒng)用戶: 1-999(CentOS7),1-499(CentOS5,6)
GID (Group IDentify ,組標(biāo)識號):
- 管理員組:root:0
- 系統(tǒng)組:1-499(CentOS5,6),1-999(CentOS7)
- 普通組:500+(CentOS5,6),1000+(CentOS7)
- 默認(rèn)行為當(dāng)你創(chuàng)建一個新用戶時會自動創(chuàng)建一個和之同名的主組
3.1 如何查看用戶的UID ,GID和組
示例:查看用戶liang的UID,GID和組id liang
**小結(jié):**用戶和組的關(guān)系:用戶是員工,組是職位,人只有一個,但可以身兼數(shù)職
4.0 組賬號管理
4.1 添加組賬號命令groupadd
格式: groupadd【-g GID】組賬號名
示例:
創(chuàng)建GID為1009的chirou
4.2 擴展:
1.檢索root組包含那些用戶
2.檢索那些組包含root用戶
4.3 添加,設(shè)置,刪除組成員/gpasswd
格式: gpasswd 【選項】源賬戶 目標(biāo)組
常用選項說明
選項 | 說明 |
---|---|
-a | 添加用戶到組 |
-d | 從組中刪除用戶 |
-A | 指定用戶管理員 |
-M | 指定組成員和-A差不多 |
-r | 刪除密碼 |
-R | 限制用戶登入組,只有組中成員才可以用newgrp加入該組 |
4.3.1 示例:
將用戶liang2加入到組chirou中
將liang2從chirou組中刪除
5.0 查詢帳號信息
5.1 finger命令
作用:查詢用戶的帳號的詳細(xì)信息
格式:finger 【用戶名】
示例:查詢用戶liang2的信息
5.2 w,who.users命令
作用:查詢已登錄到主機的用戶命令
示例:
5.2.1 w
通常使用tty來簡稱各種類型的終端設(shè)備,Centos7系統(tǒng),tty1表示圖形界面,tty2-tty6表示文字界面,可以用Ctrl+Alt+F1-F6切換。
按Ctr1+A1t+F2登陸,執(zhí)行w命令,查看使用的終端就是ttv2
- User: 登錄用戶名
- TTY: 登錄后系統(tǒng)分配的終端號
- From: 遠(yuǎn)程主機名,即從哪登錄的 loqin@:何時登錄
- IDLE: 用戶空閑時間。這是個計時器,一日用戶執(zhí)行任何操作,改計時器就會被重置。
- JCPU: 和終端連接的所有進程占用時間,包括當(dāng)前正在運行的后臺作業(yè)占用時間
- PCPU: 當(dāng)前進程所占用時間
- WHAT: 當(dāng)前正在運行進程的命令行
- pts: 說明是用遠(yuǎn)程工具連接的,比如:xshell,后面的數(shù)字代表登錄的時間順序,越小證明登錄的越早
5.2.2 who
5.2.3 users
三. 文件/目錄的權(quán)限和歸屬
1.0 ???????三種權(quán)限
??????????????訪問權(quán)限
- 讀取r:允許查看文件內(nèi)容、顯示目錄列表
- 寫入w:允許修改文件內(nèi)容,允許在目錄中新建、移動、刪除文件或子目錄
- 可執(zhí)行x:允許運行程序、切換目錄歸屬
屬主(所有權(quán)):
- 擁有該文件或目錄的用戶帳號屬組:擁有該文件或目錄的組帳號
2.0 查看文件/目錄的權(quán)限和歸屬
示例:
ls-l 文件
結(jié)構(gòu)如下
3.0 設(shè)置文件和目錄的權(quán)限chmod
chmod命令格式:
chmod 【ugoa】 【±=】 【rwx】文件或目錄
chmod nnn 文件或目錄
符號含義
符號 | 含義 |
---|---|
u | 屬主 |
g | 屬組 |
o | 其他用戶 |
a | 所有用戶 |
r | 讀 |
w | 寫 |
x | 運行權(quán)限 |
+ | 增加 |
- | 去除 |
= | 設(shè)置權(quán)限 |
nnn | 3位八進制數(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
常用選項
-R:遞歸修改指定目錄下所有子項的權(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)建目錄才能達到要求
5.0設(shè)置目錄與文件歸屬/chown
Linux chown(英文全拼:change owner)命令用于設(shè)置文件所有者和文件關(guān)聯(lián)組的命令。
Linux/Unix 是多人多工操作系統(tǒng),所有的文件皆有擁有者。利用 chown 將指定文件的擁有者改為指定的用戶或組,用戶可以是用戶名或者用戶 ID,組可以是組名或者組 ID,文件是以空格分開的要改變權(quán)限的文件列表,支持通配符。
chown 需要超級用戶 root 的權(quán)限才能執(zhí)行此命令。
只有超級用戶和屬于組的文件所有者才能變更文件關(guān)聯(lián)組。非超級用戶如需要設(shè)置關(guān)聯(lián)組可能需要使用 chgrp 命令。
使用權(quán)限 : root
格式:chown 【選項】目的屬組 源目錄
示例:將wd 目錄屬組改到root chown root wd
總結(jié)
用戶組與權(quán)限之間關(guān)系十分緊密,在日常工作中,root權(quán)限不可能隨意給予別人,但是有的文件又必須給別人更改讀寫的權(quán)利,所以這時候我們就需要設(shè)置組和目錄權(quán)限
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux 遠(yuǎn)程管理及sshd服務(wù)驗證知識點詳解
在本篇文章里小編給大家整理了一篇關(guān)于Linux 遠(yuǎn)程管理及sshd服務(wù)驗證知識點總結(jié),有需要的朋友們跟著學(xué)習(xí)參考下。2021-12-12centos6.5 編譯安裝lamp以及相關(guān)錯誤的解決方法
這篇文章主要介紹了centos6.5 編譯安裝lamp以及相關(guān)錯誤的解決方法,需要的朋友可以參考下2016-08-08VMware 12 下 Ubuntu 16.04 安裝圖文教程
這篇文章主要為大家詳細(xì)介紹了VMware 12 下 Ubuntu 16.04 安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-06-06阿里云centos7服務(wù)器搭建nginx web服務(wù)經(jīng)驗示例
本篇文章主要介紹了阿里云centos7服務(wù)器搭建nginx web服務(wù)經(jīng)驗示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08