Bash 脚本以用户身份执行命令

Bash 脚本以用户身份执行命令

我只是想知道是否可以作为指定用户在 bash 脚本中执行命令并在一个字符串中提供密码。

此刻我有

COMMAND="${DIRECTORY}/script.sh"

su -c postgres $COMMAND

但这要求我输入密码,我无法一直输入该密码,因为该脚本每小时都会在 cron 中运行

答案1

几种可能性:

须藤

如果您可以以足够安全和​​灵活的方式配置它来满足您的调用,那么您可以使用它sudo来允许脚本用户以用户身份运行命令,postgres而无需输入密码。

sudo 与包装脚本

postgres您可以编写一个可由或仅写入的包装器脚本root,并检查调用(脚本参数)是否正确。sudo可以允许脚本用户使用随机参数调用包装器脚本,如postgres.

SSH

如果只需要执行一个命令行,那么您可以使用 SSH。您可以将某个键绑定到命令,即该键不能用于其他任何操作。

答案2

我们可以使用管道来应用密码,我已经使用它并且它工作得很好。

命令=“${DIRECTORY}/script.sh”

su -c postgres $命令| passwd“在此输入您的密码”

相关内容