为了保护我的网络服务器上的数据,我已将 PHP 包含文件移至名为 /var/www-includes 的文件夹(在服务器根目录 /var/www 之外)。我也跑了chown root:wwwadmin
那个chmod 770
文件夹。当我ls -ld
在该文件夹上运行时,它会验证设置:drwxrwx--- ... root wwwadmin ... www-includes
虽然我可以从属于 wwwadmin 成员的主用户 (adam) cd 到该文件夹,但我无法在图形文件浏览器中查看其内容。知道为什么吗?编辑:此外,当尝试编辑 Nano 中包含的文件时,它会向我显示一条错误消息:
Error reading /home/adam/.nano_history: Permission denied
然后打开文件的内容。这与可能发生的事情有关系吗?
答案1
也许是一个显而易见的问题,但是...您是否也更改了目录内文件的权限?换句话说,您在发出 chown/chmod 命令时是否使用了“-r”(递归)标志?
答案2
也许不是答案(因为该帖子没有包含足够的信息),但如果需要我可以修改它。在做linux培训课程的时候我开发了一种快速查找权限问题的方法。我知道您已经执行了一些步骤,但为了完整起见,我需要完整地写下来。
- 切换到您要用于访问的用户。在做其他事情之前先做这件事。
- 使用
id
命令检查您当前的 UID 和组。用于id name-of-the-user
检查磁盘上的配置。如果它们不同,请注销并重新登录,然后再次检查。 - 使用“ls -l”检查目标目录。不要忘记检查权限后面的字符。可能有一个点表示这是一个 selinux 上下文,或者可能有一个加号表示 Linux ACL 已设置。
- 使用“cd”进入目录。
- 对常规文件执行必要的操作。用于
touch
检查写访问权限,cat
用于检查读访问权限。 - 检查应用程序级别上的一切是否按预期工作(例如,使用浏览器访问应导致相应操作的 URL、使用您最喜欢的以前失败的编辑工具等)
- 将上述任何检查添加到应用程序级别。
如果任何操作失败并且您不知道原因,请检查日志中是否有 selinux 警报或类似信息。您还可以尝试添加strace -o strace.log
到命令行,然后检查 strace.log没有权限消息。但这都是黑魔法,除非你知道确切的原因没有权限。