在 Linux 中以不同用户身份运行可执行文件,无需知道密码

在 Linux 中以不同用户身份运行可执行文件,无需知道密码

有一个可执行文件通常由用户 A 运行,并且写入只有用户 A 才可以读取、写入等的目录中。是否可以允许同一组中的用户 B 以用户 A 的身份运行该可执行文件,以便它在相同的目录中写入等,而用户 B 不知道用户 A 的密码,也无法访问 root 权限(即无法使用 visudo)?

答案1

是的,可以使用chmod u+ssetuid 来执行此操作,并使用可执行文件所有者的有效 ID 来运行可执行文件。更多这里这里

答案2

设置sudo允许 B 以 A 的身份执行特定命令可能是最好和最安全的方法,但是您说您不能使用visudo

假设你的系统有一个可以正常工作的 ssh 服务器,你可以将 B 的公钥添加到/home/A/.ssh/authorized_keys。然后 B 可以运行:

ssh A@localhost some_command

而不需要知道A的密码。

问题是,这让 B 拥有了 A 帐户的完全访问权限。这比让 B 知道 A 的密码要好得多。

可能有方法可以设置 ssh 以允许 B 仅运行某些命令,但我不知道它们是什么。

chmod u+s, 作为妮可的回答建议,可能更干净;我应该想到这一点。)

相关内容