codedeploy运行钩子脚本的默认用户是什么?

时间:2016-07-29 11:33:18

标签: amazon-web-services aws-code-deploy

背景:我正面临此错误AWS codedeploy deployment throwing "[stderr] Could not open input file" while trying to invoke a php file from the sh file at afterInstall step

在afterInstall步骤中,我试图从afterInstall.sh文件运行一个php文件,我收到此错误 - 无法打开php文件。

我不确定究竟要做什么。考虑尝试手动检查我是否可以以该用户身份运行该文件。

2 个答案:

答案 0 :(得分:1)

  • runas是AppSpec文件中的可选字段。用户在运行脚本时进行模拟。默认情况下,这是在实例上运行的AWS CodeDeploy代理(如果您没有指定非root用户,则它将是root用户)。

  • 要以非root用户身份运行Host Agent,需要设置环境变量CODEDEPLOY_USER,因为主机代理源代码显示为link。 env变量可以设置为您希望主机代理运行的任何用户。

答案 1 :(得分:1)

CodeDeploy代理默认用户为root

下面的目录列表显示成功部署后目标文件夹/tmp中已部署文件的所有权。

ubuntu@ip-10-0-xx-xx:~$ ls -l /tmp
total 36
-rw-r--r-- 1 root root    85 Aug  2 05:04 afterInstall.php
-rw-r--r-- 1 root root    78 Aug  2 05:04 afterInstall.sh
-rw-r--r-- 1 root root  1397 Aug  2 05:04 appspec.yml
-rw------- 1 root root  3189 Aug  2 05:07 codedeploy-agent.update.log
drwx------ 2 root root 16384 Aug  2 03:01 lost+found
-rw-r--r-- 1 root root    63 Aug  2 05:04 out.log