redhat7 出现/bin/sudo must be owned by uid 0 and have the setuid bit set 怎么解决
时间: 2024-09-17 10:09:01 浏览: 70
PostgreSQL14离线安装包,适配CentOS7/RedHat7
当你看到`/bin/sudo: must be owned by uid 0 and have the setuid bit set`这样的错误提示,通常意味着`sudo`脚本文件的权限设置不符合sudo的要求。在Red Hat 7及类似版本中,sudo期望它的可执行文件(`/bin/sudo`)应由root用户ID (uid 0) 所拥有,并且应该设置setuid位(SUID),以便所有用户都可以以sudo身份运行它,但不会丢失控制权。
解决这个问题的步骤如下:
1. **确认权限**: 首先,检查sudo文件的属主和权限:
```
ls -l /bin/sudo
```
如果看到的是非root用户ID,你需要切换到root用户或者使用`sudo`来执行以下步骤:
2. **改变文件所有者**:
```
sudo chown root:root /bin/sudo
```
或
```
sudo chmod u+s /bin/sudo
```
3. **检查并修复SUID位**:
如果`chmod`命令没有显示SUID已被设置,你应该会看到`u+s`,表示它已经被设为SUID。如果没有,添加"S"(例如 `sudo chmod 4755 /bin/sudo`)。
4. **重启服务(如果需要)**:
确认更改生效后,可能需要重启`sudo`服务或系统,让更改生效:
```bash
sudo systemctl restart sudoserver
```
5. **验证**:
使用`id`命令确认sudo文件现在是由root用户拥有,且设置了SUID。
完成后,`/bin/sudo`应该满足sudo的权限要求了。
阅读全文