在Linux系统中,CentOS是一个广泛使用的发行版,它提供了稳定和安全的环境,为了增强系统的安全性,有时管理员会选择禁止root用户直接访问根目录(/),以下是如何在CentOS中实现这一设置,以及相关的注意事项。

禁止root目录的必要性
安全性提升
- 防止root用户通过误操作破坏系统文件。
- 降低恶意软件或攻击者通过root权限直接修改系统文件的风险。
管理便利
- 通过限制root访问,可以要求用户使用sudo命令来执行需要root权限的操作,从而记录操作日志,便于审计。
实现步骤
创建非root用户
在CentOS中,首先需要创建一个非root用户,用于日常操作。
sudo useradd -m newuser sudo passwd newuser
设置root密码
为了安全起见,即使禁用了root目录,也建议设置root密码。
sudo passwd root
修改ssh配置
修改SSH配置,禁止root用户登录。
sudo nano /etc/ssh/sshd_config
找到以下行并取消注释:
PermitRootLogin no 保存并退出编辑器。

重启SSH服务
重启SSH服务以应用更改。
sudo systemctl restart sshd
修改sudoers文件
编辑/etc/sudoers文件,允许非root用户使用sudo执行root权限的命令。
sudo visudo
在文件中找到以下行:
root ALL=(ALL) ALL 添加新用户:
newuser ALL=(ALL) ALL 保存并退出编辑器。

重启系统
重启系统以完成所有更改。
sudo reboot
注意事项
- 在禁用root目录之前,请确保非root用户有足够的权限执行所有必要的任务。
- 禁用root目录后,所有需要root权限的操作都必须通过sudo命令执行。
- 定期检查sudo日志,以确保没有未经授权的sudo操作。
表格:sudoers文件示例
| 用户 | 匹配 | 守护进程 | 用户 | 参数 |
|---|---|---|---|---|
| root | ALL | ALL | ALL | ALL |
| newuser | ALL | ALL | ALL | ALL |
FAQs
Q1: 禁止root目录后,如何登录系统?
A1: 使用非root用户登录系统,然后使用sudo命令执行需要root权限的操作。
Q2: 如何在禁用root目录后恢复root访问?
A2: 重新启用SSH配置中的PermitRootLogin yes,然后使用root密码登录系统,之后,可以通过编辑/etc/sudoers文件来恢复root用户的sudo权限。

