您好,我在尝试以 root 身份运行脚本时遇到了一个真正的问题,该脚本是根据用户需要使用 sudo 运行 wp-cli 。
我正在使用的命令是
sudo -u hstestsite1 -s "cd /home/hstestsite1/public_html; /usr/local/bin/wp plugin list"
我收到
/bin/bash: cd /home/hstestsite1/public_html; /usr/local/bin/wp plugin list: Permission denied
但是,如果我 su 到该用户并运行命令,一切正常
su - hstestsite1
cd /home/hstestsite1/public_html; /usr/local/bin/wp plugin list
+---------+----------+--------+---------+
| name | status | update | version |
+---------+----------+--------+---------+
| akismet | inactive | none | 3.3.3 |
| hello | inactive | none | 1.6 |
+---------+----------+--------+---------+
有任何想法吗?
干杯。
答案1
Sudo 不在其 shell 中处理多行命令,但您可以在 sudo 命令内创建一个 shell 并让该 shell 运行多个命令,如下所示:
sudo -u hstestsite1 -s sh -c "cd /home/hstestsite1/public_html; /usr/local/bin/wp plugin list"