Day19 課堂筆記
1. su:linux用戶身份切換命令
su參數(shù)選項(xiàng) | 注釋說明 |
---|---|
- | 使用一個(gè)shell成為登錄的shell |
-c | 切換到一個(gè)shell下就谜,執(zhí)行一個(gè)命令怪蔑,然后退出所切換的用戶環(huán)境 |
-m | 切換用戶時(shí),不重置用戶環(huán)境變量 |
-s | 如果/etc/shells允許丧荐,則運(yùn)行指定的shell |
范例1:由普通用戶oldboy
切換到root
用戶
[oldboy@oldboyedu ~]$ whoami
oldboy <-->當(dāng)前為普通用戶oldboy
[oldboy@oldboyedu ~]$ su root
Password:
[root@oldboyedu /home/oldboy]# env
MAIL=/var/spool/mail/oldboy
PWD=/home/oldboy <-->家目錄沒有變
LANG=en_US.UTF-8
HISTCONTROL=ignoredups
HOME=/root
SHLVL=2
LOGNAME=oldboy
退到普通用戶重新測試一下:
[root@oldboyedu /home/oldboy]# exit
[oldboy@oldboyedu ~]$ su - root <-->加 - 的作用
Password:
Last login: Sun Mar 31 09:42:18 CST 2019 on pts/0
[root@oldboyedu ~]# env |egrep "USER|MAIL|PWD|LOGNAME"
USER=root
MAIL=/var/spool/mail/root
PWD=/root
LOGNAME=root
范例2:oldboy
用戶使用root身份執(zhí)行命令
[oldboy@oldboyedu ~]$ ls -l /root
ls: cannot open directory /root: Permission denied
[oldboy@oldboyedu ~]$ su - -c "ls -l /root"
Password:
total 72
-rw-r--r-- 1 root root 1860 Mar 30 18:36 1.txt
-rw-------. 1 root root 1647 Mar 4 11:24 anaconda-ks.cfg
drwxr-xr-x 6 root root 153 Feb 11 09:18 lolcat-master
-rw-r--r-- 1 root root 57827 Mar 18 10:13 master.zip
-rw-r--r-- 1 root root 34 Mar 30 18:09 user.txt
范例3:讓系統(tǒng)開機(jī)時(shí)自動(dòng)以普通用戶啟動(dòng)指定的服務(wù)腳本
[root@oldboyedu ~]# tail -1 /etc/rc.local
su - oldboy -c '/bin/sh /server/scripts/deploy.sh'
小結(jié):怎么用su
缆瓣?
1、先登錄普通用戶篮奄,沒事不允許登錄root
捆愁。
只有執(zhí)行的任務(wù)需要root
權(quán)限的時(shí)候才允許你登錄root
。
系統(tǒng)維護(hù)通道窟却。
用su管理昼丑,必須知道root
密碼,安全隱患夸赫。
10個(gè)運(yùn)維菩帝,都得知道root
密碼,安全隱患。
需求:
1呼奢、不用知道root
密碼還能管理服務(wù)器宜雀。
2、最小化管理服務(wù)器握础,想關(guān)機(jī)辐董,就只給你halt
權(quán)限。
2. visudo:編輯sudoers文件工具
visudo
命令專門用來編輯/etc/sudoers
這個(gè)文件的禀综。
參數(shù):
- -c 手動(dòng)執(zhí)行語法檢查
范例1:執(zhí)行sudo對(duì)普通用戶oldbo
y和oldgirl
授權(quán)
[root@oldboyedu ~]# visudo
100 root ALL=(ALL) ALL
101 oldboy ALL=(ALL) NOPASSWD: ALL
102 oldgirl ALL=(ALL) NOPASSWD: /usr/bin/useradd,/usr/bin/userdel
待授權(quán)的用戶或組 | 機(jī)器=(授權(quán)角色) | 可以執(zhí)行的命令 |
---|---|---|
user | MACHINE= | COMMANDS |
oldboy | ALL=(ALL) | ALL |
提示:每次執(zhí)行visudo
并修改內(nèi)容后简烘,需要語法檢查:
[root@oldboyedu ~]# visudo -c
/etc/sudoers: parsed OK
3. sudo:以另一個(gè)用戶身份執(zhí)行命令
參數(shù):
- -l列出當(dāng)前用戶可以執(zhí)行的命令。只有在sudoers文件里的用戶才能使用
范例1:查看用戶被visudo
授權(quán)后擁有的權(quán)限
[oldboy@oldboyedu ~]$ whoami
oldboy
[oldboy@oldboyedu ~]$ ls /root
ls: cannot open directory /root: Permission denied
[oldboy@oldboyedu ~]$ sudo ls /root
1.txt anaconda-ks.cfg lolcat-master master.zip user.txt
查看oldboy
用戶授權(quán)的結(jié)果情況:
[oldboy@oldboyedu ~]$ sudo -l
Matching Defaults entries for oldboy on oldboyedu:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, 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 oldboy may run the following commands on oldboyedu:
(ALL) NOPASSWD: ALL
小結(jié):sudo
命令:
可以以最小化的權(quán)限(單個(gè)命令)定枷,執(zhí)行命令時(shí)擁有root
用戶的權(quán)限
SUID
針對(duì)命令孤澎,任何用戶執(zhí)行命令都有root
身份。 任何用戶執(zhí)行某個(gè)命令:模糊
SUDO
針對(duì)用戶欠窒,給某個(gè)用戶以root
身份執(zhí)行某個(gè)命令覆旭。指定用戶執(zhí)行某個(gè)命令:具體。
如何編輯配置sudo
岖妄?
sudo
是一個(gè)提權(quán)的命令(對(duì)應(yīng)權(quán)限通過讀取/etc/sudoers
(嚴(yán)格語法)文件實(shí)現(xiàn)的)
配置/etc/sudoers
可以使用visudo
命令型将,或vim /etc/sudoers
(不推薦)
CentOS7 時(shí)間戳文件位置:
[root@oldboyedu ~]# ll /var/run/sudo/
total 0
drwx------ 2 root root 40 Mar 31 09:22 ts
[root@oldboyedu ~]# ll /etc/sudoers
-r--r----- 1 root root 4408 Mar 26 11:41 /etc/sudoers