本文記錄linux系統(tǒng)用戶、組和相關(guān)設(shè)置。
用戶和用戶組
- 在 /etc/group 存儲(chǔ)當(dāng)前系統(tǒng)中的用戶組信息

注意:
- 當(dāng)該組內(nèi)只有一個(gè)用戶,并且用戶名和組名相同時(shí),在組列表中,包含用戶一列可以為空
2. 系統(tǒng)中root分組的組編號(hào)一定為0
3. 組號(hào)1~499為系統(tǒng)預(yù)留的組編號(hào),一般是預(yù)留給系統(tǒng)安裝的軟件或者服務(wù)的編號(hào),越早安裝的軟件或者服務(wù)的組編號(hào)越早。用戶手動(dòng)創(chuàng)建的用戶組編號(hào)從500開始
4. 組密碼占位符,無一例外,全部用x表示
- 在 /etc/gshadow 存儲(chǔ)當(dāng)前系統(tǒng)中用戶組的密碼信息

注意:
1. 如果組密碼處為“*” “!”或者為空時(shí)候,則該組沒有密碼
2. 如果組管理者為空,則表示該組內(nèi)所有成員都可以管理該組
- 在 /ect/passwd 存儲(chǔ)當(dāng)前系統(tǒng)中所有的用戶信息

在linux中,超級(jí)管理員root的用戶編號(hào)一定為0
- 在 /ect/shadow存儲(chǔ)當(dāng)前系統(tǒng)中所有用戶的密碼信息

密碼是一個(gè)單向加密過的字符串
擁有者(user),擁有組(group),其他人(other)
- 由于Linux是一個(gè)多人多任務(wù)的系統(tǒng),因此經(jīng)常會(huì)出現(xiàn)同一臺(tái)機(jī)器同時(shí)有多個(gè)人進(jìn)行操作,為了考慮每個(gè)人的隱私權(quán)以及每個(gè)人喜好的工作環(huán)境,所以文件的權(quán)限歸屬就至關(guān)重要。
- 為了保障系統(tǒng)的安全性和文件的隱私性,一個(gè)文件針對(duì)不同權(quán)限的賬戶有著不同的權(quán)限

- 文件權(quán)限是由一個(gè)字符串所表示,其所代表的含義為

