Ubuntu Linux “su” 禁用密码

Ubuntu Linux “su” 禁用密码

我试图在 Ubuntu Linux 中,在“su”命令期间摆脱密码提示。基本上,我需要做类似的事情:

su otheruser

使我的一些应用程序能够以批处理模式运行。但是,由于它是以批处理模式运行的,因此我想禁用密码提示。

我尝试做的是:

sudo visudo
otheruser ALL=(ALL) NOPASSWD: /bin/su 

但这仍然要求我输入密码。

例如,为了禁止 sudo 询问密码,我执行以下操作:

sudo visudo
otheruser ALL=NOPASSWD: ALL

并且运行正常。但是,当我使用 su 尝试此操作时,它不起作用。

有人遇到过这个问题吗?任何指导都将不胜感激。

答案1

susudo与文件没有任何关系sudoers总是要求输入目标用户的密码。(即使输入了,您在“sudoers”中输入的用户名也是错误的。)

对于批量使用,你可以使用,以及sudoers 中的选项。例如:sudo -u otheruserNOPASSWD

$ sudo visudo

JohnJ    ALL=(otheruser) NOPASSWD: /usr/bin/myprogram

$ sudo -u otheruser myprogram

答案2

这里有两个解决方案,首先你需要知道什么是“设置用户位” http://en.wikipedia.org/wiki/Setuid是/做。要做到这一点,请阅读例如http://meinit.nl/set-user-id-bit-demostration

不过要小心,因为如果您没有正确设置,就会存在很多安全漏洞,因为这是一个强大的工具,“能力越大,责任越大”;)请注意,本教程适用于传统系统,如果您有 ACL(访问控制列表),则需要授予相应的 suid 权限。

解决方案 1:从安全角度来看,这是更好的选择:如果您想要 su 到一两个特定用户,请准备一两个 suid 到这些用户的文件。如果您有更多用户,则根据您正在做的事情,创建一个用户组并使用该组。

解决方案 2:有时最简单的方法:将文件 suid 设置为 root。这特别危险,请避免。

相关内容