[root@localhost ~]# whoami root [root@localhost ~]# su - hanfeng [hanfeng@localhost ~]$ whoami hanfeng [hanfeng@localhost ~]$ pwd /home/hanfeng [hanfeng@localhost ~]$ ls -la 總用量 16 drwx------. 2 hanfeng ha1 83 11月 1 15:07 . drwxr-xr-x. 4 root root 34 10月 31 15:38 .. -rw-------. 1 hanfeng ha1 21 11月 1 15:18 .bash_history -rw-r--r--. 1 hanfeng ha1 18 8月 3 2016 .bash_logout -rw-r--r--. 1 hanfeng ha1 193 8月 3 2016 .bash_profile -rw-r--r--. 1 hanfeng ha1 231 8月 3 2016 .bashrc [hanfeng@localhost ~]$ 登出 [root@localhost ~]#
其中這個 - ,目的就是完全的切換用戶,使用本身的配置、環境變量等 .bash開頭的文件都是用戶的配置文件
[root@localhost ~]# su hanfeng [hanfeng@localhost root]$ whoami hanfeng [hanfeng@localhost root]$ pwd /root [hanfeng@localhost root]$ exit [root@localhost ~]#
[root@localhost ~]# su - -c "touch /tmp/han.111" hanfeng [root@localhost ~]# ls -lt /tmp/ |head 總用量 0 -rw-r--r--. 1 hanfeng ha1 0 11月 1 15:45 han.111 drwx------. 3 root root 17 11月 1 10:21 systemd-private-5909416742444897abc72857986169b4-vmtoolsd.service-klBF7K [root@localhost ~]# id hanfeng uid=1000(hanfeng) gid=1001(ha1) 組=1001(ha1),1002(user3) [root@localhost ~]#
這裏會看到文件的屬組是ha1,由於hanfeng用戶的屬組就是ha1
[root@localhost ~]# su - hanfeng 上一次登陸:三 11月 1 16:09:37 CST 2017pts/0 上 [hanfeng@localhost ~]$ su - user5 密碼: 最後一次失敗的登陸:三 11月 1 16:10:09 CST 2017pts/0 上 最有一次成功登陸後有 1 次失敗的登陸嘗試。 [user5@localhost ~]$ ls -la 總用量 12 drwx------. 2 user5 user5 62 11月 1 16:07 . drwxr-xr-x. 5 root root 47 11月 1 16:07 .. -rw-r--r--. 1 user5 user5 18 8月 3 2016 .bash_logout -rw-r--r--. 1 user5 user5 193 8月 3 2016 .bash_profile -rw-r--r--. 1 user5 user5 231 8月 3 2016 .bashrc [user5@localhost ~]$ 登出 [hanfeng@localhost ~]$ 登出 [root@localhost ~]#
[root@localhost ~]# useradd -M ll [root@localhost ~]# su - ll su: 警告:沒法更改到 /home/ll 目錄: 沒有那個文件或目錄 -bash-4.2$ -bash-4.2$ 登出 [root@localhost ~]# mkdir /home/ll [root@localhost ~]# chown ll:ll /home/ll/ [root@localhost ~]# su - ll 上一次登陸:三 11月 1 16:20:29 CST 2017pts/0 上 -bash-4.2$ pwd /home/ll -bash-4.2$ ls -la 總用量 0 drwxr-xr-x. 2 ll ll 6 11月 1 16:28 . drwxr-xr-x. 6 root root 57 11月 1 16:28 .. -bash-4.2$ 登出 [root@localhost ~]# cp /etc/skel/.bash* /home/ll/ [root@localhost ~]# chown -R ll:ll !$ chown -R ll:ll /home/ll/ [root@localhost ~]# su - ll 上一次登陸:三 11月 1 16:55:28 CST 2017pts/0 上 [ll@localhost ~]$ 登出 [root@localhost ~]#
[root@hf-01 ~]# su - hanfeng 上一次登陸:五 10月 27 05:14:42 CST 2017pts/1 上 [hanfeng@hf-01 ~]$ su - 密碼: 上一次登陸:四 11月 2 01:26:08 CST 2017從 192.168.74.1pts/0 上 [root@hf-01 ~]# whoami root [root@hf-01 ~]# 登出 [hanfeng@hf-01 ~]$ 登出 [root@hf-01 ~]# 登出 [root@hf-01 ~]#
[root@hf-01 ~]# visudo 會進入/etc/sudoers.tmp的配置文件中 97 ## Allow root to run any commands anywhere 98 root ALL=(ALL) ALL 99 hanfeng ALL=(ALL) /usr/bin/ls, /usr/bin/mv, /usr/bin/ls [root@hf-01 ~]#
[root@hf-01 ~]# su - hanfeng 上一次登陸:四 11月 2 03:52:44 CST 2017pts/0 上 [hanfeng@hf-01 ~]$ ls /root/ ls: 沒法打開目錄/root/: 權限不夠 [hanfeng@hf-01 ~]$ sudo /usr/bin/ls /root/ 在執行命令後,會提示輸入hanfeng用戶的密碼 We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. [sudo] password for hanfeng: 11.txt 234 33.txt ha.txt [hanfeng@hf-01 ~]$ ls /root/ 在hanfeng用戶下直接去執行會發現沒法打開/root/目錄 ls: 沒法打開目錄/root/: 權限不夠 [hanfeng@hf-01 ~]$ sudo /usr/bin/ls /root/ 11.txt 234 33.txt ha.txt [hanfeng@hf-01 ~]$ mv /root/ha.txt /root/haha.txt mv: 沒法打開目錄/root/: 權限不夠 [hanfeng@hf-01 ~]$ sudo /usr/bin/mv /root/ha.txt /root/haha.txt [hanfeng@hf-01 ~]$ 登出 [root@hf-01 ~]#
[root@hf-01 ~]# visudo [root@hf-01 ~]# su - user2 上一次登陸:四 11月 2 07:17:04 CST 2017pts/0 上 [user2@hf-01 ~]$ ls /root/ ls: 沒法打開目錄/root/: 權限不夠 [user2@hf-01 ~]$ sudo ls /root/ 11.txt 234 33.txt haha.txt [user2@hf-01 ~]$ sudo /usr/bin/ls /root/ 11.txt 234 33.txt haha.txt [user2@hf-01 ~]$ 登出 [root@hf-01 ~]#
## User Aliases ## These aren't often necessary, as you can use regular groups ## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname ## rather than USERALIAS # User_Alias ADMINS = jsmith, mikem
## Networking # Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient , /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig , /sbin/mii-tool
例子:html
[root@hf-01 ~]# visudo 進入到配置環境中 而後到 ## Networking 那一段落最後加上 HANFENG_CMD = /usr/bin/ls, /usr/bin/mv, /usr/bin/cat 並將用戶名hanfeng後面,去除那些絕對路徑命令,修改上HANFENG_CMD,而後保存退出 root ALL=(ALL) ALL hanfeng ALL=(ALL) HANFENG_CMD [root@hf-01 ~]# su - hanfeng 上一次登陸:四 11月 2 05:46:40 CST 2017pts/0 上 [hanfeng@hf-01 ~]$ sudo ls /root/ 這裏會發現能夠查看/root/目錄下的文件 [sudo] password for hanfeng: 11.txt 234 33.txt haha.txt [hanfeng@hf-01 ~]$ sudo ls /root/ 11.txt 234 33.txt haha.txt [hanfeng@hf-01 ~]$ sudo cat /root/haha.txt [hanfeng@hf-01 ~]$ 登出 [root@hf-01 ~]#
## Allows people in group wheel to run all commands 109 %wheel ALL=(ALL) ALL
[root@hf-01 ~]# visudo 在配置環境中設置 在## User Aliases一段末尾處的下一行設置 User_Alias HANS = hanfeng, user2, user4 在 ## Allow root to run any commands anywhere root ALL=(ALL) ALL hanfeng ALL=(ALL) HANFENG_CMD user10 ALL=(ALL) NOPASSWD: /usr/bin/ls, /usr/bin/mv, /usr/bin/cat user2 ALL=(ALL) NOPASSWD: /usr/bin/ls, /usr/bin/mv, /usr/bin/cat 在這裏加上一下點,而後保存退出 HANS ALL=(ALL) NOPASSWD: /usr/bin/su 而後執行命令 [root@hf-01 ~]# su - hanfeng 上一次登陸:四 11月 2 07:51:34 CST 2017pts/0 上 [hanfeng@hf-01 ~]$ sudo su - 上一次登陸:四 11月 2 05:38:13 CST 2017從 192.168.74.1pts/1 上 [root@hf-01 ~]# whoami root [root@hf-01 ~]# 登出 [hanfeng@hf-01 ~]$ 登出 [root@hf-01 ~]#
[root@hf-01 ~]# vi /etc/ssh/sshd_config 在這裏搜索/Root #LoginGraceTime 2m PermitRootLogin no 將前面的 #號 去除並將yes改成no,表示不容許遠程登陸了 #StrictModes yes 而後保存退出,再重啓配置服務 [root@hf-01 ~]# systemctl restart sshd.service [root@hf-01 ~]#
sudo與su比較shell
sudo配置文件樣例bash