一、用戶和用戶組
用戶和用戶組管理,顧名思義就是添加用戶和用戶組、更改密碼和設(shè)定權(quán)限等操作。
Linux用戶和組的關(guān)系
用戶和用戶組的對(duì)應(yīng)關(guān)系有以下 4 種:
一對(duì)一:一個(gè)用戶可以存在一個(gè)組中,是組中的唯一成員;
一對(duì)多:一個(gè)用戶可以存在多個(gè)用戶組中,此用戶具有這多個(gè)組的共同權(quán)限;
多對(duì)一:多個(gè)用戶可以存在一個(gè)組中,這些用戶具有和組相同的權(quán)限;
多對(duì)多:多個(gè)用戶可以存在多個(gè)組中,也就是以上 3 種關(guān)系的擴(kuò)展。
Linux 系統(tǒng)中,每個(gè)用戶的 ID 細(xì)分為 2 種,分別是用戶 ID(User ID,簡(jiǎn)稱 UID)和組 ID(Group ID,簡(jiǎn)稱 GID)。
每個(gè)文件都有自己的擁有者 ID 和群組 ID,當(dāng)顯示文件屬性時(shí),系統(tǒng)會(huì)根據(jù) /etc/passwd 和 /etc/group 文件中的內(nèi)容,分別找到 UID 和 GID 對(duì)應(yīng)的用戶名和群組名,然后顯示出來(lái)。
二、用戶類型
用戶分類3種:超級(jí)用戶(root)、系統(tǒng)用戶、普通用戶。
超級(jí)用戶的用戶名為root,它具有一切操作權(quán)力,因此為安全起見(jiàn),建議不要輕易的在root賬戶下面對(duì)文件進(jìn)行操作。在Linux操作系統(tǒng)的字符界面,root賬戶的提示符為#,且默認(rèn)情況下,root用戶的UID為0。
系統(tǒng)用戶是Linux系統(tǒng)正常工作所必需的內(nèi)建的用戶,一般是用于管理服務(wù)所用。系統(tǒng)用戶不能用來(lái)登陸,如bin、daemon、lp等用戶。系統(tǒng)用戶的UID一般為1~499,它們的shell為/sbin/nologin。
普通用戶是為了讓使用者能夠使用Linux系統(tǒng)資源而建立的,用戶新建的賬號(hào)一般就是普通賬號(hào)。在Linux操作系統(tǒng)的字符界面,普通用戶的提示符為$,且普通用戶的UID默認(rèn)為1000~60000。
su是最簡(jiǎn)單的用戶切換命令,通過(guò)該命令可以實(shí)現(xiàn)任何身份的切換,包括從普通用戶切換為 root 用戶、從 root 用戶切換為普通用戶以及普通用戶之間的切換。
與用戶有關(guān)的文件是:
/etc/passwd(用戶賬戶文件,所有賬戶都可以訪問(wèn))總計(jì)7段,格式為如下:
用戶名:密碼:UID:GID:賬戶信息:賬戶目錄:Shell版本
/etc/shadow(用戶密碼文件,root才可以訪問(wèn)),總計(jì)9段,格式如下:
用戶名:密碼:最后一次修改時(shí)間的天數(shù):兩次修改密碼最小間隔天數(shù):多少天后需要再次修改密碼:從發(fā)出警告到密碼正式失效的天數(shù):禁止登陸前用戶名還有效的天數(shù):用戶被禁止登陸的時(shí)間:標(biāo)志字段,無(wú)意義
注意:shadow中,密碼字段為*表示用戶被禁止登陸,為"!!"表示用戶為設(shè)置密碼,為"!"表示用戶被鎖定。
passwd的密碼為影子密碼用X表示,而shadow中為加密后保存的密文。
與用戶組有關(guān)的文件是:
/etc/group(用戶組文件,所有賬戶都可以訪問(wèn)),總計(jì)4段,格式如下:
用戶組名稱:組密碼:GID:組成員
/etc/gshadow(用戶組密碼文件,root權(quán)限才可以訪問(wèn))總計(jì)4段,格式如下:
用戶組名稱:組密碼:組管理者:組成員
# 顯示用戶信息
[root@localhost ~]# id
uid=0(root) gid=0(root) 組=0(root) 環(huán)境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@localhost ~]# su -
上一次登錄:五 11月 1 21:12:05 CST 2019從 192.168.56.1pts/0 上
[root@localhost ~]# ls /etc/passwd
/etc/passwd
[root@localhost ~]# ls /etc/group
/etc/group
[root@localhost ~]# ls /etc/gshadow
/etc/gshadow
# 顯示當(dāng)前用戶
[root@localhost ~]# whoami
root
# 顯示登錄用戶登錄名、tty、登錄日期和時(shí)間
[root@localhost ~]# who
root pts/0 2019-11-01 21:12 (192.168.56.1)
# 執(zhí)行這項(xiàng)指令可得知目前登入系統(tǒng)的用戶有哪些人,以及他們正在執(zhí)行的程序
[root@localhost ~]# w
21:23:36 up 16 min, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.56.1 21:12 0.00s 0.15s 0.03s w
# 添加用戶
[root@localhost ~]# adduser admin
# 添加密碼
[root@localhost ~]# passwd admin
更改用戶 admin 的密碼 。
新的 密碼:
# 只刪除用戶
[root@localhost ~]# userdel admin
# 連同用戶主目錄一塊刪除
[root@localhost ~]# userdel -r admin
su 和 su - 的區(qū)別
注意,使用 su 命令時(shí),有 - 和沒(méi)有 - 是完全不同的,- 選項(xiàng)表示在切換用戶身份的同時(shí),連當(dāng)前使用的環(huán)境變量也切換成指定用戶的。我們知道,環(huán)境變量是用來(lái)定義操作系統(tǒng)環(huán)境的,因此如果系統(tǒng)環(huán)境沒(méi)有隨用戶身份切換,很多命令無(wú)法正確執(zhí)行。
adduser和useradd的區(qū)別?
adduser: 會(huì)自動(dòng)為創(chuàng)建的用戶指定主目錄、系統(tǒng)shell版本,會(huì)在創(chuàng)建時(shí)輸入用戶密碼。
useradd:需要使用參數(shù)選項(xiàng)指定上述基本設(shè)置,如果不使用任何參數(shù),則創(chuàng)建的用戶無(wú)密碼、無(wú)主目錄、沒(méi)有指定shell版本。
四、權(quán)限
- 權(quán)限簡(jiǎn)介
??所謂權(quán)限管理,其實(shí)就是指對(duì)不同的用戶,設(shè)置不同的文件訪問(wèn)權(quán)限,包括對(duì)文件的讀、寫(xiě)、刪除等,在 Linux 系統(tǒng)中,每個(gè)用戶都具有不同的權(quán)限,拿非 root 用戶來(lái)說(shuō),它們只能在自己的主目錄下才具有寫(xiě)權(quán)限,而在主目錄之外,只具有訪問(wèn)和讀權(quán)限。
??Linux下文件的權(quán)限類型一般包括讀,寫(xiě),執(zhí)行。對(duì)應(yīng)字母為 r、w、x。
??Linux下權(quán)限的粒度有 擁有者 、群組 、其它組 三種。每個(gè)文件都可以針對(duì)三個(gè)粒度,設(shè)置不同的rwx(讀寫(xiě)執(zhí)行)權(quán)限。通常情況下,一個(gè)文件只能歸屬于一個(gè)用戶和組, 如果其它的用戶想有這個(gè)文件的權(quán)限,則可以將該用戶加入具備權(quán)限的群組,一個(gè)用戶可以同時(shí)歸屬于多個(gè)組。
??Linux上通常使用chmod命令對(duì)文件的權(quán)限進(jìn)行設(shè)置和更改。 - 更改文件權(quán)限 (chmod命令)
語(yǔ)法格式為 :
chmod <abc> file...
# 查看文件權(quán)限U(用戶)G(組)O(其它用戶)
[root@localhost ~]# ls -al
總用量 28
dr-xr-x---. 2 root root 135 11月 1 21:06 .
dr-xr-xr-x. 17 root root 224 11月 1 20:52 ..
-rw-------. 1 root root 1262 11月 1 20:55 anaconda-ks.cfg
-rw-------. 1 root root 8 11月 1 21:06 .bash_history
-rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 12月 29 2013 .bashrc
-rw-r--r--. 1 root root 100 12月 29 2013 .cshrc
-rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc
# 設(shè)置所有人可讀
[root@localhost ~]# touch a.txt
[root@localhost ~]# chmod ugo+r a.txt
[root@localhost ~]# ls -l a.txt
-rw-r--r--. 1 root root 0 11月 1 21:40 a.txt
- 更改文件擁有者(chown命令)
linux/Unix 是多人多工作業(yè)系統(tǒng),每個(gè)的文件都有擁有者(所有者),如果我們想變更文件的擁有者(利用 chown 將文件擁有者加以改變),一般只有系統(tǒng)管理員(root)擁有此操作權(quán)限,而普通用戶則沒(méi)有權(quán)限將自己或者別人的文件的擁有者設(shè)置為別人。
語(yǔ)法格式:
chown [可選項(xiàng)] user[:group] file...
# 將目前目錄下的所有文件與子目錄的擁有者皆設(shè)為admin,組體的使用者admin:
[root@localhost ~]# chown admin a.txt
十位權(quán)限表示:
常見(jiàn)的權(quán)限表示形式有:
-rw------- (600) 只有擁有者有讀寫(xiě)權(quán)限。
-rw-r--r-- (644) 只有擁有者有讀寫(xiě)權(quán)限;而屬組用戶和其他用戶只有讀權(quán)限。
-rwx------ (700) 只有擁有者有讀、寫(xiě)、執(zhí)行權(quán)限。
-rwxr-xr-x (755) 擁有者有讀、寫(xiě)、執(zhí)行權(quán)限;而屬組用戶和其他用戶只有讀、執(zhí)行權(quán)限。
-rwx--x--x (711) 擁有者有讀、寫(xiě)、執(zhí)行權(quán)限;而屬組用戶和其他用戶只有執(zhí)行權(quán)限。
-rw-rw-rw- (666) 所有用戶都有文件讀、寫(xiě)權(quán)限。
-rwxrwxrwx (777) 所有用戶都有讀、寫(xiě)、執(zhí)行權(quán)限。
關(guān)于第一位最高位的解釋: 上面我們說(shuō)到了權(quán)限表示中后九位的含義,剩下的第一位代表的是文件的類型,類型可以是下面幾個(gè)中的一個(gè):
d代表的是目錄(directroy)
-代表的是文件(regular file)
s代表的是套字文件(socket)
p代表的管道文件(pipe)或命名管道文件(named pipe)
l代表的是符號(hào)鏈接文件(symbolic link)
b代表的是該文件是面向塊的設(shè)備文件(block-oriented device file)
c代表的是該文件是面向字符的設(shè)備文件(charcter-oriented device file)
后九位解析:我們知道Linux權(quán)限總共有三個(gè)屬組,這里我們給每個(gè)屬組使用三個(gè)位置來(lái)定義三種操作(讀、寫(xiě)、執(zhí)行)權(quán)限,合起來(lái)則是權(quán)限的后九位。 上面我們用字符表示權(quán)限,其中 -代表無(wú)權(quán)限,r代表讀權(quán)限,w代表寫(xiě)權(quán)限,x代表執(zhí)行權(quán)限。
- 置了用戶創(chuàng)建文件的默認(rèn)權(quán)限
語(yǔ)法:
umask: usage: umask [-p] [-S] [mode]
-p:打印當(dāng)前umask值
-S:顯示當(dāng)前掩碼
mode:設(shè)置為umask值
系統(tǒng)管理員必須要為你設(shè)置一個(gè)合理的 umask值,以確保你創(chuàng)建的文件具有所希望的缺省權(quán)限,防止其他非同組用戶對(duì)你的文件具有寫(xiě)權(quán)限。
[root@localhost ~]# umask
0022
# 修改umask 值
[root@localhost ~]# umask 022
[root@localhost ~]# umask -S
u=rwx,g=rx,o=rx
顯然O 用戶缺省w 權(quán)限,即默認(rèn)創(chuàng)建文件或文件夾時(shí),缺省O中的w 權(quán)限。只不過(guò)創(chuàng)建文件時(shí),默認(rèn)都不會(huì)給x的權(quán)限,而創(chuàng)建文件夾時(shí)是默認(rèn)給x權(quán)限。