前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu Linux中恢复用户的sudo权限

如何在Ubuntu Linux中恢复用户的sudo权限

作者头像
入门笔记
发布2022-06-02 18:21:37
2.7K0
发布2022-06-02 18:21:37
举报
文章被收录于专栏:入门小站入门小站

介绍

我从sudo组中删除了我的管理用户。我只有一个超级用户,而且我已经取消了他的 sudo 权限。

每当我运行带有sudo前缀的命令时,都会遇到错误rumenz is not in the sudoers file. This incident will be reported

我无法使用sudo su命令切换到 root 用户。Ubuntu 中默认禁用 root 用户,因此我也无法以 root 用户身份登录。

恢复sudo权限

  • 步骤 1:将 Linux 系统引导至恢复模式。

为此,请重新启动系统并在启动时按住SHIFT键。你将看到 grub 启动菜单。从启动菜单列表中选择Ubuntu 的高级选项。

在 Grub 中为 Ubuntu 选择高级选项

在下一个屏幕中,选择recovery mode选项并按 ENTER:

在 Grub 菜单中选择恢复模式

接下来,选择Drop to root shell prompt选项并按ENTER键:

选择 drop to root shell 提示选项

你现在以 root 用户身份处于恢复模式。

Ubuntu 恢复模式

  • 第2步:以读/写模式挂载根文件系统。以读/写模式挂载根 (/) 文件系统。
代码语言:javascript
复制
mount -o remount,rw /
  • 第 3 步:现在,添加你从sudo组中删除的用户。

用以下命令将调用的用户添加rumenzsudo组中:

adduser rumenz sudo

从 Ubuntu 恢复模式恢复用户的 sudo 权限

  • 步骤 4:然后,键入exit返回到恢复菜单。选择Resume启动你的 Ubuntu 系统。

恢复正常启动

按 ENTER 继续登录正常模式:

在 Ubuntu 中退出恢复模式

  • 第 5 步:现在检查 sudo 权限是否已恢复。

为此,请从终端键入以下命令。

代码语言:javascript
复制
[sudo] password for rumenz: 
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 may run the following commands on ubuntuserver:
(ALL : ALL) ALL

用户rumenz现在可以运行所有带有 sudo 前缀的命令。你已成功恢复用户的 sudo 权限。

还有其他可能导致 sudo 损坏

我将自己从sudo组中移除并修复了上述损坏的 sudo 权限。

如果你只有一个 sudo 用户,不要这样做。而且,此方法仅适用于你具有物理访问权限的系统。如果是远程服务器或vps,修复起来非常困难。你可能需要托管服务提供商的帮助。

此外,还有另外两种可能导致 sudo 损坏。

  • /etc/sudoers文件可能已被更改。
  • 你或其他人可能更改了/etc/sudoers文件的权限。

修复Ubuntu中损坏的sudo

如果你已完成上述任何一项或所有操作并最终导致 sudo 损坏,请尝试以下解决方案。

  • 解决方案1:

如果你更改了/etc/sudoers文件的内容,请进入前面所述的恢复模式。

/etc/sudoers在进行任何更改之前备份现有文件。

代码语言:javascript
复制
cp /etc/sudoers /etc/sudoers.bak

然后,打开/etc/sudoers文件:

visudo

文件中的更改如下所示:

代码语言:javascript
复制
#
# 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 may 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

最后,键入exit并选择Resume以启动你的 Ubuntu 系统以退出恢复模式并继续以普通用户身份启动。

  • 解决方案2:

如果你更改了/etc/sudoers文件的权限,此方法将修复损坏的 sudo 问题。

在恢复模式下,运行以下命令为/etc/sudoers文件设置正确的权限:

代码语言:javascript
复制
chmod 0440 /etc/sudoers

为文件设置适当的权限后,键入exit并选择恢复以正常模式启动 Ubuntu 系统。最后验证你是否可以运行任何sudo命令。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 恢复sudo权限
  • 还有其他可能导致 sudo 损坏
  • 修复Ubuntu中损坏的sudo
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档