我們創(chuàng)建了3個用戶 cxf、zhouyang、zy
這3個用戶都分別在/home下面有自己對應(yīng)的家目錄(創(chuàng)建用戶的時(shí)候系統(tǒng)自動創(chuàng)建的)
這個3個家目錄的權(quán)限和所有者都是是 drwx --- ---
以cxf為例
d[rwx][---][---] 14 cxf cxf
解釋:d表示這個文件的類型是 目錄(directory)
rwx --- --- 后面的這個每三個分一組,表示 文件所有者,所有者所在的組的其他用戶,其他組用戶 對這個文件擁有的權(quán)限
[rwx] 表示文件所有有這擁有 讀(read)寫(write)執(zhí)行(x)的權(quán)限
[---] 表示和這個用戶同組的其他用戶沒有 讀寫執(zhí)行的權(quán)限(root用戶除外)
[---] 表示其他組的用戶沒有讀寫執(zhí)行的權(quán)限(root用戶除外)
第一個cxf 表示 這個文件屬于cxf用戶
第二個cxf 表示 屬于cxf組
所以當(dāng) 當(dāng)前用戶 zhouyang 要進(jìn)入/home/cxf的時(shí)候會提示Permission denied
用戶和用戶組
首先linux的所有用戶必須屬于一個用戶組,不能獨(dú)立于組外
當(dāng)我們使用
useradd test
passwd test
創(chuàng)建一個用戶,并給它設(shè)置密碼,系統(tǒng)會自動創(chuàng)建一個test用戶組,并把test用戶加入到其中。
我們也可以使用
useradd test1 -g zhouyang 或者 useradd test1 -g 1000
passwd test1
新建一個用戶,并把它加入到zhouyang這個已經(jīng)存在的用戶組中,zhouyang是這個用戶組的名稱,也可以使用gid(用戶組Id)
查看用戶組
在linux中所有的用戶組存放在文件/etc/group中
root:x:0
mail:x:12:postfix
polkitd:x:997:
cgred:x:996:
abrt:x:173:
unbound:x:995:
tss:x:59:
libstoragemgmt:x:994:
rpc:x:32:
tcpdump:x:72:
zhouyang:x:1000:
cxf:x:1001:
zy:x:1002:
上面只是這個文件的一部分
可以看到上面有我們比較熟悉的root,和我們自己創(chuàng)建的用戶組
這個文件的結(jié)構(gòu)是
組名稱:口令:組Id:組內(nèi)成員
其中口令為X表示 沒有設(shè)置口令
組內(nèi)成員 :(使用gpasswd添加的用戶會顯示在這里)可以省略,具體的組內(nèi)成員需要到/etc/passwd中查詢
關(guān)于用戶組的一些操作
- 創(chuàng)建hello用戶組,并制定gid為1010
0 表示管理員(root)
1 - 500 表示系統(tǒng)用戶
501 - 65535 表示普通用戶
groupadd hello -g 1010,如果省略-g,則系統(tǒng)自動生成gid
- 刪除用戶組,如果用戶組內(nèi)還有用戶則不能刪除
groupdel hello
- 查看用戶所屬的組
一個用戶可以屬于多個組,但是會有主組和附加組之分
groups 用戶名稱:顯示用戶所在的用戶組(包括主組和附加組)
id 用戶名稱:顯示用戶的id,gid表示所屬的主組 ,groups表示所有的組(包括主組和附加組)
- 把已有用戶添加到用戶組或者從用戶組刪除。
注意刪除的時(shí)候只能刪除附加組,不能刪除用戶的主組,如果要修改用戶的主組,需要其他命令。
添加
gpasswd -a 用戶名 組名
刪除
gpasswd -d 用戶名 組名
- 修改組信息
修改組名稱
groupmod -n newname oldname
修改組Id
group -g ngid gname
- 臨時(shí)修改主組
如果一個用戶屬于多個用戶組,但是他在組級別的權(quán)限是和他的主組一樣的。當(dāng)需要使用其他附加組的權(quán)限的時(shí)候,需要臨時(shí)切換一下用戶的主組,使用另一個組的權(quán)限進(jìn)行操作
newgrp 組名稱
在上面圖片中可以看到,當(dāng)前用戶test的主組為zhouyang,當(dāng)使用newgrp之后主組變成了newzy
當(dāng)退出這個用戶之后,主組又變回了zhouyang
用戶
更具上面的我們知道 用戶和用戶組之間是多對多的關(guān)系,一個用戶可以屬于多個用戶組,一個用戶組也可以包含多個用戶,Linux中存儲用戶和用戶組之間關(guān)系的文件是/etc/passwd
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
zhouyang:x:1000:1000:zhouyang:/home/zhouyang:/bin/bash
cxf:x:1001:1001::/home/cxf:/bin/bash
zy:x:1002:1009::/home/zy:/bin/bash
test:x:1003:1000::/home/test:/bin/bash
test1:x:1004:1000::/home/test1:/bin/bash
用戶名稱:用戶密碼占位:用戶Id:主組gid::用戶家目錄:用戶默認(rèn)shell
用戶的密碼文件存放在/etc/shadow中,
可以使用 man 5 shadow 和 man 5 passwd 查看這個兩個文件的說明
用戶的一些操作命令
- 添加用戶
可以通過-g指定用戶所屬的用戶組,如果不指定,則系統(tǒng)自動使用這個用戶名創(chuàng)建一個用戶組,然后把這個用戶加入到其中
useradd test123 -g zhouyang
給用戶指定密碼
passwd test123
- 修改用戶信息
修改用戶名稱
usernod -l newname oldname
修改用戶附加組
usermod -G groupName username
這里注意,如果之前用戶屬于多個用戶組(附加組),使用usermod -G修改之后,會把之前的附加組都刪除,只保留這一個
- 刪除用戶
使用-r,把用戶目錄頁一起刪除
userdel -r 用戶名