我认为我还没有理解 Linux 目录中权限工作方式的一个基本方面。
我尝试从本地 apache 服务器访问此文件夹:
sudo chmod 777 /home/ut/programmes/Programmation/p5-linux/
sudo -u www-data ls /home/ut/programmes/Programmation/p5-linux/
ls: cannot read directory '/home/ut/programmes/Programmation/p5-linux/': Permission denied
为什么它不工作?即使权限是 777 ?
此外,通过这样做:
sudo chown ut:www-data /home/ut
sudo chmod 710 /home/ut
无需对 /home/ut/programmes/Programmation/p5-linux/ 中的权限进行任何更改,现在这就是我得到的:
sudo -u www-data ls /home/ut/programmes/Programmation/p5-linux/
icudtl.dat libffmpegsumo.so locales nw.pak p5 p5.png Projets
我所做的唯一一件事就是改变父词典的组。 为什么它现在起作用了?
答案1
第一次尝试时,您仅拥有最后一个目录的所有权限:
/home/ut/programmes/Programmation/p5-linux/
但你需要拥有所有父目录的“执行”权限。根据您添加的内容,我们了解到您没有在 /home/ut 上执行。请注意,您不需要具有父目录的读取权限。
在第二次尝试中,您发现您只需要执行权限(而不是读取权限)