![以其他用户身份运行 shell 脚本,但目录保持不变](https://linux22.com/image/1011554/%E4%BB%A5%E5%85%B6%E4%BB%96%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E8%BF%90%E8%A1%8C%20shell%20%E8%84%9A%E6%9C%AC%EF%BC%8C%E4%BD%86%E7%9B%AE%E5%BD%95%E4%BF%9D%E6%8C%81%E4%B8%8D%E5%8F%98.png)
我必须以 root 身份运行 bash 脚本。但是在这个脚本中,有一些命令需要我以普通用户(他的名字是“ubuntu”)的身份运行,但是执行这些命令时我不希望当前工作目录发生变化。
我尝试过但效果不佳的事情:
假设我在一个文件夹中:/var/www
并且我处于超级用户模式。
-u
sudo -u ubuntu pwd
给我/var/www
,即好的。- 但却
sudo -u ubuntu which composer
没有给我任何东西,坏的。
-i -u
sudo -i -u ubuntu which composer
/home/ubuntu/bin/composer
给了我好的。- 但给
sudo -i -u ubuntu pwd
了我/home/ubuntu
坏的。
我也尝试添加 -H 或 -s,但没有任何帮助。
我可以使用什么样的选项或技巧来实现这一点?