因此,我以用户“Shannon”的身份登录,但当我被提示安装程序时,无法通过 GUI 获得 root 访问权限。但是使用sudo su
,输入 root 密码,通过终端获得访问权限,然后从那里安装程序。这些密码不应该是相同的吗?
有人知道如何解决这个问题吗?
答案1
好的,让我简单解释一下。有两个不同的用户:Shannon
和root
。在 Ubuntu 中,默认情况下root
没有密码根本无法登录根本。如果想执行需要 root 权限的任务,他使用查阅名为 的文件的 Shannon
命令,并能够将其转换为。sudo
/etc/sudoers
Shannon
root
默认情况下,sudo
想要确保Shannon
确实是Shannon
他的狗,而不是刚刚接管键盘的狗。这就是为什么要求sudo
用户Shannon
他的(而不是 root 的)密码。还请注意,“需要 root 权限的任务”可以是 bash shell,这实际上意味着您可以以 root 身份登录(无需使用 root 密码!)。
因此,并不是两个用户(Shannon
和)的密码不同,而是实际上没有要求输入root
的密码root
根本。
就我个人而言,我没有养狗;这就是为什么我修改了它/etc/sudoers
,让它从不询问我的密码——有密码就足够了。使用命令,sudo visudo
我编辑/etc/sudoers
了以下行:
%sudo ALL=(ALL:ALL) ALL
上面这一行的意思是来自 sudo 组的所有用户(如果他安装了他的系统,我只能假设他Shannon
属于这个组)基本上可以运行所有 root 命令。
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
啊,但是现在 NOPASSWD 指令确保我不仅可以以 root 身份运行任何程序,还可以在运行它时不必输入密码。请注意,要编辑此文件,我必须使用该程序visudo
可以确保我不会犯任何语法错误。sudoers
文件中的语法错误可能会完全禁用 sudo 系统——然后,如果 root 没有密码,你就陷入了困境。
更令人困惑的是,还有另一个程序允许暂时获得 root 权限,名为su
。然而,su
它更原始——它只要求输入密码根的。因此,它不起作用在默认的 Ubuntu 安装中。
那么,当您输入 时,实际上会要求输入哪个密码sudo su
?好吧,您首先运行的命令是sudo
,而不是su
。因此,要求您输入Shannon
的密码,而不是 root 的密码。sudo
然后获得 root 权限并su
以 root 身份运行。但是当 root 运行 时su
,su
不会要求输入密码。无论如何,不要这样做——这就是 的用途sudo -i
(做完全相同的事情)。
答案2
默认情况下,ubuntu 中的 root 权限是被锁定的。
为了获取 root 权限,我们会使用sudo su
它来输入密码。
在安装任何软件时,它也会提示输入相同的密码。
要解锁 root 帐户sudo -i
,请使用passwd
这种方式,您可以解锁 root 帐户,尽管我们不建议这样做。