用戶賬號和組賬號概述
用戶賬號
- 超級用戶:
root用戶是Linux作業系統中默認的超級用戶賬號,對本主機擁有至高無上的權限, - 普通用戶:需要管理員用戶創建,擁有的權限受到一定限制,一般只在用戶自己的宿主目錄中擁有完整權限,
- 程式用戶:安裝
Linux作業系統及部分應用程式時,會添加一些特定的低權限用戶賬號,這些用戶一般不允許登錄到系統,而僅用于維持系統或某個程式的正常運行,
組賬號
- 基本組:每一個用戶賬號至少屬于一個組,這個組稱為該用戶的基本組(或私有組),
- 附加組:若用戶除基本組外同時還包含在其他的組中,則這些組稱為該用戶的附加組(或公共組)
UID和GID
-
UID:Linux作業系統中的每一個用戶賬號都有一個數字形式的身份標記,稱為UID;root用戶賬號的UID號為固定值0,而程式用戶賬號的UID號默認為1~499,500~60000的UID號默認分配給普通用戶使用, -
GID:與UID類似,每一個組賬號也有一個數字形式的身份標記,稱為GID(Group IDentity,組標識號),root組賬號的GID號為固定值0,而程式組賬號的GID號默認為1~499,500~60000的GID號默認分配給普通組使用,
用戶賬戶管理
用戶賬戶檔案
-
/etc/passwd:用于保存用戶名稱、宿主目錄、登錄Shell等基本資訊, -
/etc/shadow:者用于保存用戶的密碼、賬號有效期等資訊,在這兩個組態檔中,每一行對應一個用戶賬號,不同的配置項之間使用
“:”(冒號)進行分隔,
passwd 檔案中的配置行格式
-
passwd檔案的每一行內容中包含了七個用“:”(冒號)分隔的配置欄位,每個配置欄位的含義如下:sun:x:1000:1000:sun:/home/sun:/bin/bash
| 欄位 | 含義 |
|---|---|
第1欄位:sun |
用戶賬號的名稱 |
第2欄位:x |
密碼占位符 |
第3欄位:1000 |
用戶賬號的UID號 |
第4欄位:1000 |
所屬基本組賬號的 GID 號 |
第5欄位:sun |
用戶全名 |
第6欄位:/home/sun |
宿主目錄 |
第7欄位:/bin/bash |
登錄 Shell 等資訊 |
-
shadow檔案的每一行內容中包含了九個用“:”(冒號)分隔的配置欄位,配置欄位的含義分別如下:sun:$6$ozmUzfeRN9m7...PWcx0:18117:0:99999:7:::
| 欄位 | 含義 |
|---|---|
第1欄位:sun |
用戶賬號名稱 |
第2欄位:$6$ozmU...PWcx0 |
使用哈希演算法加密的密碼字串資訊 |
第3欄位:18117 |
表示從 1970 年 01 月 01 日算起到最近一次修改密碼時間隔的天數 |
第4欄位:0 |
密碼的最短有效天數,默認值為 0,表示不進行限制, |
第5欄位:99999 |
密碼的最長有效天數 |
第6欄位:7 |
提前多少天警告用戶密碼將過期,默認值為 7, |
| 第7欄位 | 在密碼過期之后多少天內禁用此用戶, |
| 第8欄位 | 賬號失效時間,默認值為空,表示賬號永久可用, |
| 第9欄位 | 保留欄位,目前沒有特定用途, |
添加、修改、洗掉用戶賬號
useradd 命令——添加用戶賬號
-
命令格式
useradd [選項]… 用戶名... -
常用選項
| 選項 | 含義 |
|---|---|
-u |
指定用戶UID號, |
-d |
指定用戶宿主目錄位置, |
-e |
指定用戶的賬戶失效時間,可使用 YYYY-MM-DD 的日期格式, |
-g |
指定用戶的基本組 |
-G |
指定用戶的附加組 |
-M |
不建立宿主目錄 |
-s |
指定用戶的登錄shell,/bin/bash 可以登錄系統 ,/sbin/nologin 不可登錄系統 |
[root@localhost ~]# useradd -u 1008 -s /sbin/nologin siti
[root@localhost ~]# tail -3 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
sun:x:1000:1000:sun:/home/sun:/bin/bash
siti:x:1008:1008::/home/siti:/sbin/nologin
//創建siti用戶,指定UID號1008,指定用戶無法登錄系統
passwd 命令——為用戶賬號設定密碼
-
命令格式
passwd [選項]… 用戶名... -
常用選項
| 選項 | 含義 |
|---|---|
-d |
清空指定用戶的密碼 |
-l |
鎖定用戶賬戶 |
-S |
查看用戶賬戶狀態 |
-u |
解鎖用戶賬戶 |
[root@localhost ~]# passwd siti //設定siti賬戶密碼
更改用戶 siti 的密碼 ,
新的 密碼:
無效的密碼: 密碼少于 8 個字符
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新,
[root@localhost ~]# passwd -l siti //鎖定siti賬戶
鎖定用戶 siti 的密碼 ,
passwd: 操作成功
[root@localhost ~]# passwd -S siti //查看賬戶siti狀態
siti LK 2019-08-21 0 99999 7 -1 (密碼已被鎖定,)
[root@localhost ~]# passwd -u siti //解鎖siti賬戶
解鎖用戶 siti 的密碼,
passwd: 操作成功
[root@localhost ~]# passwd -S siti //查看賬戶siti狀態
siti PS 2019-08-21 0 99999 7 -1 (密碼已設定,使用 SHA512 演算法,)
usermod 命令——修改用戶賬號屬性
-
命令格式
usermod [選項]… 用戶名... -
常用選項
| 選項 | 含義 |
|---|---|
-u |
修改用戶UID號 |
-d |
修改用戶的宿主目錄位置 |
-e |
修改用戶的賬戶失效時間,可使用YYYY-MM-DD的日期格式 |
-s |
指定用戶的登錄shell |
-l |
更改用戶賬號的登錄名稱 |
-L |
鎖定用戶賬戶 |
-U |
解鎖用戶賬戶 |
[root@localhost ~]# usermod -l st11 siti //更改siti賬戶名為st11
[root@localhost ~]# tail -2 /etc/passwd //查看passwd檔案后兩行資訊
sun:x:1000:1000:sun:/home/sun:/bin/bash
st11:x:1008:1008::/home/siti:/sbin/nologin //賬戶名已更改
[root@localhost ~]# usermod -L st11 //鎖定st11用戶
[root@localhost ~]# passwd -S st11 //查看st11用戶狀態
st11 LK 2019-08-21 0 99999 7 -1 (密碼已被鎖定,)
[root@localhost ~]# usermod -U st11 //解鎖st11用戶
[root@localhost ~]# passwd -S st11 //查看st11用戶狀態
st11 PS 2019-08-21 0 99999 7 -1 (密碼已設定,使用 SHA512 演算法,)
[root@localhost ~]# usermod -s /bin/bash st11 //設定st11可以登錄系統
[root@localhost ~]# tail -2 /etc/passwd //查看passwd檔案后兩行資訊
sun:x:1000:1000:sun:/home/sun:/bin/bash
st11:x:1008:1008::/home/siti:/bin/bash //shell登錄已更改
userdel 命令——洗掉用戶賬號
-
命令格式
userdel [選項]… 用戶名... -
常用選項
| 選項 | 含義 |
|---|---|
-r |
遞回洗掉(同時洗掉宿主目錄) |
[root@localhost ~]# userdel -r st11 //洗掉st11用戶,同時洗掉宿主目錄
[root@localhost ~]# tail -2 /etc/passwd //查看passwd檔案后兩行資訊
tcpdump:x:72:72::/:/sbin/nologin
sun:x:1000:1000:sun:/home/sun:/bin/bash //st11用戶已洗掉
組賬號管理
組賬號檔案
-
/etc/group:用于保存組賬號名稱、GID號、組成員等基本資訊, -
/etc/gshadow: 用于保存組賬號的加密密碼字串等資訊(但是很少使用到),某一個組賬號包含哪些用戶成員,將會在
group檔案內最后一個欄位中體現出來(基本組對應的用戶賬號默認可能不會列出),多個組成員之間使用“,”(逗號)分隔,
添加、管理、洗掉組賬號
groupadd 命令——添加組賬號
-
命令格式
groupadd 要添加的組名稱
[root@localhost ~]# groupadd caiwu //創建caiwu組
[root@localhost ~]# tail -3 /etc/group //查看group檔案后兩行資訊
sun:x:1000:
siti:x:1008:
caiwu:x:1009: //創建的caiwu組
gpasswd 命令——添加、設定、洗掉組成員
-
命令格式
gpasswd [選項] [用戶名] [組名稱] -
常用選項
| 選項 | 含義 |
|---|---|
-a |
向組內添加一個用戶 |
-d |
從組內洗掉一個用戶成員 |
-M |
定義組成員串列,以逗號分隔(注意:當組內有已經有成員時,用此選項將覆寫原組內成員) |
[root@localhost ~]# gpasswd -a st11 caiwu //將st11加入caiwu組
正在將用戶“st11”加入到“caiwu”組中
[root@localhost ~]# tail -5 /etc/group //查看group檔案后5行資訊
sun:x:1000:
caiwu:x:1009:st11 //st11成功加入caiwu組
siti:x:1001:
si22:x:1002:
st11:x:1003:
[root@localhost ~]# gpasswd -d st11 caiwu //將st11從caiwu組中洗掉
正在將用戶“st11”從“caiwu”組中洗掉
[root@localhost ~]# tail -5 /etc/group //查看group檔案后5行資訊
sun:x:1000:
caiwu:x:1009: //st11從caiwu組中洗掉
siti:x:1001:
si22:x:1002:
st11:x:1003:
[root@localhost ~]# gpasswd -M st11,si22,siti caiwu //將st11,si22,siti添加進caiwu組
[root@localhost ~]# tail -5 /etc/group //查看group檔案后5行資訊
sun:x:1000:
caiwu:x:1009:st11,si22,siti //st11,si22,siti成功加入caiwu組
siti:x:1001:
si22:x:1002:
st11:x:1003:
groupdel 命令——洗掉組賬號
-
命令格式
groupdel 組名稱
[root@localhost ~]# groupdel caiwu //洗掉caiwu組
[root@localhost ~]# tail -5 /etc/group //查看group檔案后5行資訊
tcpdump:x:72:
sun:x:1000:
siti:x:1001:
si22:x:1002:
st11:x:1003: //caiwu組已洗掉
查詢賬戶資訊
groups 命令——查詢用戶賬號所屬的組
-
命令格式
groups 用戶名稱(當不填寫用戶名稱時默認當前用戶)
[root@localhost ~]# groups //默認查看當前賬戶所屬組
root
[root@localhost ~]# groups sun //查看sun賬戶所屬組
sun : sun wheel
id——查詢用戶賬號的身份標識
-
命令格式
id 用戶名稱(當不填寫用戶名稱時默認當前用戶)
[root@localhost ~]# id //默認查看當前用戶身份標識
uid=0(root) gid=0(root) 組=0(root) 環境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@localhost ~]# id sun //查看sun用戶身份標識
uid=1000(sun) gid=1000(sun) 組=1000(sun),10(wheel)
finger 命令——查詢用戶賬號的登錄屬性
-
命令格式
finger 用戶名稱(當不填寫用戶名稱時默認當前用戶)
[root@localhost ~]# finger //默認查看當前賬戶登錄屬性
Login Name Tty Idle Login Time Office Office Phone Host
root root pts/0 Aug 21 21:58 (192.168.144.1)
[root@localhost ~]# finger sun //查看sun賬戶登錄屬性
Login: sun Name: sun
Directory: /home/sun Shell: /bin/bash
Last login 五 8月 9 12:19 (CST) on :1
No mail.
No Plan.
w、who、users 命令——查詢當前主機的用戶登錄情況
-
命令格式
w 用戶名稱(當不填寫用戶名稱時默認當前用戶)
[root@localhost ~]# w //默認查看當前賬戶登錄情況
00:11:19 up 2:13, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.144.1 21:58 7.00s 0.36s 0.02s w
[root@localhost ~]# who //默認查看當前賬戶登錄情況
root pts/0 2019-08-21 21:58 (192.168.144.1)
[root@localhost ~]# users //默認查看當前賬戶登錄情況
root
[root@localhost ~]# w sun //查看sun賬戶登錄情況
00:11:52 up 2:14, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
檔案/目錄的權限和歸屬
訪問權限
- 讀取
r:允許查看檔案內容、顯示目錄串列 - 寫入
w:允許修改檔案內容,允許在目錄中新建、移動、洗掉檔案或子目錄 - 可執行
x:允許運行程式、切換目錄
歸屬
- 屬主:擁有該檔案或目錄的用戶帳號
- 屬組:擁有該檔案或目錄的組帳號
查看檔案/目錄的權限和歸屬
- 使用帶
“-l”選項的ls命令時,將以長格式顯示檔案或目錄的詳細資訊,其中包括該檔案的權限和歸屬等引數,
[root@localhost ~]# ls -l /etc/passwd //以長格式查看passwd檔案
-rw-r--r--. 1 root root 2218 8月 21 23:27 /etc/passwd //顯示檔案資訊
- 在上述輸出資訊中,第
3、4欄位的資料分別表示該檔案(或目錄)的屬主、屬組,上例中/etc/passwd檔案屬于root用戶、root組;而第 1 欄位的資料表示該檔案(或目錄)的訪問權限,如-rw-r--r--,權限欄位由四部分組成,各自的含義如下:
| 欄位 | 含義 |
|---|---|
| 第1字符 | 表示該檔案的型別,d目錄、c字符設備檔案、 -普通檔案、字母l鏈接檔案等, |
| 第2~4個字符 | 表示該檔案的屬主用戶對該檔案的訪問權限, |
| 第5~7個字符 | 表示該檔案的屬組內各成員用戶對該檔案的訪問權限, |
| 第8~10個字符 | 表示其他任何用戶對該檔案的訪問權限, |
| 第11個字符 | 這里的.與 SELinux 有關,目前不必關注, |
權限的數字標識形式

