V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
dzdh
V2EX  ›  Linux

关于权限的问题 迷惑了

  •  
  •   dzdh · Sep 27, 2022 · 2228 views
    This topic created in 1309 days ago, the information mentioned may be changed or developed.

    现在有个 PHP 项目在目录 /opt/www/public

    www 是项目根目录

    权限是这样的:

    • 600 www-data:www-data /opt
    • 600 www-data:www-data /opt/www
    • 600 www-data:www-data /opt/www/public

    为何 以 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 么

    4 replies    2022-09-28 11:21:57 +08:00
    Jooooooooo
        1
    Jooooooooo  
       Sep 27, 2022
    -r 一下
    dzdh
        2
    dzdh  
    OP
       Sep 27, 2022
    @Jooooooooo -r 没看出来有啥区别
    iBugOne
        3
    iBugOne  
       Sep 27, 2022 via Android
    stat 一个文件需要所在目录的 x 权限,Unix 就是这么设定的。目录的权限和文件的权限不太一样:

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

    所以目录很少有 4 或者 6 这种带 r 不带 x 的权限,一般都是 7/5/0 ,比如 755 (常见)、750 (日志等敏感信息)、700 (私人目录)
    julyclyde
        4
    julyclyde  
       Sep 28, 2022
    @iBugOne
    “仅限文件名”是因为,文件名是目录的“内容”,而不是文件的名字
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5627 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 01:35 · PVG 09:35 · LAX 18:35 · JFK 21:35
    ♥ Do have faith in what you're doing.