我在 Azure linux(使用自定义脚本扩展)和 AWS Linux box(使用用户数据)中运行相同的脚本,但是当脚本完成时,我可以看到在两个服务器中创建的相同文件具有不同的文件权限。
更新:现在已经解决了。 我终于找到了答案。 这是在 linux 上强制执行的 selinux。禁用它解决了我所有的问题。
最佳答案
在 Azure 中,您可以使用 Azure 自定义脚本扩展来创建文件,Azure 将使用 root
帐户创建文件。
使用自定义脚本扩展创建file1
,你可以在这个 /var/lib/waagent/Microsoft.OSTCExtensions.CustomScriptForLinux-1.5.2.2/download/0
中找到 file1 ,像这样:
root@jasonvm:/var/lib/waagent/Microsoft.OSTCExtensions.CustomScriptForLinux-1.5.2.2/download/0# pwd
/var/lib/waagent/Microsoft.OSTCExtensions.CustomScriptForLinux-1.5.2.2/download/0
root@jasonvm:/var/lib/waagent/Microsoft.OSTCExtensions.CustomScriptForLinux-1.5.2.2/download/0# ls -al
total 12
drwxr-xr-x 2 root root 4096 Feb 21 01:50 .
drwxr-xr-x 3 root root 4096 Feb 21 01:50 ..
-rw-r--r-- 1 root root 0 Feb 21 01:50 errout
-rw-r--r-- 1 root root 0 Feb 21 01:50 file1
---x------ 1 root root 11 Feb 21 01:50 script.sh
-rw-r--r-- 1 root root 0 Feb 21 01:50 stdout
根据输出,Azure 使用 root
创建文件的帐户,因此权限与使用相同root
创建文件的帐户,权限为644
.
我不擅长AWS,你可以用ls -al
checkin AWS。
希望这对您有所帮助。
更新:
请查看umask
在 Azure Linux VM 和 AWS Linux VM 中。
Azure Linux VM 使用 umask
的默认值 0022 ,所以新文件的权限是644,新目录是755
.
[root@jason]# umask
0022
关于linux - 在 Azure 自定义脚本扩展和 AWS 用户数据 -Linux 中运行时获得不同的文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48893568/