情景:
bob拥有目录x
bob已将x的权限设置为777
jim无法写入x。为什么呢?
实际输出:
test_length
最终我正在尝试将安装作为ls -la .pip/
total 12
drwxrwxrwx 2 user1 user1 4096 May 5 12:03 .
drwx------ 5 user1 user1 4096 May 6 11:34 ..
-rw-rw-rw- 1 user1 user1 2054 May 5 12:48 pip.log
sudo -S -p 'sudo password:' -u "apache" /bin/bash -l -c "mkdir .pip/monkey"
/bin/bash: /home/user1/.bash_profile: Permission denied
mkdir: cannot create directory `.pip/monkey': Permission denied
用户,并且不允许该用户编写安装日志,因此该过程失败。我需要将日志写为apache用户,但它存在于我的用户空间中。我可以更改所有者,但这个过程应该适用于任何用户,甚至是新用户,所以我应该做的事情有点令人困惑。
更新
我从http://linux.die.net/man/2/path_resolution了解到,apache
不拥有apache
的主目录,因此目录搜索无效。是这种情况吗?
答案 0 :(得分:0)
免责声明: 在撰写此答案时,问题并未明确指出工作目录。如果答案中记录的假设不正确,则答案中提到的文件夹可能需要相应调整。
似乎该问题询问用户apache
无法在以下情况下运作的原因:
/home/user1/
似乎/home/user1
可能将权限设置为drwx------
,因为这些权限通常用于帮助保护可以累积在用户主目录根目录中的私有数据。< / p>
如果上述情况属实,那么apache
无法在/home/user1/
下工作是正常的,因为它对traversal
没有/home/user
权限。可以以各种方式添加这些权利。最简单但不是特别安全的方法是:
sudo chmod o+x /home/user1
然后可以收紧和放宽/home/user1
子文件夹权限以满足需要。使用组权限比使用世界权限更好,但您可能应该为此目的创建一个特殊组,而不是让apache
成为user1
组的成员。更好的解决方案是使用ACL,apache
遍历/home/user1
遍历权限,而无需打开用户的主目录,直至更广泛的受众。
小心点。使用上述命令放松权限可以使盒子上的所有用户访问用户主目录的子目录,如果他们的权限不合适的话。
注意: 某些系统上的安全机制可能会因放松用户主目录权限而受到干扰,并干扰手动覆盖。例如,这可能发生在msec
配置为相对较高安全级别的分发上。如果没有给出关于系统配置的更多细节,则预测潜在问题有些困难。例如,除非对特定文件系统区域进行了例外,否则在具有高安全性设置的msec
受管系统上,msec
将定期重写它监视的目录权限,如果它不认为权限兼容使用配置的安全级别。