用于切换用户的简单非交互式工具

用于切换用户的简单非交互式工具

我需要一个由 root 运行的工具,通过切换到另一个用户来放弃 root 权限,然后执行由命令行参数指定的另一个程序。用例:在非特权用户下从(自定义)初始化脚本运行某些程序。

我想避免使用susudo因为它们有不同的用途(为非特权用户提供成为 root 的交互方式),比此任务所需的要复杂得多,根据各种配置文件改变行为,并将内容写入系统日志。

有这样的工具可用吗?

更新:我找到了深藏的答案在 stackoverflow 上:它setuidgid来自 daemontools(或s6-setuidgid来自 s6)。显然,daemontools 的作者一些su还有不用于运行守护进程的原因。

唯一的缺点是setuidgid会随其启动的程序一起运行。理想情况下,我更希望它exec代替spawn/fork以保持进程表更清洁,但这不是什么大问题。

答案1

runuser用于此目的并且其通常从初始化脚本运行。

它基本上su没有 PAM 集成。

相关内容