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 @可以查看了
以及针对组,也可以进行一次性对组进行授权管理,然后把用户加入到某个组
限制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@进行切换进
转载于:https://blog.51cto.com/asd9577/1936938