it-swarm.cn

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

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

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

56
gharper

是的,这是可能的。

/ etc/sudoers中,紧随等号之后的项目是允许执行命令的用户。

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

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

45
Brent

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

tom ALL=(Oracle) ALL

然后,用户tom应该能够使用Sudo以带有-u选项的Oracle用户身份运行事物,而不必让tom

即以Oracle用户身份获得Shell(好吧,鉴于您的Sudo足够新,可以使用-i选项)。

Sudo -u Oracle -i
42
Kjetil Joergensen

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

tom            ALL=(Oracle)    /bin/bash

然后,汤姆可以:

Sudo -u Oracle bash -i
9
karimofthecrop

例如,我希望允许Tom DBA起诉Oracle用户,而不是Tomcat用户或root。

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

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

注意:在您的情况下,您已经具有该组,因为当您使用adduser Oracle成为Oracle用户时,会创建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>

在这种情况下,用Oracle替换<groupName>。这将允许<groupName>中的任何用户到su <groupName>

现在tom可以su Oracle,并且如果您需要授予其他用户相同的访问权限,请将其添加到Oracle组中。

类似的问题 这里

0
jtlindsey