su命令

#su - -c "touch /tmp/test.txt" user1 
@当前用户是root使用user1的身份创建一个text.txt文件
#su - user2
@切换user2 用户
当切换到user2这个用户下,如果没有家目录会显示
-bash-4.2$
先查看一下
#id user2的用户信息
然后切换到root下,
#mkdir /home/user2@创建user2家目录
#chown -R user2:user2 /home/user2/ @授权user2家目录
再次切换到user2账户下,发现还没有没有恢复
查看其它用户发现有很多.bash的隐藏隐藏目录
#su - zhdy
#ls -la
切换到root
#ls -la /etc/skel
#cp /etc/skel/.bash* /home/user2/
#chown -R user2:user2 /home/user2/ 
问题解决,恢复正常
sudo命令

sudo:让普通用户临时拥有root的权限去执行命令

#visudo        @打开配置文件

找到##allow root to run any commands anywhere 

增加一条:user2ALL=(ALL)ALL

当然也可以自定义命令:

user2 ALL=(ALL)/usr/bin/ls,/usr/bin/mv,/usr/bin/cat

输入:set nu         @查看行数
#su - user2        @切换到user2
#ls /root/        @查看root目录,提示权限不足
#sudo ls /root        @可以查看了

以及针对组,也可以进行一次性对组进行授权管理,然后把用户加入到某个组

su,sudo,限制root远程登录_su

限制root远程登录

# vi /etc/ssh/sshd_config

输入“/”  输入root 查找

#PermitRootLogin yes    修改为:PermitRootLogin no     ( 注意去掉#)
#systemctl restart sshd.service        @重启shhd服务

然后再次使用其它终端去连接就不可以登录


当然有时候我们是不允许直接让某个用户知道root的密码,但是还想着让他能切换到root下面执行命令!如何做呢?(慎重操作!!!)

找到##allow root to run any commands anywhere 
增加一条:user3ALL=(ALL)NOPASSWD: /usr/bin/su
即可让user3登录自己的账户然后使用
#sudo su - root@进行切换进