【发布时间】:2019-07-09 00:14:36
【问题描述】:
我正在尝试创建一个 EC2 用户数据脚本以在启动时运行其他脚本。但是,我运行的脚本无法识别我已经声明的一些命令和变量。我以“ubuntu”用户身份运行命令,但它仍然无法正常工作。
我的用户数据脚本如下所示:
export user="ubuntu"
sudo su $user -c ". ./run_script"
在脚本中,我有以下几行:
THIS_PATH="/some/path"
echo "export SOME_PATH=$THIS_PATH" >> ~/.bashrc
source ~/.bashrc
但是,脚本无法运行SOME_PATH/application,而echo $SOME_PATH 这将返回一个空行。我很困惑,因为当我使用 SSH 登录 EC2 时,$SOME_PATH/application 有效,而我使用 whoami 的调试日志返回“ubuntu”。
我在这里遗漏了什么吗?
【问题讨论】:
-
用户数据脚本以
root用户身份运行。尝试简单地创建文件而不使用sudo,但您需要将文件chown发送给所需的用户,以便他们可以访问它们。 -
调用
sudo时是否已经创建了用户ubuntu?试试sudo su ubuntu -c "touch /tmp/sudo_test"看看是谁创建了那个文件。看find / -name .bashrc的修改日期改了哪一个(从root?sudo su - $user ...之后这个变了吗?) -
致 John:我可以使用 root 和 ubuntu 用户创建文件。对沃尔特:是的。
标签: bash amazon-web-services amazon-ec2