su sudo 限制root远程登录
su命令
su用来切换用户。
su - 用户 是完全切换,就是变成另一个用户。
su 用户 是不完全切换,变量还是上一个用户。
注释:完全切换,就是在切换时加载用户的环境变量.bash_history,.bash_logout,.bash_profile
通过-c参数来不切换用户,以这个用户的身份来执行一些命令:
[root@tingaolinux ~]# su - -c "touch /tmp/tingao.111" tingao
[root@tingaolinux ~]# ls -lt /tmp/ |head
总用量 128
-rw-rw-r-- 1 tingao tingao 0 11月 21 18:11 tingao.111
[root@tingaolinux ~]# id tingao
uid=1009(tingao) gid=1009(tingao) 组=1009(tingao),1010(grp2)
常见的su用法(root用户操作的以下步骤):
- 1.useradd -M can1 创建一个没家目录的用户。
- 2.mkdir /home/can1 创建家目录
- 3.cp -r /etc/skel/* /home/can1 给用户家目录里复制进一个模版的家用户变量(/etc/skel)
- 4.chown can1:can1 /home/can1 更改用户家目录的属主属组为改用户
sudo命令
sudo给普通用户授权root用户的身份。
visudo打开sudo的配置文件"/etc/sudoers.tmp" 112L, 3938C
最核心的部分:
ALL 指的是在哪里
(ALL)指的是主机用户
后面的ALL 表示所有的命令,也可以自定义命令
正常情况下,普通用户ls root/目录是没有权限的
第一次执行需要输入密码,第二次就不用输入密码
第一次输入英文显示如下:
翻译:
不让用户输入密码
切换到user1
[root@tingaolinux ~]# su - user1
上一次登录:二 11月 21 01:28:52 CST 2017pts/0 上
su: 警告:无法更改到 /home/user1 目录: 没有那个文件或目录
-bash-4.2$ su root
密码:
[root@tingaolinux ~]# mkdir /home/user1
[root@tingaolinux ~]# cp /etc/skel/.bash* !$
cp /etc/skel/.bash* /home/user1
[root@tingaolinux ~]# chown user1:user1 /home/user1
[root@tingaolinux ~]# su - user1
上一次登录:三 11月 29 20:50:31 CST 2017pts/0 上
[user1@tingaolinux ~]$ sudo ls /root/
测试
[tingao@tingaolinux ~]$ sudo ls /root
[sudo] tingao 的密码:
111 1.txt.bak anaconda-ks.cfg.1 tingao
[tingao@tingaolinux ~]$ sudo cat /root/1.txt.bak
用户组
就是说,一些用户用到了同样的命令,可以把这些命令放到一个用户组里,对用户组进行操作。
例如:$wheel用户组
修改 sudoers 文件注意事项
1、操作时最好用 echo >>追加,不过 cat sed 同样也可以实现(不常用)
2、修改完成后一定记得检查语法 visudo -c
3、确保/etc/sudoers 默认的权限是 440(防止权限误用)
4、及时验证修改的配置是否正确
5、确保知道 root 密码,以便普通用户可以通过 sudo su -命令切换
6、修改授权某用户权限成功后,切换到用户下面,用 sudo -l 来查看自己拥有哪些权限
限制root用户远程登录
如果root用户的密码被盗窃了,而你的服务器又没有限制使用密匙登录,那么就悲剧了。所以,限制root远程登录还是有一定的必要性的。那么怎么操作呢?
我们想一想,首先ssh那里应该禁止掉。但是禁止掉那里的话,我们想用root用户进行一些操作怎么办呢?对,可以用su命令切换过去,但是我们知道,在切换的时候需要输入密码,而我们root的密码又不能随便给普通用户。这时候我们想到了sudo命令,它里面有一个NOPASSWD选项,可以避免我们输入密码
关闭ssh配置的root登录:
修改/etc/ssh/sshd_config:
#LoginGraceTime 2m PermitRootLogin no
重启服务:
systemctl restart sshd.service
然后以普通用户身份登录后切换root登录 sudo su - root
备注:
可以给普通用户设置部分权限,不要全部授予权限。
禁用掉root用户登录后:
可以给一个用户授予sudo权限,之后自己用这个用户切换到root用户下。或者都不给普通用户sudo权限,自己实体机登录root,不远程登录。
然后其他用户授予部分权限。