以 root 身份使用 sudo 执行命令

以 root 身份使用 sudo 执行命令

我想使用gedit file.txtsudo 以 root 身份执行命令,例如:

sudo gedit file.txt

应该向我询问 root 密码。

目前,输入sudo gedit file.txt结果是:

[sudo] password for currently_logged_in_user:

输入密码后,结果为:

currently_logged_in_user is not in the sudoers file.
This incident will be reported.

所以我不得不使用,su root gedit file.txt这很不方便。

答案1

sudo 并不像您想象的那样工作。

您可以配置 sudo 以允许 root 访问命令(例如 gedit),但不允许指定文件。因此,如果您授予用户 gedit 的 root 访问权限,则该用户可以编辑任何系统文件。

例如,对于用户 joe

joe     ALL = /usr/bin/gedit

将授予 root 访问 gedit 的权限,但用户可以访问和编辑任何文件。

此外,默认情况下,Ubuntu 的 root 帐户是锁定的,sudo 使用调用用户的密码而不是 root 密码。但是,Sudo 具有高度可配置性,因此您不必访问 root,您可以使用 -u 标志指定备用用户。然后,您可以将 sudo 配置为使用目标密码(root 或其他)。您必须设置 root 密码。

http://www.gratisoft.us/sudo/sudoers.man.htmlhttps://help.ubuntu.com/community/RootSudofor细节

我认为您将想要更改相关文件的所有权,以便该文件归 root:some_group 所有,将用户添加到 some_group 并允许组编辑。

例子 -在 /var/www 中工作时如何避免使用 sudo?

因此 gedit 不能以 root 身份运行,并且用户可以用组权限编辑文件。

如果您需要更细粒度的控制,请使用 acl。

如果您确实希望限制使用,请使用 apparmor。

答案2

您的用户似乎没有管理员权限,因此无法调用 sudo。但是更改为 root 用户确实有效。解决方案是让您当前的帐户具有管理员权限。

如果您登录管理员帐户,然后通过用户帐户进行更改,则可以执行此操作。

相关内容