首页 > 解决方案 > BashScript - Sudo 作为用户,进入某个文件夹并运行命令

问题描述

我是 Bash 脚本的新手,我一直在尝试 sudo 作为某个用户,输入特定文件夹并运行命令。我在下面尝试了这个命令:

#!/bin/bash
sudo -i -u "site"  cd /home/site/public_html && pwd

或者

#!/bin/bash
sudo -i -u "site" cd /home/site/public_html
sudo -i -u "site" pwd

第一个只是在用户进入文件夹时进入,离开并在我自己的用户上发送密码 第二个在用户进入文件夹时进入,离开,以用户身份进入并发送密码

欢迎任何帮助!谢谢!

标签: bashshell

解决方案


每个sudo命令都会启动一个新的 shell 进程,因此一个命令所做的进程更改不会影响下一个命令。

您需要在单个 shell 进程中运行所有内容。您可以通过bash显式运行来做到这一点。

sudo -i -u "site" bash -c 'cd /home/site/public_html && pwd'

推荐阅读