用戶身份與文件權(quán)限---su命令與sudo服務(wù)
1,su
命令
su
命令可以在當(dāng)前用戶不退出的情況下切換用戶身份
- root 管理員切換普通用戶不需要密碼驗(yàn)證
- 普通用戶切換到 root 管理員就需要進(jìn)行密碼驗(yàn)證
[root@study doc]# su - chen
Last login: Thu Dec 20 15:23:58 CST 2018 on pts/0
[chen@study ~]$ id
uid=1000(chen) gid=1000(chen) groups=1000(chen)
su
命令與用戶名之間有一個(gè)減號(hào)(-)启搂,這將完全切換為新用戶涝开,即把環(huán)境變量也變更為新用戶的相應(yīng)信息,而不保留原始信息
2,sudo
命令
sudo
命令把特定命令的執(zhí)行權(quán)限賦予給定用戶后裸,避免泄露 root 管理員密碼
sudo
服務(wù)中的可用參數(shù)以及作用
-
-h
:列出幫助信息 -
-l
:列出當(dāng)前用戶可執(zhí)行的命令 -
-u用戶名或UID值
:已指定的用戶身份執(zhí)行命令 -
-k
:清空密碼的有效時(shí)間,下次執(zhí)行 sudo 時(shí)需要再次進(jìn)行密碼驗(yàn)證 -
-b
:在后臺(tái)執(zhí)行指定的命令 -
-p
:更改詢問(wèn)密碼的提示語(yǔ)
sudi
命令功能:
- 限制用戶執(zhí)行指定的命令
- 記錄用戶執(zhí)行的沒(méi)一條指令
- 配置文檔(
/ettc/sudioers
)提供集中的用戶管理冒滩、權(quán)限與主機(jī)等參數(shù) - 驗(yàn)證密碼后5分鐘內(nèi)(默認(rèn)值)無(wú)須再讓用戶再次驗(yàn)證密碼
visudo
命令
只有 root 管理員才可以使用
visudo
命令編輯服務(wù)的配置文件
sudo
命令提供 visudio
命令來(lái)配置用戶權(quán)限微驶,避免直接修改配置文件時(shí)可能出現(xiàn)的問(wèn)問(wèn)題。且這條命令在配置用戶權(quán)限時(shí)將禁止多個(gè)用戶同時(shí)修改sudoers配置文件开睡,還可以對(duì)配置文件內(nèi)的參數(shù)進(jìn)行語(yǔ)法檢查因苹,并在發(fā)現(xiàn)參數(shù)錯(cuò)誤時(shí)進(jìn)行報(bào)錯(cuò)。
示例1:
在下方所示位置增加普通用戶 chen 可執(zhí)行命令權(quán)限
93行添加信息為:
誰(shuí)可以使用 允許使用的主機(jī)=(以誰(shuí)的身份) 可執(zhí)行命令的列表
[root@study ~]# visudo
90 ##
91 ## Allow root to run any commands anywhere
92 root ALL=(ALL) ALL
93 chen ALL=(ALL) ALL ## 添加普通用戶 chen 的信息
使用 sudo -l
查看 chen 的所有可執(zhí)行命令
注意:下面命令驗(yàn)證的是該普通用戶的命令篇恒,而不是root管理員的密碼
[root@study ~]# su - chen
Last login: Thu Dec 20 18:30:13 CST 2018 on pts/0
[chen@study ~]$ sudo -l
[sudo] password for chen: # 輸入用戶 chen 的密碼扶檐,而不是 root 的
Matching Defaults entries for chen on study:
!visiblepw, always_set_home, match_group_by_gid, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
User chen may run the following commands on study:
(ALL) ALL
驗(yàn)證1:普通用戶查看 /root 目錄
[chen@study ~]$ ls /root
ls: cannot open directory /root: Permission denied
[chen@study ~]$ sudo ls /root
backup.taar.gz linux mysql80-community-release-el7-1.noarch.rpm test
示例2:僅賦予普通用戶 cat
命令root的權(quán)限
生產(chǎn)環(huán)境不允許某個(gè)普通用戶擁有整個(gè)系統(tǒng)所有命令的最高權(quán)限,因此ALL
參數(shù)不適合婚度,因此只能賦予普通用戶具體的命令以滿足工作需求蘸秘,受到必要的權(quán)限舒服
注意:如果需要讓某個(gè)用戶以 root 管理員的身份執(zhí)行命令,一定要給出命令的絕對(duì)路徑(可用 whereis
命令查找)
[root@study ~]# whereis cat
cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz
[root@study ~]# visudo
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
chen ALL=(ALL) /usr/bin/cat ## 添加普通用戶 chen 的信息
驗(yàn)證2:普通用戶用命令 cat
查看 /etc/shadow
文件
[root@study ~]# su - chen
Last login: Fri Dec 21 14:07:12 CST 2018 on pts/1
[chen@study ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
[chen@study ~]$ sudo cat /etc/shadow
[sudo] password for chen: # 此除輸入該普通用戶的密碼
root:$6$nivk2N7o$zTJ/PFjcpwlpL80CWjfQCnIhM7K75Oc0PU/RYOWLJBl7/XZ9spuJv4ERQ60bTCh0uZp1FMOwqkV7OO.4N7GgG0:17687:0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::
... ... ... 省略下方內(nèi)容
示例3:去除使用sudo
命令時(shí)的密碼驗(yàn)證
[root@study ~]# visudo
90 ##
91 ## Allow root to run any commands anywhere
92 root ALL=(ALL) ALL
93 chen ALL=NOPASSWD: /usr/bin/cat ## 添加普通用戶 chen 的信息
驗(yàn)證3:清除 sudo
密碼有效時(shí)間蝗茁,普通用戶再使用 cat
查看 /etc/shadow
[root@study ~]# su - chen
Last login: Fri Dec 21 14:22:58 CST 2018 on pts/1
[chen@study ~]$ sudo -k
[chen@study ~]$ sudo cat /etc/shadow
root:$6$nivk2N7o$zTJ/PFjcpwlpL80CWjfQCnIhM7K75Oc0PU/RYOWLJBl7/XZ9spuJv4ERQ60bTCh0uZp1FMOwqkV7OO.4N7GgG0:17687:0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::
... ... ... 省略下方內(nèi)容