su命令
1 2 | #su - -c "touch /tmp/test.txt" user1 @当前用户是root使用user1的身份创建一个text.txt文件 |
---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #su - user2 @切换user2 用户 当切换到user2这个用户下,如果没有家目录会显示 -bash-4.2$ 先查看一下 #id user2的用户信息 然后切换到root下, #mkdir /home/[email protected]创建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的权限去执行命令
1 | #visudo @打开配置文件 |
---|
找到##allow root to run any commands anywhere
增加一条:user2 ALL=(ALL) ALL
当然也可以自定义命令:
user2 ALL=(ALL) /usr/bin/ls,/usr/bin/mv,/usr/bin/cat
1 | 输入:set nu @查看行数 |
---|
1 | #su - user2 @切换到user2 |
---|
1 | #ls /root/ @查看root目录,提示权限不足 |
---|
1 | #sudo ls /root @可以查看了 |
---|
以及针对组,也可以进行一次性对组进行授权管理,然后把用户加入到某个组
限制root远程登录
1 | # vi /etc/ssh/sshd_config |
---|
输入“/” 输入root 查找
1 | #PermitRootLogin yes 修改为:PermitRootLogin no ( 注意去掉#) |
---|
1 | #systemctl restart sshd.service #重启shhd服务 |
---|
然后再次使用其它终端去连接就不可以登录
当然有时候我们是不允许直接让某个用户知道root的密码,但是还想着让他能切换到root下面执行命令!如何做呢?(慎重操作!!!)
1 2 | 找到##allow root to run any commands anywhere 增加一条:user3ALL=(ALL)NOPASSWD: /usr/bin/su |
---|
1 2 | 即可让user3登录自己的账户然后使用 #sudo su - [email protected]进行切换进 |
---|