Answers:
是的,这是可能的。
在/ etc / sudoers中,等于之后的项目是允许用户以该命令执行的用户。
tom  ALL=(oracle) /bin/chown tom *
用户(tom)可以键入sudo -u oracle / bin / chown tom / home / oracle / oraclefile
在您的/ etc / sudoers中添加类似
tom ALL=(oracle) ALL
然后,用户tom应该能够使用sudo使用带有-u选项的oracle用户身份运行东西,而不必让tom
即以oracle用户身份获取shell(好吧,鉴于您的sudo足够新,可以使用-i选项)。
sudo -u oracle -i
tom ALL=(oracle)NOPASSWD:ALL来使sudo不询问密码
                    例如,我想允许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组中。
类似的问题在这里