我的问题很简单:当我是root时,什么时候应该使用runuser作为另一个用户运行命令,而不是sudo或su命令?看起来都是一样的,我真的不知道有什么区别。
root
runuser
sudo
su
j91ykkif1#
(回答社区维基,以避免回答一个明显离题的问题)。runuser * only * 用于删除权限。因此,它可以被安装在某些人设计的系统上,这些人非常谨慎,不允许使用su或sudo,这两种系统都需要一个setuid位(因此,在出现错误或错误配置时,可以将任意的非特权用户升级为root用户;特别是sudo中的bug并非闻所未闻)。如果你正在为这样的系统编写软件,你 * 必须 * 使用runuser。如果您正在编写要在 * 完全任意 * 系统上运行的软件,并且不想依赖于setuid可执行文件,那么您可能希望选择一些不那么特定于Linux的东西,而不是runuser--就个人而言,我喜欢runit中的chpst。如果您编写的软件可以在完全任意的系统上运行,并且不关心这些,那么可以使用您个人喜欢的任何软件。
runit
chpst
1条答案
按热度按时间j91ykkif1#
(回答社区维基,以避免回答一个明显离题的问题)。
runuser
* only * 用于删除权限。因此,它可以被安装在某些人设计的系统上,这些人非常谨慎,不允许使用su
或sudo
,这两种系统都需要一个setuid位(因此,在出现错误或错误配置时,可以将任意的非特权用户升级为root用户;特别是sudo
中的bug并非闻所未闻)。如果你正在为这样的系统编写软件,你 * 必须 * 使用
runuser
。如果您正在编写要在 * 完全任意 * 系统上运行的软件,并且不想依赖于setuid可执行文件,那么您可能希望选择一些不那么特定于Linux的东西,而不是
runuser
--就个人而言,我喜欢runit
中的chpst
。如果您编写的软件可以在完全任意的系统上运行,并且不关心这些,那么可以使用您个人喜欢的任何软件。