限制 root 远程登录

限制 root 远程登录

注: 该方法只适用于通过 ssh 远程登录 Linux 的时候。

限制 root 远程登录的方法

/etc/ssh/sshd_config 为 sshd 服务的配置文件,默认允许 root 账户通过 ssh 远程登录 Linux。要想不允许 root 用户远程登录到 Linux,具体方法为: 修改配置文件 vi /etc/ssh/sshd_config, 在文件中查找#PermitRootLogin yes并修改为PermitRootLogin no, 即不允许 root 远程登录。保存配置文件后,需要重启 sshd 服务。

#systemctl restart sshd.service  //重启sshd服务。

实战

禁止 root 用户远程登录,只允许普通用户登录。普通用户如果想要得到 root 用户的权限,如下详解

  • 思路: 在普通用户下,想要得到 root 用户的权限,使用 su 命令时,没有 root 的密码是切换不到 root 用户下的。这时候可以把 su 放到 sudo 命令列表里,之后在普通用户下使用命令 #sudo su -root 就能得到 root 用户的权限了。

实现步骤:

  • 在 root 用户下 ,编辑 visudo 为用户添加 Alias
     16 ## User Aliases     
     17 ## These aren't often necessary, as you can use regular groups    
     18 ## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname    
     19 ## rather than USERALIAS    
     20 # User_Alias ADMINS = jsmith, mikem    
     21 User_Alias AMINGS=user1  //手动添加的。为用户添加Alias    
  • 设定规则
     90 ## Allow root to run any commands anywhere  
     91 root    ALL=(ALL)       ALL    
     92 user1   ALL=(ALL)       /usr/bin/ls, /usr/bin/mv, /usr/bin/cat          
     93 AMINGS  ALL=(ALL)       NOPASSWD: /usr/bin/su  //NOPASSWD代表执行/usr/bin/su的时候不需要输入密码。 
  • 保存退出

  • 切换到 user1 用户下,用 sudo 登录到 root 用户下

[root@localhost ~]# su - user1   
上一次登录:三 11月  1 17:03:48 CST 2017pts/0 上    
[user1@localhost ~]$ sudo su - root   
上一次登录:三 11月  1 18:26:00 CST 2017pts/0 上   
[root@localhost ~]# whoami   //查看当前用户
root