不得不会的linux账号与权限管理
文章目錄
- 一、管理用戶賬號
- 1.1用戶賬號概述
- 1.1.1用戶賬號的分類
- 1.1.2用戶標識UID (User IDentity ,用戶標識號)
- 1.1.3用戶賬號文件
- 1.2用戶賬號管理
- 1.2.1 添加用戶賬號 —useradd
- 1.2.2用戶賬號的初始配置
- 1.2.3設置/更改用戶口令—passwd命令
- 1.2.4修改用戶賬號屬性—usermod命令
- 1.2.5刪除用戶賬號—userdel命令**
- 二、管理組賬號
- 2.1組賬號概述
- 2.1.1組賬號的分類
- 2.1.2組標識GID( Group IDentifi,組標識號 )
- 2.1.3組賬號文件
- 2.2組賬號管理
- **2.2.1添加組賬號—groupadd**命令
- 2.2.2添加、設置、刪除組成員—groupwd命令
- 2.2.3刪除組賬號—groupdel
- 2.3查詢賬號信息
- 2.3.1查詢用戶賬號所屬組—groups命令
- 2.3.2查詢用戶賬號身份標識—id命令
- 2.3.3查詢用戶賬號的登錄屬性—finger命令
- 2.3.4查詢當前主機的用戶登錄情況—w命令、who命令、
- 2.3.4顯示 當前登錄系統的所有用戶的用戶列表 — users
- 三.文件/目錄的權限及歸屬
- 3.1 查看文件/目錄的權限和歸屬
- 3.2 設置文件/目錄的權限和歸屬
- 3.2.1 設置文件/目錄權限 — chmod
- 3.2.2設置文件/目錄歸屬 — chown/chgrp
- 3.3unmask應用
- 3.2.2設置文件/目錄歸屬 — chown/chgrp
- 3.3unmask應用
一、管理用戶賬號
1.1用戶賬號概述
1.1.1用戶賬號的分類
1.1.2用戶標識UID (User IDentity ,用戶標識號)
- root用戶賬號的UID固定值0
- 程序用戶賬號的UID默認為Centos5,6: 1~499,Centos7: 1~ 999
- 普通用戶的UID默認為Centos5, 6: 500~ 65535,Centos7: 1000~ 65535
1.1.3用戶賬號文件
-
作用:保存用戶名稱、宿主自錄、登錄Sell等基本信息,每一行對應一個用戶的帳號記錄
-
文件位置:
- /etc/passwd :保存用戶名稱、宿主自錄、登錄Sell等基本信息
- /etc/shadow:保存用戶的賬號、密碼等有效信息
-
/etc/passwd
- 每一行對應一個用戶的帳號記錄
-
基于系統運行和管理需要,所有用戶都可以訪問passwd文件中的內容,但是只有root用戶才能進行更改。在早期的UNIX操作系統中,用戶帳號的密碼信息是保存在passwd文件中的,不法用戶可以很容易的獲取密碼字串并進行暴力破解,因此存在一 定的安全隱患。后來經改進后,將密碼轉存入專門的shadow文件中, 而passwd文件中僅保留密碼占位符“x”。
- 某條記錄格式:root:x:0:0:root:/root:/bin/bash
- 字段1:用戶帳號的名稱
- 字段2:用戶密碼占位符“x”
- 字段3:用戶帳號的UID號
- 字段4:所屬基本組帳號的GID號
- 字段5:用戶全名
- 字段6:宿主目錄
- 字段7:登錄Shell信息( /bin/bash為可登陸系統,/sbin/nologin和/bin/false為禁 用戶登陸系統)
-
/etc/shadow
-
每一行對應一個用戶的密碼記錄。 默認只有root用戶能夠讀取文件中的內容,而不允許直接編輯該文件中的內容。
-
某條格式:
-
1.2用戶賬號管理
1.2.1 添加用戶賬號 —useradd
- 格式:useradd [選項]... 用戶名
-
使用useradd添加賬戶完成以下任務:
- 在/etc/passwd文件和/etc/ shadow文件的末尾增加該用戶賬號的記錄。
- 若未明確指定用戶的宿主目錄,則在/home目錄下自動創建與該用戶賬號同名的宿主目錄,并在該目錄中建立用戶的各種初始配置文件。
- 若沒有明確指定用戶所屬的組,則自動創建與該用戶賬號同名的基本組賬號,組賬號的記錄信息將保存到/etc/group和/etc/gshadow文件中。
-
常用選項:
選項作用 -u 指定用戶的UID號,要求該UID號碼未被其他用戶使用 -d 指定用戶的宿主目錄位置(當與-M一起使用時,不生效)只能用絕對路徑指定目錄,且不需要事先創建目錄 -e 指定用戶的賬戶失效時間,可使用YYYY-MM-DD的日期格式 -g 指定用戶的基本組名(或使用GID號),對應的組名必須已存在 -G 指定用戶的附加組名(或使用GID號),對應的組名必須已存在 -M 不建立宿主目錄。(一般用于系統用戶賬號) -s 指定用戶的登錄Shell,(比如/bin/bash為可登陸系統,Isbin/nologin和/bin/false為禁止用戶登陸系統)
示例:
[root@yxp ~]# useradd red //添加名為red的用戶 [root@yxp ~]# tail -1 /etc/passwd red:x:1004:1004::/home/red:/bin/bash //顯示/etc/passwd 末尾一行,看有沒有添加成功 [root@yxp ~]# tail -1 /etc/shadow red:!!:18873:0:99999:7::: //顯示/etc/shadow 末尾一行 [root@yxp home]# ls red susan test test1 test2 yxp //可以看到red家目錄在/home [root@yxp home]# cd red [root@yxp red]# ls -a . .. .bash_logout .bash_profile .bashrc .mozilla //都是隱藏文件 [root@yxp red]# ls -A .bash_logout .bash_profile .bashrc .mozilla [root@localhost ~]# useradd -u 2000 test1 //添加名為test1,UID號為2000的普通用戶 [root@localhost ~]# id test1 uid=2000(test1) gid=2000(test1) 組=2000(test1) //可以看到UID變成了2000,GID默認和UID一致 [root@localhost opt]# useradd -d /opt/rr test2 //添加名為test2,并指定宿主目錄位置在/opt/rr下 [root@localhost opt]# tail -2 /etc/passwd //顯示/etc/passwd 末尾2行 test1:x:2000:2000::/home/test1:/bin/bash test2:x:2001:2001::/opt/rr:/bin/bash //可以看到test2用戶的宿主目錄在/opt/rr下 [root@localhost opt]# useradd -e 2021-9-5 test3 //添加普通用戶名稱為test3 [root@localhost opt]# tail -1 /etc/shadow test3:!!:18874:0:99999:7::18875: //顯示/etc/passwd 末尾2行,可以看到字段8:帳號失效時間是18875,從1970年后的18875天 [root@localhost opt]# useradd -g test1 kyky //添加普通用戶名稱為kyky,指定用戶的基本組名test1,指定的屬組必須存在 [root@localhost opt]# id kyky uid=2002(kyky) gid=2000(test1) 組=2000(test1) //可以看到屬組添加成功 [root@localhost opt]# tail -1 /etc/passwd kyky:x:2003:2000::/home/kyky:/bin/bash //GID組號變成2000,如果不指定,默認是和UID一樣為2003 [root@localhost opt]# useradd -G test2 kyky1 //添加普通用戶名稱為kyky,指定用戶的附加組名test2,指定的屬組必須存在 [root@localhost opt]# id kyky1 uid=2003(kyky1) gid=2003(kyky1) 組=2003(kyky1),2001(test2) [root@localhost opt]# cd /home/ [root@localhost home]# useradd -M test3 //添加名為test3的用戶,但是不創建宿主目錄 [root@localhost home]# ls kyky kyky1 test1 user11.2.2用戶賬號的初始配置
-
文件來源
新建用戶帳號時,從**/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或者用戶后直接生效;
1.2.3設置/更改用戶口令—passwd命令
-
root用戶可以指定用戶名作為參數,對指定賬號的密碼進行管理;不指定用戶名時,修改當前賬號的密碼。
-
普通用戶卻只能執行單獨的“passwd"命令修改自己的密碼。
-
格式
passwd 用戶名 例如: [root@yxp red]# passwd red 更改用戶 red 的密碼 。 新的 密碼: 重新輸入新的 密碼: passwd:所有的身份驗證令牌已經成功更新。- 注意:密碼不得小于8個字符,不設置密碼,有兩個“!!”,不可以正常登陸,設了密碼才可以
- 注意:密碼不得小于8個字符,不設置密碼,有兩個“!!”,不可以正常登陸,設了密碼才可以
- 常用選項(只有超級用戶可以使用選項):
| -d | 清空指定用戶的密碼,僅使用用戶名即可登錄系統 |
| -l | 鎖定用戶賬戶,鎖定的用戶賬號將無法再登錄系統。(一定要事先設好密碼) |
| -S | 查看用戶賬戶的狀態(是否被鎖定)。 |
| -u | 解鎖用戶賬戶 |
1.2.4修改用戶賬號屬性—usermod命令
格式:usermod [選項]... 用戶名- 常用選項:
| -u | 修改用戶的UID號 |
| -d | 修改用戶的宿主目錄位置 |
| -e | 修改用戶的賬戶失效時間,可使用YYYY–MM-DD的日期格式 |
| -g | 修改用戶的基本組名(或使用GID號) |
| -G | 修改用戶的附加組名(或使用GID號) |
| -M | 不建立宿主目錄,即使/etc/login.defs系統配置中已設定要建立宿主目錄 |
| -s | 指定用戶的登錄Shell |
| 以上上面選項與useradd命令中的含義相同 | |
| -l | 更改用戶賬號的登錄名稱 格式:usermod -l 新名稱 舊名稱 |
| -L | 鎖定用戶賬戶 |
| -u | 解鎖用戶賬戶 |
1.2.5刪除用戶賬號—userdel命令**
格式: userdel [-r] 用戶名 //結合-r可以刪除宿主目錄 [root@yxp red]# userdel test1 //刪除用戶,此時家目錄里的宿主目錄不會被刪除,結合-r可以一次性刪除 [root@yxp red]# ls -a /home . .. red susan test test1 test2 yxp [root@yxp red]# rm -rf test1 [root@yxp red]# ls -a /home . .. red susan test test1 test2 yxp [root@yxp red]# [root@localhost home]# cd /home/ [root@localhost home]# ls kyky kyky1 kyky5 test1 user1 [root@localhost home]# userdel -r kyky5 //結合-r可以一次性刪除家目錄下的宿主目錄 [root@localhost home]# ls kyky kyky1 test1 user1二、管理組賬號
2.1組賬號概述
2.1.1組賬號的分類
- 基本組(私有組): 基本組賬號只有一個,一般為創建用戶時指定的組。在/etc/passwd文件中第4段記錄的即為該用戶的基本組GID號。
- 附加組(公共組): 用戶除了基本組以外,額外添加指定的組。
2.1.2組標識GID( Group IDentifi,組標識號 )
- root用戶賬號的GID固定值0
- 程序用戶賬號的GID默認為Centos5,6: 1~499,Centos7: 1~ 999
- 普通用戶的GID默認為Centos5, 6: 500~ 65535,Centos7: 1000~ 65535
2.1.3組賬號文件
-
文件位置:
- /etc/group:保存組帳號基本信息
- /etc/gshadow:保存組帳號的密碼信息
- 字段1:組帳號的名稱
- 字段2: 占位符“x”
- 字段3:組賬號的GID號
- 字段4:組賬號包含的用戶成員(一般不包括基本組對應的用戶帳號),多個成員之間以逗號“,"分隔
示例:
2.2組賬號管理
2.2.1添加組賬號—groupadd命令
-
格式:
groudadd [-g GID] 組賬號名 -
示例:
[root@yxp ~]# groupadd -g 1800 admin //添加一個組號1800名稱為admin的組 [root@yxp ~]# tail -2 /etc/group //查看末尾兩行組號信息 red:x:1004: admin:x:1800: //添加成功
2.2.2添加、設置、刪除組成員—groupwd命令
==設置組賬號密碼,但是該功能極少使用,實際上更多的管理用戶成員、添加/刪除組成員
- - 格式: gpasswd [選項]...組賬號名
-
常用選項:
選項作用 -a 向組內添加一個用戶 -d 從組內刪除一個用戶成員 -M 定義組成員列表,以逗號分隔**(重新定義,不是追加)**
示例1:
示例2:
2.2.3刪除組賬號—groupdel
格式:groupdel 組賬號名示例:
2.3查詢賬號信息
2.3.1查詢用戶賬號所屬組—groups命令
格式:groups [用戶名] 示例: [root@yxp ~]# groups user1 user1 : user1 mask2.3.2查詢用戶賬號身份標識—id命令
格式:id [用戶名] 示例:[root@yxp ~]# id user2 uid=1007(user2) gid=1007(user2) 組=1007(user2),2000(mask)2.3.3查詢用戶賬號的登錄屬性—finger命令
PS:需要先安裝finger安裝包 格式:finger [用戶名] 示例: [root@yxp ~]# finger yxp Login: yxp Name: yxp Directory: /home/yxp Shell: /bin/bash Last login 五 9月 3 11:12 (CST) on pts/0 No mail. No Plan.2.3.4查詢當前主機的用戶登錄情況—w命令、who命令、
w [選項] 用戶名-
第一行信息輸出內容包含的信息說明如下:
- 23:16:26 ——當前系統時間.
- up 1 day——系統運行時長.
- 4 users ——登錄用戶數.
- load average: 0.00 0.01, 0.05 ——系統過去1,5,15分鐘的平均負載信息。平均系統負載是對當前正在運行或正在等待磁盤I/O的作業數的度量。 它基本上告訴您系統在給定間隔內的繁忙程度。
-
第二行信息包括如下字段說明:
- USER ——登錄用戶名.
- TTY ——登錄用戶使用的終端名.
- FROM ——登錄用戶來源的主機名或IP地址.
- LOGIN@ ——用戶登錄時長.
- IDLE —— 自用戶上一次與終端進行交互以來的空閑時間.
- JCPU ——附加到tty的所有進程使用的時間.
- PCPU ——用戶當前進程所用的時間。 顯示在“ WHAT”字段中的那個.
- WHAT —— 用戶當前的進程及選項/參數。
2.3.4顯示 當前登錄系統的所有用戶的用戶列表 — users
三.文件/目錄的權限及歸屬
? 在Linux文件系統的安全模型中,為系統中的文件賦予了兩個屬性:訪問權限和文件所有者,簡稱**“權限”和“歸屬”**。其中訪問權限包括讀取、寫入、可執行三種基本類型,歸屬包括屬主(擁有該文件的用于賬號)、屬組(擁有該文件的組賬號)。Linux系統根據文件和目錄的訪問權限、歸屬來對用戶訪問數據的過程進行控制。
3.1 查看文件/目錄的權限和歸屬
[yxp@yxp root]$ ll /etc/passwd -rw-r--r--. 1 root root 2387 9月 3 22:57 /etc/passwd- 在上述輸出信息中,第3、4個字段的數據分別表示該文件的屬主、屬組,上面的"/etc/passwd"文件都屬于root用戶,root組:而第1個字段的數據表示該文件的訪問權限,如:"-rw-r–r–"。權限字段由四部分組成,各自的含義如下:
- 第一個字符:表示該文件的類型,可以是d(目錄)、b(塊設備文件)、c(字符設備文件)、“-”(普通文件)、字母“ l ”(鏈接文件)等;
- 第2~4個字符:表示該文件的屬主用戶(User)對該文件的訪問權限;
- 第5~7個字符:表示該文件的屬組內各成員用戶(Group)對該文件的訪問權限;
- 第8~10個字符:表示其他任何用戶(Other)對該文件的訪問權限;
- 第11個字符:這里的“ . ”與SELinux有關,目前不需要關注。
3.2 設置文件/目錄的權限和歸屬
3.2.1 設置文件/目錄權限 — chmod
格式: 字符形式: chmod [ugoa···][+-=][rwx] 文件... 數字形式: chmod nnn 文件/目錄...| 字符表示 | r | w | x | r | w | x | r | w | x |
| 數字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
| 權限分配 | 文件所有者 | 文件所屬組 | 其他用戶 | ||||||
| 八進制數表示 | 7 | 7 | 7 |
-
在表示屬主、屬組用戶或者其他用戶對該文件的訪問權限時,主要使用了三種不同的權限字符,權限字符也可以分別表示為八進制數字4、2、1,表示一個權限組合時需要將數字進行累加。
各自含義如下:- 讀取 r :允許查看文件的內容、顯示目錄列表
寫入 w :允許修改文件內容,允許在目錄中新建、移動、刪除文件或子目錄 - 可執行 x :允許運行程序、切換目錄。
- 讀取 r :允許查看文件的內容、顯示目錄列表
-
常用選項: -R:遞歸修改指定目錄下所有子項的權限(包括目錄中的文件
-
字符組合“[ugoa···][+ - =][rwx]”或者數字組合“nnn”的形式表示要設置的權限模式,其中“nnn”為需要設置的具體權限值,如“755”、“644”等,而“[guoa···][+ - =][rwx]”的形式中,三個組成部分的含義及用法如下所述:
- “ugoa”表示該權限設置所針對的用戶類別。“u”代表文件屬主,“g”代表文件組內的用戶,“o”代表其他任何用戶長度有用戶(ugo的總和);
- “+ - =”表示設置權限的操作動作。“+”號代表增加權限,“-”號代表減少相應權限,“=”號代表僅設置對應的權限;
- “rwx”是權限的字符組合形式,也可以拆分使用,如“r”、“rx”等。
示例:不指定ago,默認所有都設置
示例:
3.2.2設置文件/目錄歸屬 — chown/chgrp
格式: chown/chgrp 屬主 文件或目錄 chown/chgrp :屬組 文件或目錄 chown/chgrp 屬主:屬組 文件或目錄-
常用選項: -R:遞歸修改指定目錄下所有子項的權限(包括目錄中的文件)
-
示例:
3.3unmask應用
? 我們新建一個新的文件或者目錄時,它的默認權限時什么呢,這個與umask有關。
1 .unmask作用:
- 設置目錄和文件的默認權限;
- 指定目前用戶在新建文件或目錄時的權限默認值;
- 新建的文件或者目錄的權限為默認最大權限減去umask(普通文件的最大默認權限為6,目錄的最大默認權限為7)
mg-PvQ2G6ku-1630747401616)]
示例:
[外鏈圖片轉存中…(img-JaKE7YDT-1630747401617)]
3.2.2設置文件/目錄歸屬 — chown/chgrp
格式: chown/chgrp 屬主 文件或目錄 chown/chgrp :屬組 文件或目錄 chown/chgrp 屬主:屬組 文件或目錄-
常用選項: -R:遞歸修改指定目錄下所有子項的權限(包括目錄中的文件)
-
示例:
[外鏈圖片轉存中…(img-l9WuoXBE-1630747401617)]
[外鏈圖片轉存中…(img-TxDR7h1j-1630747401618)]
[外鏈圖片轉存中…(img-juJdMd97-1630747401618)]
3.3unmask應用
? 我們新建一個新的文件或者目錄時,它的默認權限時什么呢,這個與umask有關。
1 .unmask作用:
- 設置目錄和文件的默認權限;
- 指定目前用戶在新建文件或目錄時的權限默認值;
- 新建的文件或者目錄的權限為默認最大權限減去umask(普通文件的最大默認權限為6,目錄的最大默認權限為7)
總結
以上是生活随笔為你收集整理的不得不会的linux账号与权限管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 目前5G SoC 芯片技术成熟吗
- 下一篇: 基于wakeup_source的linu