无法使用目录权限 666 进行写入,但可以使用 777 进行写入

无法使用目录权限 666 进行写入,但可以使用 777 进行写入

我以 root 用户身份使用 Kali。我确实在一个文件夹(由 root 创建和拥有)中设置了一个 atftp 服务器,并授予该文件夹 666 权限。但我注意到用户在上传到 atftp 时收到权限被拒绝错误。FTP 服务器也发生了同样的情况。因此,为了进行一些测试,我创建了一个临时目录,为其分配了 666 权限,尝试使用非特权用户创建一个文件,但出现“权限被拒绝”的错误。然后我将权限更改为 777 并重复相同的过程。这次文件创建成功。

案例 1:666 权限

root@kali:~/temp# chmod 666 .
root@kali:~/temp# ls -la
total 8
drw-rw-rw-  2 root root 4096 May  7 00:32 .
drwxr-xr-x 21 root root 4096 May  7 00:32 ..
root@kali:~/temp# su temp
$ touch a
touch: cannot touch 'a': Permission denied

案例 2:777 权限

root@kali:~/temp# chmod 777 .
root@kali:~/temp# ls -la
total 8
drwxrwxrwx  2 root root 4096 May  7 00:32 .
drwxr-xr-x 21 root root 4096 May  7 00:32 ..
root@kali:~/temp# su temp
$ touch a
$ ls -la
total 8
drwxrwxrwx  2 root root 4096 May  7 00:32 .
drwxr-xr-x 21 root root 4096 May  7 00:32 ..
-rw-r--r--  1 temp temp    0 May  7 00:32 a
$

x即使在两种情况下都有文件夹,为什么添加额外的权限也能帮助写入文件w

答案1

目录上的执行位授予进入该目录的权限,参见此答案

执行位 (x) 允许受影响的用户进入目录,并访问其中的文件和目录

666 没有执行位,而 777 有。

相关内容