现在有个 PHP 项目在目录 /opt/www/public
www 是项目根目录
权限是这样的:
为何 以 www-data 身份 stat /opt/www/public/index.php 会提示没有权限。ls 的权限也没。
给 /opt/www 设为 700 则可以 ls /opt/www/public 但是依旧不能 stat
执行位 影响 进入目录。
那打包容器的时候就只能 COPY --chmod=0600 --chown...
然后再执行个 RUN find /x -type d -exec chmod 700 {} ; 么?
不能再 COPY 的时候指定文件是 600 ,目录是 700 么
1
Jooooooooo 2022-09-27 19:00:13 +08:00
-r 一下
|
2
dzdh OP @Jooooooooo -r 没看出来有啥区别
|
3
iBugOne 2022-09-27 19:02:56 +08:00 via Android
stat 一个文件需要所在目录的 x 权限,Unix 就是这么设定的。目录的权限和文件的权限不太一样:
目录的 r 权限允许列出里面所有内容的文件名,没错仅限文件名 目录的 w 权限允许创建删除重命名等写入操作 目录的 x 权限允许 chdir 进去,以及 stat 里面的内容 所以目录很少有 4 或者 6 这种带 r 不带 x 的权限,一般都是 7/5/0 ,比如 755 (常见)、750 (日志等敏感信息)、700 (私人目录) |