首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sudoers -要求简单解释

sudoers -要求简单解释
EN

Ask Ubuntu用户
提问于 2012-04-02 14:25:04
回答 2查看 19.1K关注 0票数 31

每当我想要运行一些需要我做太多次的sudoer的东西时,我需要搜索/etc/sudoers的格式,再次提醒我写它的正确方法是什么。

现在,我在我的sudoers文件中看到了不同的写作风格,这是几个月来谷歌结果不同的结果。我还注意到,第二个示例(下面)似乎适用于XFCE,但不适用于肉桂(Gnome 3)。这可能是完全不相关的,但是我想一劳永逸地知道,sudoer行的正确语法是什么,给出的例子之间有什么区别呢?

  1. redsandro ALL=NOPASSWD:/path/to/command
  2. redsandro ALL=(ALL) NOPASSWD:/path/to/command
  3. redsandro ALL=(ALL:ALL) NOPASSWD:/path/to/command

另外,ALL的S是做什么的?一个用户,一个命令,但我需要使用ALL关键字最多三次?我做错了吗?

当然,省略NOPASSWD:会让您在允许运行命令之前输入密码,但有一点混淆之处在于=:的用法,因为行主题的最终命令可以由=:)加上,这会使语法混淆到类似的语义。

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2012-04-02 15:42:53

它不仅仅是一个用户和一个命令:

代码语言:javascript
复制
redsandro host=(user:group) tag:commands
  • host指定此行的主机名。除非您在需要不同规则的不同主机之间共享asudoers文件,否则使用特殊值ALL,这意味着“所有主机”是一个不错的选择。
  • user指定可以与-u选项一起使用哪些用户来运行命令。如果省略了这个选项,就不能使用-u选项。
  • group指定可以与-g选项一起使用的组。如果省略它,就不能使用-g选项。

usergroup都将特殊值ALL理解为“所有用户/组”。

如果省略了整个(user:group),就不能使用-u-g,而只能以根用户的身份运行命令。

  • tag允许您指定一些选项,如NOPASSWD

因此,对于第一个示例,您可以以root用户身份运行该命令,但不能使用-u-g作为任何其他用户或组来运行它。

对于示例2,您可以以根用户的身份运行该命令,也可以使用-u作为任何其他用户运行它。

使用3.您可以以根用户身份运行该命令,也可以使用-u-g作为任何其他用户或组运行该命令。

票数 42
EN

Ask Ubuntu用户

发布于 2012-04-02 15:45:12

我们把这个拆开:

redsandro ALL=(ALL:ALL) NOPASSWD:/path/to/command

redsandro是我们给予许可的用户名。把%放在最前面,使它适用于一个群体。

一切都是这个规则的名称。Sudoers可以做的不仅仅是授予全局权限。这就是事情变得复杂的地方。

=不需要解释

ALL:ALL reads (who_to_run_it_as:what_group_to_run_it_as)。通过这种方式,您可以允许运行命令,但只能在特定用户或组的上下文中运行。

NOPASSWD:告诉它关闭密码提示。

/path/to/命令允许您指定特定命令path_to_commmand、another_command

需要记住的是,虽然sudo主要是由家庭用户使用来升级到根权限,但它可以并且被用来以更细粒度的方式控制对特定命令的访问。

票数 10
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/118204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档