以 sudo 为 root 执行命令

dav*_*vid 1 sudo

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

sudo gedit file.txt
Run Code Online (Sandbox Code Playgroud)

应该问我 root 密码。

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

[sudo] password for currently_logged_in_user:
Run Code Online (Sandbox Code Playgroud)

输入密码后,结果如下:

currently_logged_in_user is not in the sudoers file.
This incident will be reported.
Run Code Online (Sandbox Code Playgroud)

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

Pan*_*her 5

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

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

例如,对于用户 joe

joe     ALL = /usr/bin/gedit
Run Code Online (Sandbox Code Playgroud)

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

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

有关详细信息,请参阅http://www.gratisoft.us/sudo/sudoers.man.htmlhttps://help.ubuntu.com/community/RootSudo

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

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

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

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

如果您真的希望限制使用,请使用 apparmor。