我只是想知道是否可以作为指定用户在 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“在此输入您的密码”