如何非交互地su?

Non*_*714 4 scripting linux user-management

我想做这样的事情来非交互地切换用户:

su otheruser -p <password>
Run Code Online (Sandbox Code Playgroud)

但这显然行不通……什么行呢?

ton*_*ioc 6

您可以使用 echo :

echo <otherpwd> | su - otheruser -c "my command line"
Run Code Online (Sandbox Code Playgroud)

或期望:

expect -c 'spawn su - otheruser -c "my command line"; expect "Password :"; send "<otherpwd>\n"; interact'
Run Code Online (Sandbox Code Playgroud)

但这意味着密码以明文形式存储在脚本中,这绝不是一件好事。真的,sudo 将是最好的方法......