我在终端中输入 sudo 命令时经常被要求输入 sudo 密码,但我记不住我是否是 sudo 用户。同样,我也不知道任何超级用户的密码。我对这个密码问题感到困惑。
例子:
$ sudo aplay -l
[sudo] password for deepak:
我不知道在上一个询问密码的命令中该怎么做。与上面的例子类似,我多次被要求输入 sudo 密码。我该如何解决?
答案1
这只是您的常用密码。
运行命令的密码sudo
是你的密码,而不是单独的密码。它是与以下密码相同的密码:
- 你在安装 Ubuntu 或创建账户时输入的
- 您在登录屏幕上输入(除非您有自动登录)
- 您输入以解锁屏幕
当终端要求你输入密码时,键入时不显示任何内容是正常现象。要输入该命令的密码sudo
,请输入密码并按Enter。
如果您正确输入了密码,并且是管理员——在 Ubuntu 上,指的是被允许通过以下方式以 root 用户身份执行操作的用户
sudo
和波尔基特--然后命令将运行。(非管理员sudo
也可以被允许运行某些命令,但默认情况下不设置。)如果您正确输入了密码,但您不是管理员,并且不允许以 root 身份运行该命令
sudo
,那么您将收到错误:username is not in the sudoers file. This incident will be reported.
(“报告”只是意味着写入日志文件。尝试在
sudo
您自己的计算机上运行您的用户帐户未设置为允许运行的命令是无害的,可怕的“此事件将被报告”的事情可以忽略。)
要查看您是否已设置为sudo
root,请检查您是否在该sudo
组中。
另一种确定您的用户帐户是否是管理员并允许以 root 身份运行命令的方法sudo
是检查它是否是该组的成员sudo
。要列出您所在的所有组,请运行:
groups
用户通常属于他们自己的组(名称与他们的用户名相同)和其他几个组。如果您是管理员,则输出groups
将类似于:
username adm cdrom sudo dip plugdev lpadmin sambashare
如果您不是管理员,它将看起来像这样(即,它不包含sudo
):
username adm cdrom dip plugdev lpadmin sambashare
如果您只有一个用户帐户,并且该帐户已从sudo
组中删除,请参阅如何将自己重新添加为 sudo 用户?但这种情况并不常见。
想要了解更多详细信息,可以询问sudo
你的能力。
确定您是否是管理员的第三种方法是运行sudo -l
。您必须输入密码。然后:
未设置运行任何命令的非管理员
sudo
将看到该消息Sorry, user username may not run sudo on host.
在哪里
username
是您的用户名host
是您的 Ubuntu 系统的主机名(计算机名)。管理员(即群组成员
sudo
)将看到一些以下列行结尾的信息:User username may run the following commands on host: (ALL : ALL) ALL
设置为以 root 身份运行某些命令(但不是所有命令)的用户将看到记录其能力的输出。(请参阅
man 5 sudoers
了解技术细节。
进一步阅读
- 根须藤(在 Ubuntu 帮助 wiki 中——我强烈建议阅读此文,以了解
sudo
Ubuntu) - 的手册页
sudo
,您可以通过运行命令来阅读man sudo
,或者在线的。 - 须藤和超级用户在维基百科上
- 询问 Ubuntu标签 维基为了须藤
- 如何不成为 root 用户?管理员是 root 吗?
- 如何知道我是否是 Ubuntu 的管理员?
- 如何使用命令行添加新用户作为 sudoer?
答案2
getent group sudo | grep your-user-name
如果您在上面的命令列表中找到您的用户名,那么您就是 sudo。
使用无密码的 sudo这是完全不建议的,而且会使您面临损害系统的风险。
打开终端窗口并输入:
sudo visudo
在文件底部输入以下内容:
username ALL=(ALL) NOPASSWD: ALL