使用“chmod -R 666 filename”不会授予所有文件写入权限

使用“chmod -R 666 filename”不会授予所有文件写入权限

我一直在 Linux 虚拟机中以 root 身份运行,以更改目录中整个文件列表的权限。当我使用后检查权限时sudo chmod 666 -R /home/candidate/working/other_files,除了一个隐藏文件(图中突出显示)之外,所有文件都具有读写权限。当我专门编写chmod应该赋予所有文件读写权限的命令时,我不确定如何才能使该文件也具有写入权限。

使用以下命令后,该文件..对所有其他用户都没有写权限chmod

root@d3ac9495a31:/home/candidate/working# chmod -R 666 /home/candidate/working/other_files/
root@d3ac9495a31:/home/candidate/working# ls -la other_files
total 14108
drw-rw-rw- 1 root      root         4096 Feb 27  2018 .
drwxrwxr-x 1 candidate candidate    4096 Feb 27  2018 ..
-rw-rw-rw- 1 root      root      4537584 Feb 27  2018 file1.html
drwxrwxr-x 1 root      root      1123786 Feb 27  2018 file2.html
-rw-rw-rw- 1 root      root      5747804 Feb 27  2018 file3.html
-rw-rw-rw- 1 root      root      3013094 Feb 27  2018 file4.html

答案1

这里有很多问题

  1. 技术的。您已删除x该目录的搜索权限 ( ) other_files(在列表中表示为.)。当您尝试列出它或访问其中的文件时,这会导致问题。修复与chmod a+x other_files

  2. 方便。您并不总是需要指定chmod.在这里,既然你已经在了,working你就可以使用chmod -R 666 other_files.但请参阅#1,因为这实际上是错误的 - 您应该只更改文件的权限,而不是目录的权限。这样chmod 666 other_files/*会更好、更正确。

  3. 理解。目录条目(请参阅中权限块的.前导)代表当前目录,在本例中为。该条目指向父目录,在本例中为。父目录通常被排除在递归操作之外,否则您最终会在文件系统树上上下移动。dls -lother_files..working

  4. 操作。一般来说,您不应该像rootcandidate的主目录中那样真正工作。考虑重置文件的所有者,使其为candidate, 然后candidateroot.对于初学者来说,这将使您更难意外破坏系统。

相关内容