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,不远程登录。

然后其他用户授予部分权限。

posted on 2018-04-04 23:58  淡淡!!!  阅读(258)  评论(0编辑  收藏  举报

导航