如何将sudo权限还原给用户

时间:2020-03-21 11:44:53  来源:igfitidea点击:

恢复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命令。