如何使用pbrun在shell脚本中以enterprisedb用户身份执行命令
基于pbrun的enterprisedb身份执行脚本方案
可直接使用的脚本模板
创建脚本文件run_as_edb.sh,内容如下:
#!/bin/bash # 无参数传入时输出用法提示 if [ $# -eq 0 ]; then echo "用法: $0 要执行的命令" echo "示例: $0 whoami" exit 1 fi # 核心执行逻辑 pbrun /bin/su - enterprisedb -c "$*"
使用步骤
- 给脚本添加执行权限:
chmod +x run_as_edb.sh - 执行单条带参数的命令示例:
./run_as_edb.sh ls -lh /var/lib/edb - 执行多条命令示例:
./run_as_edb.sh "whoami; echo 当前用户家目录: $HOME; ps -ef | grep postgres"
实现逻辑说明
你的pbrun策略已经允许以root身份运行/bin/su - enterprisedb命令,su命令的-c参数支持传入切换用户后要执行的命令,脚本中用"$*"包裹传入的所有参数,是为了保证带空格、特殊字符的命令也能完整传递给enterprisedb用户执行,不需要手动交互式登录切换用户。
执行./run_as_edb.sh whoami会直接返回enterprisedb,符合你的需求。
内容的提问来源于stack exchange,提问作者BeginnerSumB
相关产品推荐
相关产品推荐