- 文檔類型有如下表示方法: d 目錄,例如上表檔名為『.gconf』的那一行- 文檔,例如上表檔名為『install.log』那一行l(wèi) 連結(jié)檔(link file)b 裝置文件里面的可供儲(chǔ)存的接口設(shè)備(可隨機(jī)存取裝置)c 裝置文件里面的串行端口設(shè)備,例如鍵盤、鼠標(biāo)(一次性讀取裝置)。
- 權(quán)限由rwx三個(gè)字幕表示,分別表示為可讀、可寫、可執(zhí)行,如果沒有該權(quán)限,則用“ - ”表示,對(duì)于目錄來說,必須有x權(quán)限,否則無法讀取目錄內(nèi)容
- 如果文件名前面有“ . ”,則表示這個(gè)文檔或目錄是隱藏的
相關(guān)命令
查看用戶信息
id username
我當(dāng)前的命令輸出,可以查看用戶 id 、組信息:
$ id vvd
用戶id=1000(vvd) 組id=1000(vvd) 組=1000(vvd),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),120(lpadmin),132(lxd),133(sambashare),135(libvirt)
創(chuàng)建用戶
useradd xxx //創(chuàng)建一個(gè)名為xxx的用戶
該命令執(zhí)行后
- 會(huì)在/etc/passwd文件中添加xxx用戶的信息
- 會(huì)在/etc/group文件中添加一個(gè)名為xxx的用戶組信息
passwd xxx //為xxx用戶設(shè)置密碼
- useradd可以使用的參數(shù)包含:
參數(shù) |
描述 |
示例 |
-d |
設(shè)置該用戶的home目錄 |
useradd -d /home/helloworld hello //新建hello用戶,并且將其home目錄設(shè)置為/home/helloworld |
-u |
設(shè)置其userid |
useradd -u 668 hello //新建一個(gè)hello用戶,將他的id設(shè)置為668 |
-g |
設(shè)置其主組 |
useradd -g root hello //新建一個(gè)hello用戶,并將其加入root組 |
-m |
生成home目錄的文件夾 |
useradd -m hello //新建一個(gè)hello用戶,并且在默認(rèn)位置申城一個(gè)hello文件夾(/home/hello),并且將/etc/skel下的文件復(fù)制到該目錄下 |
- 正常使用時(shí)建議加入 -m 參數(shù)
useradd username -m
隨后需要指定shell,不然不便于終端操作
usermod -s /bin/bash username
- 如需要額外指定 home 以外的目錄作為家目錄
useradd username -m -d /path/to/home
修改用戶信息
- usermod 命令
usermod 參數(shù) 用戶名
參數(shù) |
描述 |
示例 |
-l |
修改新用戶名 |
usermod -l helloworld hello 將hello用戶名改為helloworld,但其home目錄不改變 |
-u |
修改用戶的userid |
usermod -u 888 hello 將hello的userid改為888 |
-d |
修改用戶的home目錄 |
usermod -d /home/new_home hello 將hello用戶的家目錄改為/home/new_home |
-g |
修改用戶的主用戶組 |
usermod -g anotherg hello 將hello用戶的組改為anotherg |
-G |
將現(xiàn)有用戶添加到輔助組(可以是多個(gè)) |
usermod [-G] [[GroupName1,GroupName2]] [UserName] / usermod -a -G mygroup user1 |
-L |
鎖定用戶,使其不能登錄 |
usermod -L hello 鎖定hello |
-U |
解除鎖定 |
usermod -U hello 解除鎖定hello |
-a |
添加 不修改之前的組 |
usermod -aG ssh hello 將hello用戶加入到ssh組內(nèi),不改變其他組 |
- gpasswd 命令
gpasswd 參數(shù) 用戶名 組名
gpasswd 命令用于管理 /etc/group 和 /etc/gshadow。每個(gè)組都可以有管理員、成員和密碼。
參數(shù) |
描述 |
示例 |
-M |
將現(xiàn)有用戶添加到次要組或者附加組 |
gpasswd -M user1 mygroup 把 user1 添加到 mygroup 中 |
-M |
添加多個(gè)用戶到次要組或附加組中 |
gpasswd -M user2,user3 mygroup1 把 user2 和 user3 添加到 mygroup1 中 |
-d |
從組中刪除一個(gè)用戶 |
gpasswd -d user1 mygroup 從 mygroup 中刪除 user1 |
刪除用戶
userdel 參數(shù) 用戶名
參數(shù) |
描述 |
示例 |
-r |
刪除用戶的同時(shí)將其home目錄也刪掉 |
userdel -r hello 將hello用戶連根刪掉 |
創(chuàng)建用戶組
groupadd 組名
修改用戶組
groupmod -n 新組名 舊組名 //修改組名
groupmod -g 新組id 舊組id 修改組ID
查看組內(nèi)成員
getent group groupname
$ getent group sudo
sudo:x:27:vvd
刪除用戶組
groupdel 組名
改變文檔(目錄)的所有者(所有組)
- 改變文檔所有者 - chown命令(change owner),可使用參數(shù) -R使得其子目錄也同時(shí)修改
- 改編文檔所有組 - chgrp命令 (change group),可使用參數(shù) -R使得其子目錄也同時(shí)修改
- 也可以使用
chown username:group 文件名
來同時(shí)修改文檔或目錄的擁有者和所在組
修改文檔的執(zhí)行權(quán)限
chmod 參數(shù) 文件名
- 可以使用如下方法直接設(shè)置文件的權(quán)限
- 可以使用如下方法直接設(shè)置文件的權(quán)限
- 直接設(shè)置代表權(quán)限的數(shù)字
chmod 777(對(duì)應(yīng)權(quán)限的數(shù)字) 文件名
- 給文件添加或減去某些權(quán)限
命令 |
描述 |
chmod u+w 文件名 |
給user用戶加上w權(quán)限 |
chmod g-r 文件名 |
將group中的r權(quán)限去掉 |
chmod a+x 文件名 |
給user、group、other全部加上x權(quán)限 |
錯(cuò)誤記錄
用戶登錄報(bào)錯(cuò)
- 登錄時(shí)報(bào)錯(cuò):
/usr/bin/xauth: file /home/user/.Xauthority does not exist
- 錯(cuò)誤原因: 添加用戶時(shí)沒有授權(quán)對(duì)應(yīng)的目錄,僅僅執(zhí)行了useradd user而沒有授權(quán)對(duì)應(yīng)的家目錄
- 直接解決辦法如下(執(zhí)行如下命令,以后就登錄到終端上就不會(huì)出現(xiàn)上面的錯(cuò)誤信息):
chown username:username -R /home/user_dir