我现在的情况真的很糟糕。我正在记下我陷入这种境地的步骤。
sudo
我的目标是在我的计算机上禁用它。
我正在运行 Amazon Ec2 Ubuntu 12.04
我使用此命令创建了 root 密码。
sudo passwd
此时我是“ubuntu”用户。
我
/etc/sudoers
使用 nano 编辑了我的文件并执行以下操作。#ubuntu ALL=(ALL) NOPASSWD:ALL----This enabled no password ubuntu ALL=(ALL) ALL---this enables password
所以我的文件看起来像(在我退出之前)
#ubuntu ALL=(ALL) NOPASSWD:ALL #ubuntu ALL=(ALL) NOPASSWD:ALL----This enabled no password ubuntu ALL=(ALL) ALL---this enables password
现在,当我使用该sudo
命令时,出现以下错误,这显然是因为我弄乱了文件:
ubuntu@ip-10-144-143-249:~$ sudo
sudo: >>> /etc/sudoers.d/90-cloudimg-ubuntu: syntax error near line 4 <<<
sudo: parse error in /etc/sudoers.d/90-cloudimg-ubuntu near line 4
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
但是当我使用这些命令时su
,su root
它会要求我输入在步骤 1 中设置的密码。
但每次我输入密码时,都会收到一条身份验证失败消息,尽管我 100%确定我输入的密码正确:
ubuntu@ip-10-144-143-249:~$ su
Password:
su: Authentication failure
我不知道现在该怎么办。我在网上查了几个解决方案,其中一种方法建议分离并重新连接卷。这可以做到,但由于这是生产环境,会出现很多问题。有没有什么方法/技巧可以让我让 sudo 操作正常工作?
答案1
拉胡尔,首先你应该修复该sudoers
文件。
在桌面上创建一个 sudoers 文件并将以下行粘贴到其中:
#
# 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"
# 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
好的,现在你必须sudoers
用新文件替换原始文件,使用ctrl+F1切换到 tty,尝试成为 root 并输入
mv /home/RAHUL/Desktop/sudoers /etc/sudoers
如果您不能成为 root 用户,那么您必须从实时 Ubuntu 启动,然后按照上述步骤操作。
答案2
以下是我为解决这个问题所做的事情-
- 启动了一个与硬件相同(搞乱了的那个)的实例。
- 停止混乱的uo实例。
- ssh 完整的 ubuntu 文件夹(其中包含需要的所有文件)。
- 启动副本服务器并确保一切正常。(我们使用 Mongo、Mysql、Tomcat 和 Java)。
- 完成后,我分离了用于混乱实例的弹性 IP,并将其附加到副本实例。
现在您有一个具有相同配置和 IP 的新运行实例。
耗时 30 分钟。
答案3
您输入的密码错误。sudo passwd
正在更改 root 用户的密码,而不是 sudo 所需的密码。此外,root 帐户通常在 ubuntu 中被锁定,因此您无法通过su
或成为 root su root
,请参阅这里。
您对 90-cloudimg-ubuntu 所做的一切可能都与身份验证失败无关。您确定这ubuntu ALL=(ALL) ALL---this enables password
在语法上是正确的吗?首先,注释应该以 开头#
。
为了防止任何用户执行sudo
,请从 /etc/group 中的 sudo 组中删除所有用户。您打算随后以 root 身份登录吗?