如何将sudo权限还原给用户
恢复sudo特权
将Linux系统引导到恢复模式。
为此,请重新启动系统并在启动时按住Shift键。
我们将看到GRUB启动菜单。
从Boot菜单列表中选择"Ubuntu的高级选项"。
在下一个屏幕中,选择"恢复模式"选项并按Enter键:
接下来,选择"删除root shell提示符"选项,然后点击键:
你现在处于root用户身上的恢复模式。
键入以下命令以在读/写模式下挂载根(/)文件系统。
mount -o remount,rw /
现在,添加从sudo组中删除的用户。
在我的情况下,我使用以下命令添加了将名为'sk'的用户添加到sudo组:
adduser sk sudo
然后,键入退出以返回恢复菜单。
选择恢复以启动Ubuntu系统。
按ENTER继续登录正常模式:
现在检查sudo权限是否已恢复。
为此,请从终端键入以下命令。
$sudo -l -U sk
示例输出:
[sudo] password for sk: Matching Defaults entries for sk on ubuntuserver: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin User sk Jan run the following commands on ubuntuserver: (ALL : ALL) ALL
如上所述,用户SK可以使用sudo前缀运行所有命令。
恭喜!我们已成功将Sudo权限恢复为用户。
还有其他可能导致破碎的sudo
请注意,我实际上是故意这样做的。
我从sudo组中删除了自己,并如上所述修复了破坏的sudo权限。
如果我们只有一个sudo用户,请不要这样做。
而且,此方法仅适用于我们有物理访问的系统。
如果是远程服务器或者vps,则很难修复它。
我们可能需要托管提供商的帮助。
此外,还有另外两种可能导致破碎的sudo。
- /etc/sudoers文件可能已更改。
- 我们或者某人可能会更改/etc/sudoers文件的权限。
如果我们已经完成了任何一个或者所有上述内容并最终用破坏的sudo,请尝试以下解决方案。
解决方案1:
如果我们已更改/etc/sudoers文件的内容,请按前面所述转到恢复模式。
在进行任何更改之前备份现有/etc/sudoers文件。
cp /etc/sudoers /etc/sudoers.bak
然后,打开/etc/sudoers文件:
visudo
使文件的更改为如下所示:
## This file MUST be edited with the 'visudo' command as root. ## Please consider adding local content in /etc/sudoers.d/instead of # directly modifying this file. ## See the man page for details on how to write a sudoers file. #Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group Jan gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d
修改内容以反映这样的内容后,按Ctrl + X和Y保存并关闭文件。
最后,键入"退出"并选择"恢复"以启动Ubuntu系统以退出恢复模式,并继续作为普通用户启动。
现在,尝试使用sudo前缀运行任何命令来验证sudo权限是否已恢复。
解决方案2:
如果我们更改了/etc/sudoers文件的权限,则此方法将修复破坏的sudo问题。
从恢复模式下,运行以下命令将正确的权限设置为/etc/sudoers文件:
chmod 0440 /etc/sudoers
一旦设置了文件的正确权限,请在"退出"中,然后选择"恢复"以在正常模式下启动Ubuntu系统。
最后,验证我们是否能够运行任何sudo命令。