温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux下如何禁用Root登陆

发布时间:2021-10-27 10:33:07 来源:亿速云 阅读:413 作者:小新 栏目:系统运维

小编给大家分享一下Linux下如何禁用Root登陆,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

1. 修改 Root 用户的登陆 Shell

我们可以通过编辑 /etc/passwd 文件将 Root 用户的登陆 Shell 改为 /sbin/nologin。

$ sudo vim /etc/passwd  root:x:0:0:root:/root:/bin/bash  to  root:x:0:0:root:/root:/sbin/nologin

Linux下如何禁用Root登陆

此后,使用 Root 用户登陆只会显示一条信息  “This account is currently not available”。 当然你也可以通过修改 /etc/nologin.txt 来自定义出错信息。

这种方法只能禁止那些需要 Shell 用户的登陆场景,但像 Sudo、FTP 之类的操作依然可以使用 Root 账户。

2. 禁止 Root 用户在任何终端设备上登陆

Linux 下 PAM 模块中有一个叫做 pam_securetty 的模块,它可以限定 Root 用户只能在安全终端上登陆。

而所谓的安全终端由 /etc/securetty 来决定,该文件由包含数行 tty 设备名(每行一个设备名,前面不加 /dev/ ),只有这些设备名才可允许 Root 用户登录。

因此,我们可以通过清空安全终端列表的方式来禁止 Root 用户登陆。

$ sudo mv /etc/securetty /etc/securetty.orig  $ sudo touch /etc/securetty  $ sudo chmod 600 /etc/securetty

这种方法只会影响需要分配终端的程序,比如 login,gdm/kdm/xdm 之类的显示管理器等, 像 Su、Sudo、SCP、SFTP、SSH 之类的操作则无效。

3. 禁止 Root 用户通过 SSH 登陆

修改 SSH 的配置文件 /etc/ssh/sshd_config,在其中加上 PermitRootLogin no 配置项。

Linux下如何禁用Root登陆

然后,再重启 SSHD 服务让配置生效。

$ sudo systemctl restart sshd  OR  $ sudo service sshd restart

很明显,这种方法只会影响 SSH、SCP、SFTP 之类的 SSH 系列工具。

4. 通过 PAM 模块禁止 Root 用户访问 Login 和 SSHD 服务

我们可以通过 /lib/security/pam_listfile.so 模块来限定指定用户禁止访问某些服务。其步骤如下:

  •     创建一个需要禁止访问用户的文件,如:/etc/deniedusers。其中加上 Root 或任意不想让它访问服务的用户名。 

$ sudo echo root |tee -a /etc/deniedusers
  •     设置这个文件的权限。 

$ sudo chmod 600 /etc/ssh/deniedusers
  •     在 /etc/pam.d/login 或 /etc/pam.d/sshd 文件中加上如下的配置。 

auth    required       pam_listfile.so \         onerr=succeed  item=user  sense=deny  file=/etc/ssh/deniedusers

以上是“Linux下如何禁用Root登陆”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI