以特定用户/切换用户身份运行预置命令

以特定用户/切换用户身份运行预置命令

除了创建普通用户的常规设置之外foo,我还想
d-i preseed/late_command以该foo用户的身份运行一些命令。

我最初的想法是简单地用 调用这些命令sudo,例如:
d-i preseed/late_command in-target echo "<pwd>" | sudo -Si <command>
这适用于某些命令。然而问题是,有些命令加载了需要不是使用 sudo 运行。

发出su -c "<command>"是一种替代方法,但su不提供从 读取密码的可能性stdin

使用用户之间跳转是否安全su(如果是,我如何提供标准输入?它是否有效或只导致su: must be run from a terminal)或者这会导致问题?

答案1

也许可以考虑研究一下“expect”命令。

expect - programmed dialogue with interactive programs

它将允许您向 su 发送密码。它应该从 di preseed/late_command 工作。

相关内容