首页 帮助中心 新加坡高防服务器 Linux系统中禁用root帐户常用方法
Linux系统中禁用root帐户常用方法
时间 : 2024-12-06 12:09:12 编辑 : 华纳云 阅读量 : 99

Root是Linux和其他类Unix操作系统上的终极账户。这个账户可以访问系统上的全部命令和文件,具有完全的读写和执行权限。用于系统上执行任何类型任务,创建/更新/访问/删除其他用户账号、安装/删除/升级软件包等。因为root用户具有绝对权限,所以其对任何操作系统而言都非常重要。root用户的任何错误都可能对系统正常运行产生巨大影响,如账户可能出现滥用等。禁用root用户可以一定程度上保护服务器的使用,下文是华纳云总结的常用方法。

在阻止root账户访问权限前,要保证您有useradd命令创建一个管理账户,该管理账户支持sudo命令获取root用户权限,且为该用户账户指定了一个强密码。这个方法仅对需要 shell 供用户登录的程序有效,否则sudo、ftp和电子邮件客户端可以访问 root 帐户。这个标志标识创建用户主目录且支持注释:-m-c:

# useradd -m -c "Admin User" admin

# passwd admin

在使用suermod命令把次用户添加到适当的系统管理组,其中-a表示附加用户账户,-G表示添加用户的组:

# usermod -aG wheel admin #CentOS/RHEL

# usermod -aG sudo admin #Debian/Ubuntu

创建具有管理权限的用户后,切换到该账户来阻止根访问:

# su admin

更改root用户shell,从/bin/bash/bin/bash(或任何允许用户登录的其他 shell)更改为/sbin/nologin,在/etc/passwd文件中,可以使用任何您喜欢的命令行编辑器打开该文件进行编辑:

$ sudo vim /etc/passwd

更改此行:

root:x:0:0:root:/root:/bin/bash

root:x:0:0:root:/root: /sbin/nologin

保存文件并关闭。现在开始用root用户登录时,将会出现:此账户当前不可用默认提示,可以更改这句提示语,在文件/etc/nologin.txt中设置自定义消息。

还可以通过禁用控制台设备TTY的root登陆。这种方法使用名是pam_securetty的PAM模块,该模块仅当用户登录到“安全” TTY时才允许 root 访问,如/etc/securetty中的列表所定义。上述文件允许指定root用户能登录到哪些TTY设备,清空此文件来阻止root登录到连接计算机系统的任何设备。要创建一个空文件,请运行:

$ sudo mv /etc/securetty /etc/securetty.orig

$ sudo touch /etc/securetty

$ sudo chmod 600 /etc/securetty

此方法有一些限制,它仅影响登录、显示管理器(即gdm、kdm和xdm )等程序以及启动 TTY 的其他网络服务。 su、sudo、ssh 和其他相关 openssh 工具等程序将有权访问 root 帐户。

禁用SSH Root登录,需编辑/etc/ssh/sshd_config文件:

$ sudo vim /etc/ssh/sshd_config

然后取消注释(如果注释了)指令PermitRootLogin,并将其值设置为no。完成后,保存并关闭文件,再重新启动sshd服务以应用最近的配置更改。

$ sudo systemctl restart sshd

$ sudo service sshd restart

此方法仅影响 openssh 工具集,ssh、scp、sftp 等程序将被阻止访问 root 帐户。

华纳云 推荐文章
Linux服务器中阻止USB存储设备的常用方法 监控 Linux 网络磁盘运行时间负载及RAM 的 Shell 脚本 Linux中生成和使用MD5验证文件指南 Linux中.bz2文件压缩和解压的方法 使用FFmpeg来计算linux视频总帧数 RPM软件包定义及卸载一般步骤 MacOS 访问 Linux NFS 共享文件夹的方法 Linux中创建和管理隐藏文件流程 Ubuntu系统中删除有问题PPA存储库 如何在IIS6和IIS7.5中禁用WebDAV
客服咨询
7*24小时技术支持
技术支持
渠道支持