bash - 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
第一个只是在用户进入文件夹时进入,离开并在我自己的用户上发送密码 第二个在用户进入文件夹时进入,离开,以用户身份进入并发送密码
欢迎任何帮助!谢谢!
解决方案
每个sudo
命令都会启动一个新的 shell 进程,因此一个命令所做的进程更改不会影响下一个命令。
您需要在单个 shell 进程中运行所有内容。您可以通过bash
显式运行来做到这一点。
sudo -i -u "site" bash -c 'cd /home/site/public_html && pwd'
推荐阅读
- python - 如何比较数组的两个索引(不是这些索引的值)?
- r - 如何通过 sapply 替换 for 循环或在从 MySQL 加载空间数据的函数中应用
- hibernate - Jpa fetch 和 n+1 问题
- java - 无头 Chrome - 获取空白页面源
- javascript - 根据两个条件过滤嵌套的json
- c# - 为什么在交换插槽时 Azure 应用服务会重新启动?
- c# - 无法修改控件集合
- r - 如何绕过 ggplot2 中覆盖 drop = FALSE 的限制
- asp.net - 无法访问 asp.net 应用程序中的控件
- azure - Azure 通知中心 - 安装是否可以防止重复通知?