用於切換用戶,以及用其餘用戶身份運行命令。python
切換到gavin帳戶,可是還有完全切換過來,pwd還在root下vim
[gavin@localhost root]$ whoami安全
gavinbash
[gavin@localhost root]$ idssh
uid=1001(gavin) gid=1001(gavin) 組=1001(gavin)ui
[gavin@localhost root]$ pwdspa
/root.net
切換到gavin帳戶,加-是爲了完全切換用戶,pwd查看是在用戶家目錄,會加載用戶目錄下的配置文件。rest
[gavin@localhost ~]$ whoamiget
gavin
[gavin@localhost ~]$ id
uid=1001(gavin) gid=1001(gavin) groups=1001(gavin)
[gavin@localhost ~]$ pwd
/home/gavin
-c以gavin用戶來運行命令
[root@localhost ~]# su - -c "touch /tmp/gavin.txt" gavin
[root@localhost ~]# ll /tmp
總用量 0
-rw-rw-r-- 1 gavin gavin 0 4月 1 04:54 gavin.txt
[root@localhost ~]# useradd -M zhang
[root@localhost ~]# passwd --stdin zhang
更改用戶 zhang 的密碼 。
zhang
passwd:全部的身份驗證令牌已經成功更新。
[root@localhost ~]# su - zhang
su: 警告:沒法更改到 /home/zhang 目錄: 沒有那個文件或目錄
-bash-4.2$
/etc/skel 用戶家目錄下配置文件模版
[root@localhost ~]# mkdir /home/zhang/
[root@localhost ~]# ls -a /etc/skel
. .. .bash_logout .bash_profile .bashrc
[root@localhost ~]# cp /etc/skel/.bash* /home/zhang/
[root@localhost ~]# chown -R zhang:zhang /home/zhang/
[root@localhost ~]# chmod 700 /home/zhang/
[root@localhost ~]# su - zhang
上一次登陸:日 4月 1 04:57:27 CST 2018pts/0 上
[zhang@localhost ~]$
普通用戶顯示$
[zhang@localhost ~]$
root用戶顯示#
[root@localhost ~]#
root用戶戶下切換到普通用戶不須要密碼,在普通用戶下也能夠切換到其餘用戶,須要輸入其餘用戶的密碼。exit退出切換的帳戶。
sudo容許容許用戶臨時以超級用戶或安全策略指定的另外一個用戶執行命令,多用於普通用戶以root權限執行命令。
visudo命令編輯sudo配置文件
visudo實際上編輯的是/etc/sudoers 文件,不建議直接用vim直接編輯,由於出現一些語法上錯誤不會提示。
[root@localhost ~]# su - gavin
上一次登陸:日 4月 1 09:34:56 CST 2018pts/0 上
[gavin@localhost ~]$ ls /root
ls: cannot open directory /root: Permission denied
[gavin@localhost ~]$ sudo ls /root
[sudo] password for gavin:
anaconda-ks.cfg fonts test.py ziti
[gavin@localhost ~]$ cat /root/test.py
cat: /root/test.py: Permission denied
[gavin@localhost ~]$ sudo cat /root/test.py
#! /usr/bin/python
print "hello world"
用戶使用sudo時,必須先輸入密碼,以後有5分鐘的有效期限,超過時限則必須從新輸入密碼。
編輯配置文件,在命令前面加上NOPASSWD:
[root@localhost ~]# su - zhang
上一次登陸:日 4月 1 05:02:17 CST 2018pts/0 上
[zhang@localhost ~]$ sudo ls /root
anaconda-ks.cfg fonts test.py ziti
[zhang@localhost ~]$ sudo cat /root/test.py
#! /usr/bin/python
print "hello world"
vim /etc/ssh/sshd_config
把 #PermitRootLogin yes 修改爲 PermitRootLogin no
systemctl restart sshd.service
把 PasswordAuthentication yes 改成 PasswordAuthentication no
systemctl restart sshd