关于权限的问题 迷惑了

2022-09-27 18:56:59 +08:00
 dzdh

现在有个 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 么

1798 次点击
所在节点    Linux
4 条回复
Jooooooooo
2022-09-27 19:00:13 +08:00
-r 一下
dzdh
2022-09-27 19:02:53 +08:00
@Jooooooooo -r 没看出来有啥区别
iBugOne
2022-09-27 19:02:56 +08:00
stat 一个文件需要所在目录的 x 权限,Unix 就是这么设定的。目录的权限和文件的权限不太一样:

目录的 r 权限允许列出里面所有内容的文件名,没错仅限文件名
目录的 w 权限允许创建删除重命名等写入操作
目录的 x 权限允许 chdir 进去,以及 stat 里面的内容

所以目录很少有 4 或者 6 这种带 r 不带 x 的权限,一般都是 7/5/0 ,比如 755 (常见)、750 (日志等敏感信息)、700 (私人目录)
julyclyde
2022-09-28 11:21:57 +08:00
@iBugOne
“仅限文件名”是因为,文件名是目录的“内容”,而不是文件的名字

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/883350

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX