用于切换用户,以及用其余用户身份运行命令。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