我无法访问同时具有我当前用户所属组的r权限的目录,在others列中,它具有rw-
[ec2-user@host]$ ls -la drwxrw-rw- 8 apache apache 4096 Nov 4 14:16 .git [ec2-user@host]$ cd .git -bash: cd: .git: Permission denied [ec2-user@host]$ cat /etc/group |grep ec2-user wheel:x:10:ec2-user ec2-user:x:500: apache:x:48:ec2-user
为什么我不能进入这个目录?
在Unix权限模型中,为了进入(下入)目录,你需要(在一定程度上不直观地) 执行目录的权限。
为了列出目录中的文件,您需要在目录上具有读取权限。 (这可以通过将一个目录视为一个包含其他文件及其位置的文件来概念化,实际上,这几乎就是一个目录在概念层面上的内容)。
具有读取权限并没有对目录执行权限是没有任何意义的,但是没有读取权限的情况下执行权限有一个有效的用例(如果你希望能够访问知道文件名的文件,但不能能够枚举文件)。
您的目录由用户apache ,group apache ; 根据你的提示来判断,你是ec2-user ; 那两个是不一样的 因此,适用组或其他权限。 根据你的/ etc / group代码片段, ec2-user属于apache组,因此组权限将被应用。 组权限是读写的,但不能执行,因此不能下到目录中。
首先,添加一些组执行权限。 其次,你可能想删除一些写权限 。 世界可写是几乎从来没有你想要的。
请注意,为了更改目录上的权限,您需要具有对其父目录的写入权限。 (所以要改变./.git的权限,你需要写入权限,这对于文件和目录是一样的)。