Get*_*etz 8 linux shell user su
我需要在 shell 脚本中以特定用户身份运行一些命令行。
我发现(至少)两种方式:
su user -c 'command' runuser -l user -c 'command'
这两个命令之间有显着区别吗?
Rad*_*ska 10
正如问题评论中已经写的那样,runuser 基本上是一个不使用 PAM 堆栈的 su。
为了提供更多细节,根据Dan Walsh(runuser 作者之一)的博客文章,似乎 runuser 实际上是从 su 源编译的,除了编译时排除了 PAM 堆栈。不同之处在于使用 runuser 而不是 su 可以防止一些 SELinux 错误。那个帖子还说:
每当服务以 root 身份运行并希望使用 shell 更改 UID 时,它应该使用 runuser。 当您以用户身份登录 shell 并希望成为 root 时,您应该使用 su。(或者更好的是sudo)
每当服务以 root 身份运行并希望使用 shell 更改 UID 时,它应该使用 runuser。
当您以用户身份登录 shell 并希望成为 root 时,您应该使用 su。(或者更好的是sudo)
归档时间:
9 年,5 月 前
查看次数:
9078 次
最近记录:
8 年,10 月 前