如何允许一个用户在不允许root用户访问的情况下求助于另一个用户?


53

我想允许某些用户使用另一个用户帐户,而不必知道该帐户的密码,但不允许访问任何其他用户帐户(即root)。
例如,我想允许Tom DBA su到oracle用户,而不是tomcat用户或root。

我想这可以通过/ etc / sudoers文件来完成-有可能吗?如果是这样,怎么办?

Answers:


44

是的,这是可能的。

/ etc / sudoers中,等于之后的项目是允许用户以该命令执行的用户。

tom  ALL=(oracle) /bin/chown tom *

用户(tom)可以键入sudo -u oracle / bin / chown tom / home / oracle / oraclefile


5
这将允许Tom以oracle身份运行命令,但实际上不能成为oracle用户
gharper

11
sudo -u oracle su-呢?这将给他一个以oracle用户打开的外壳。那是你要的吗?
布伦特

对于最后一条评论+1,布伦特。那就是我的答案。
Annika Backstrom,2009年

3
类似以下内容的方法将起作用:sudo -u oracle -s或sudo -u oracle -i(-s用于shell,-i用于登录-执行登录shell)。不幸的是,我不知道您会在/ etc / sudoers中使用什么来限制用户,但是鉴于您允许他们对shell进行访问,您可能只想执行tom ALL =(oracle)ALL,就像其他人提到的那样。如果他们可以运行Shell,您可能根本不在乎限制它们可以运行的命令。
标记

1
理想情况下,您是否不想让Tom以oracle用户身份运行命令,而不是成为oracle用户?区别很小,但是它提供了很好的审核日志,而不必使用审核外壳。
Scott Pack

40

在您的/ etc / sudoers中添加类似

tom ALL=(oracle) ALL

然后,用户tom应该能够使用sudo使用带有-u选项的oracle用户身份运行东西,而不必让tom

即以oracle用户身份获取shell(好吧,鉴于您的sudo足够新,可以使用-i选项)。

sudo -u oracle -i

5
我不得不使用语法tom ALL=(oracle)NOPASSWD:ALL来使sudo不询问密码
snowindy 2015年

9

要仅提供问题中的功能,请在/ etc / sudoers中添加以下内容:

tom            ALL=(oracle)    /bin/bash

然后,汤姆可以:

sudo -u oracle bash -i

0

例如,我想允许Tom DBA su到oracle用户,而不是tomcat用户或root。

我最近需要对系统执行此操作,并且很难找到我几年前使用的替代设置(也允许使用语法)的注释su <user>。在我的情况下,我需要允许多个用户共享su一个特定的用户。

使用addgroup <groupName>其他用户su无需密码即可创建的组。然后将该组添加到您希望su无需密码即可对每个用户进行登录的每个用户:( usermod -a -G <groupName> <userName>usermod -a -G oracle tom)。在下次登录之前,组更改可能不会生效。

注意:在您的情况下,您已经有了组,因为oracle使用设置oracle用户时会创建组adduser oracle

现在,编辑/etc/pam.d/su以下内容:

# This allows root to su without passwords (normal operation)
auth       sufficient pam_rootok.so

..add auth规则行,因此该部分如下所示:

# This allows root to su without passwords (normal operation)
auth       sufficient pam_rootok.so
auth       [success=ignore default=1] pam_succeed_if.so user = <groupName>
auth       sufficient   pam_succeed_if.so use_uid user ingroup <groupName>

在这种情况下,请替换<groupName>oracle。这将允许这是部分的任何用户<groupName>,以su <groupName>

现在tom可以su oracle,如果需要给其他用户相同的访问权限,请将其添加到oracle组中。

类似的问题在这里

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.