linux – 以不同的用户身份运行shell脚本

前端之家收集整理的这篇文章主要介绍了linux – 以不同的用户身份运行shell脚本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
shell脚本作为不同用户运行的好方法是什么.我正在使用Debian etch,我知道我想要冒充哪个用户.

如果我是手动操作,我会这样做:

su postgres
./backup_db.sh /tmp/test
exit

由于我想自动化该过程,我需要一种方法来运行backup_db.sh作为postgres(继承环境等)

谢谢!

解决方法

要将您的脚本作为另一个用户作为一个命令运行,请运行:
/bin/su -c "/path/to/backup_db.sh /tmp/test" - postgres

Breaking it down:
 /bin/su : switch user
 -c "/path/to..." : command to run
 - : option to su,make it a login session (source profile for the user)
 postgres : user to become

我建议总是在这样的脚本中使用完整路径 – 你不能总是保证在你su时你会在正确的目录中(也许有人改变你的homedir,谁知道).我也总是使用su(/ bin / su)的完整路径,因为我是偏执狂.有可能有人可以编辑您的路径并导致您使用受损版本的su.

猜你在找的Linux相关文章