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.

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...