sudo应该如何使用?


24

我之前尝试过配置sudo,但是运气还不高。su -l -c "x"有何不同?似乎可以通过配置文件做到这一点,因此用户只能访问某些命令或更多命令。我一直认为sudo这是一种将命令作为另一个用户或组作为一行的一种方法。由于像Ubuntu和Mint这样的发行版通过本质上使主要用户可以通过密码轻松访问root来简化操作,所以我不确定它的预期用途。

如何将用户添加到sudo文件中,赋予他们仅在根目录下运行某些命令的权限?我也不想打开任何安全漏洞。

Answers:


16

对于基本操作(以root用户身份运行命令),sudo和su之间最明显的区别是sudo需要主叫用户的密码(即您的密码),而su需要目标用户的密码(即root密码)。在上一个问题中已经对安全性隐患进行了广泛讨论:哪一种获得root特权的最安全方法是sudo,su或login?

Sudo具有su之外的其他功能。特别是,一旦有了用户密码,就可以以该用户身份运行任何命令。另一方面,可以配置sudo,以便调用它的用户只能像其他用户一样运行特定命令。这是可能的,因为sudo不需要任何身份验证(除了可以通过键入密码来确认您是您的身份,但这与为任务进行用户身份验证有细微的区别)。

您可以通过以超级用户visudo身份运行命令来更改sudo配置(切勿直接编辑配置)。确保将环境变量EDITORVISUAL设置为您喜欢的编辑器,否则您可能会得到不熟悉的编辑器。该sudoers手册页是有点简洁,但有例子。为了允许用户bob运行/bin/foo(与任何数量的参数)和/bin/bar --safe(但不与任何其他参数)为root,使用下面的行:

bob ALL = (root) /bin/foo
bob ALL = (root) /bin/bar --safe

2
sudo是一项了不起的发明
tshepang 2011年

1
sudo是需要root密码还是root密码取决于配置。可以通过任何一种方式进行设置。
乔纳森·M·戴维斯

3
@Tshepang Amen,兄弟。如果我必须释放root密码并解释有关如何使用SU的支持技术,而除了apache2ctl graceful我认为我不愿意做/ anything /以外,不要做任何其他事情,我宁愿张开手腕并付诸实践。
Shadur

6

最大的区别是,sudo您不需要root密码即可像root那样以root身份运行命令su。您确实需要root密码才能将某人添加到sudoers文件中,但是此后该人可以以root 身份运行全部或部分(如果您已对其进行限制),而无需其他密码。

正如您已经指出的,另一个区别是sudo可以对可以运行的命令进行更精细的控制。

有关sudoers文件格式的详细信息,请运行man sudoers。您会在其中找到仅允许某些命令以root身份运行的示例。每行的基本结构是:

user_list host_list = cmd_list

cmd_list可以包含允许真实用户切换到哪个用户的详细信息。例如,您可以允许网站站长切换到wwwroot来重新启动apache,而不是root。它还可以包括其他选项,例如在切换之前是否需要用户密码(这是默认设置)。

示例行可能是:

joe  ALL=(ALL) ALL

这意味着:让joe以任何用户的身份在任何主机上运行任何命令。更严格的做法可能是:

joe  ALL=(operator) /usr/local/ops/

这意味着:让joe以用户“ operator”的身份运行/ usr / local / ops目录中的任何命令。

sudoers手册页末尾有很多示例。

您应该/etc/sudoers使用命令进行编辑visudo。这将检查文件是否合法,并有助于防止意外损坏文件。


使用sudo时是否需要密码完全取决于sudoers文件的设置方式。可以将其设置为需要密码,也可以将其设置为不需要密码。
乔纳森·M·戴维斯

避免更改主/ etc / sudoers文件的其他常用做法,因为IDS会监视它,并且由于其格式会破坏您的一天:在/etc/sudoers.d中将sudo片段用作单独的文件。使用车轮组的人可以执行任何命令。
bbaassssiiee

2

除了其他答案外,sudo还提供了日志记录功能,因此您可以跟踪运行了哪些命令以及由谁执行。这不是出于安全目的,因为获得sudo访问权限的恶意用户可以清除日志。不过,要弄清您或其他管理员上周凌晨2点的眼神,这非常有用。


3
出于安全目的,因为sudo支持登录到syslog,在任何与安全性有关的主要设置中,sudo都将配置为登录到单独的远程计算机,这样,如果系统受到威胁,则不会影响日志。
Arrowmaster

仅附加的文件属性可能会有所帮助+ a / var / log / secure
bbaassssiiee
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.