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