chmod命令——設定檔案或目錄的權限
-
命令格式
chmod [ugoa] [+-=] [rwx] 檔案或目錄...或
chmod nnn 檔案或目錄... -
[ugoa…][+-=][rwx]的形式中,三個組成部分的含義及用法如下:ugoa表示該權限設定所針對的用戶類別,u代表檔案屬主,g代表檔案屬組內的用戶,o代表其他任何用戶,a代表所有用戶(u、g、o的總和),+-=表示設定權限的操作動作,+代表增加相應權限,-代表減少相應權限,=代表僅設定對應的權限,rwx是權限的字符組合形式,也可以拆分使用,如r、rx等 -
nnn為需要設定的具體權限值,如755、644等
[root@localhost opt]# ls -l siti.txt //以長格式查看siti.txt檔案資訊
-rw-r--r--. 1 root root 0 8月 22 01:19 siti.txt
[root@localhost opt]# chmod guo+x siti.txt //設定檔案所有用戶可執行權限
[root@localhost opt]# ls -l siti.txt //以長格式查看siti.txt檔案資訊
-rwxr-xr-x. 1 root root 0 8月 22 01:19 siti.txt //檔案成功添加多有用戶可只執行權限
[root@localhost opt]# chmod 666 siti.txt //設定檔案所有用戶可讀、可寫權限
[root@localhost opt]# ls -l siti.txt //以長格式查看siti.txt檔案資訊
-rw-rw-rw-. 1 root root 0 8月 22 01:19 siti.txt //檔案成功設定權限
umask應用
umask就是默認指定目前用戶在新建檔案或目錄是的權限默認值,執行umask 022即可以設定當前用戶的默認權限,直接執行umask命令就是查看當前系統的默認權限,需要注意的是,umask的分數指的是“該默認值需要減掉的權限”,如果執行umask 022代表group和other被拿掉了權限2,也就是被拿掉了“寫”權限,如果執行命令umask 000,代表檔案的默認權限是777
[root@localhost opt]# umask 000
[root@localhost opt]# mkdir sisi
[root@localhost opt]# ls -ld sisi
drwxrwxrwx. 2 root root 6 8月 22 01:42 sisi
[root@localhost opt]# umask 022
[root@localhost opt]# mkdir sisi2
[root@localhost opt]# ls -ld sisi2
drwxr-xr-x. 2 root root 6 8月 22 01:44 sisi2
chown命令——設定目錄和檔案的歸屬
-
命令格式
chown 屬主[:[屬組]] 檔案或目錄... -
常用選項
| 選項 | 含義 |
|---|---|
-R |
遞回洗掉(同時洗掉宿主目錄) |
[root@localhost opt]# chown -R sun sisi2 //更改sisi2目錄屬主為sun
[root@localhost opt]# ls -ld sisi2 //以長格式友好查看sisi2目錄資訊
drwxr-xr-x. 2 sun root 6 8月 22 01:44 sisi2 //sisi2目錄屬主成功更改
[root@localhost opt]# chown -R :sun sisi2 //更改sisi2目錄屬組為sun
[root@localhost opt]# ls -ld sisi2 //以長格式友好查看sisi2目錄資訊
drwxr-xr-x. 2 sun sun 6 8月 22 01:44 sisi2 //sisi2目錄屬組成功更改
[root@localhost opt]# chown -R root:root sisi2 //更改sisi2目錄屬主、屬組為root
[root@localhost opt]# ls -ld sisi2 //以長格式友好查看sisi2目錄資訊
drwxr-xr-x. 2 root root 6 8月 22 01:44 sisi2 //成功更改sisi2目錄屬主、屬組資訊
補充內容
-
用戶賬號的初始組態檔
添加新的用戶賬號后
useradd命令會在用戶的宿主目錄中建立一些初始組態檔,這些檔案來自于賬號模板目錄/etc/skel/,基本上都是隱藏檔案,較常用的初始組態檔包括.bash_logout、.bash_profile、.bashrc,其中.bash_profile”檔案中的命令將在該用戶每次登錄時被執行;;.bashrc檔案中的命令會在每次加載/bin/Bash程式(當然也包括登錄系統)時執行;而.bash_logout檔案中的命令將在用戶每次退出登錄時執行,理解這些檔案的作用,可以方便我們安排一些自動運行的后臺管理任務,在
.bashrc等檔案中,可以添加用戶自己設定的可執行陳述句(如Linux命令列、腳本控制陳述句等),以便自動完成相應的任務,如果希望為所有用戶添加登錄后自動運行的命令程式、自動設定變數等,可以直接修改/etc目錄下的類似檔案,如/etc/bashrc檔案、/etc/profile檔案,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/163599.html
標籤:Linux
上一篇:Linux用戶操作及權限
