禁止用户使用 sudo su 命令进入root 模式

本文介绍如何禁止普通用户通过sudo su命令进入root模式。通过修改sudoers文件的权限及内容,实现对su命令使用的限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 禁止普通用户通过sudo su命令进入root模式的方法(在root模式下操作):

1. 修改 /etc/sudoers 的权限, 用来写入文件

# chmod 777 /etc/sudoers

2. 修改sudo 可以执行的命令

vim /etc/sudoers  # 打开 sudo 控制文件
apuser ALL=(ALL:ALL) ALL,!/bin/su   # 在文件结尾, 追加此内容
:wq # 保存并退出
  • ! 取反的意思
  • 追加的内容意思就是所有用户, 所有组都不允许使用 /bin/su 命令
  • 如果想要普通用户, 使用指定的命令就直接使用 "," 分割 在 "!/bin/su" 后面追加即可
  • 如果不想让普通用户使用, 只需要在指定命令的开头写入 ! 取反即可
  • 写入命令时必须写绝对路径

 3. 将文件的权限修改回来

 # chmod 0440 /etc/sudoers

 

 

转载于:https://www.cnblogs.com/dream4567/p/7419408.html

<think>我们正在回答用户的问题:如何使用su命令进入root用户模式? 根据引用[2],我们知道su命令用于切换用户,特别是切换到root用户(超级用户)。 同时,引用[1]和引用[3]到了禁止普通用户使用su切换到root的方法,这从反面说明了正常使用su切换到root的方法。 步骤: 1. 打开终端。 2. 输入命令:`su -` 或者 `su - root`,然后按回车。 3. 系统会示输入root用户的密码。输入正确的密码(注意:输入时不会显示任何字符,这是正常的)。 4. 如果密码正确,终端示符会变成`#`(表示当前是root用户),此时即进入root用户模式。 注意: - 使用`su -`(带横杠)会启动一个登录shell,同时加载root用户的环境变量。 - 使用`su`(不带横杠)则不会加载root用户的环境变量,因此推荐使用`su -`。 但是,需要注意的是,系统管理员可能已经设置了限制(如引用[1]和引用[3]所述): - 引用[1]:管理员可以通过修改/etc/sudoers文件,禁止普通用户使用su命令。 - 引用[3]:管理员可以设置只有wheel组的用户才能使用su命令切换到root。 因此,如果普通用户无法使用su切换到root,可能是由于系统策略限制。 另外,如果用户忘记了root密码,可以通过以下步骤重置(需要sudo限): 1. 使用普通用户登录,并确保该用户sudoers列表中。 2. 运行:`sudo passwd root` 3. 输入当前用户的密码(用于sudo验证),然后设置新的root密码。 但是,重置root密码需要当前用户sudo限,否则无法操作。 生成相关问题: 1. 如何设置root用户的密码? 2. 如果忘记了root密码,如何重置? 3. 为什么使用`su`命令切换root示“认证失败”? 4. 如何允许普通用户使用su命令切换到root? 5. 如何禁止普通用户使用su命令切换到root? 注意:在回答中,我们引用了引用[2]关于su命令的基本用法,同时到引用[1]和引用[3]中的限制措施,因此我们在相关位置添加引用标识。</think>### 如何使用 `su` 命令进入 root 用户模式 #### 📌 基础操作步骤 1. **打开终端** 在 Linux 系统中启动命令行终端(如 GNOME Terminal、Konsole 等)。 2. **执行切换命令** 输入以下命令并按回车: ```bash su - ``` *说明*: - `-` 参数会加载 root 用户的环境变量(如 PATH)和配置文件 - 省略 `-` 仅切换用户身份但不加载环境:`su root` 3. **输入 root 密码** ```bash Password: [输入 root 密码] ``` - 密码输入时不会显示字符(无视觉反馈) - 密码错误会示 `Authentication failure` 4. **验证切换成功** 成功后会显示 root 示符: ```bash root@hostname:~# ``` 特征: - 命令示符末尾从 `$` 变为 `#` - 执行 `whoami` 应返回 `root` #### ⚠️ 注意事项 1. **限限制** - 若系统配置了 `wheel` 组限制(引用[3]),需先将自己加入 wheel 组: ```bash sudo usermod -aG wheel 用户名 ``` - 检查 `/etc/sudoers` 是否包含: `%wheel ALL=(ALL) ALL` 2. **密码问题** - **忘记 root 密码**: 重启进入 recovery 模式重置(需物理访问限) - **从未设置 root 密码**: ```bash sudo passwd root ``` 3. **安全实践** - 日常操作建议使用 `sudo` 代替完整切换(引用[1]) - 完成 root 操作后立即退出: ```bash exit # 或 Ctrl+D ``` #### 🔍 故障排查 | 错误示 | 原因 | 解决方案 | |---------|------|---------| | `Authentication failure` | 密码错误 | 检查 Caps Lock,确认密码 | | `su: Permission denied` | 用户禁止切换(引用[1]) | 检查 `/etc/sudoers` 限制 | | `su: cannot set groups` | 缺少 wheel 组限(引用[3]) | 联系管理员添加用户到 wheel 组 | > **关键示**:生产环境中建议通过 `sudo -i` 替代直接切换 root,可保留操作日志[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值