为什么我需要 x 权限才能 cd 进入目录?

nul*_*ull 23 filesystem permissions

ls -la 打印以下内容:

drwxrwxrw- 2 www-data www-data 4096 Aug 12 11:04 files
Run Code Online (Sandbox Code Playgroud)

我的用户名不属于www-data。当尝试cd进入文件时,我得到了一个“ permission denied”,尽管read设置了其他人的“ ”权限。

为什么我需要“执行”权限?

Pra*_*kar 30

目录执行权限的含义是能够在该目录中查找文件名。

没有目录的执行权限,您不能统计、打开、重命名、删除或下降到该目录内的子目录

您唯一能做的就是查看存在哪些文件名的列表,然后仅当您具有读取权限(读取但不执行是目录的一组奇怪权限)。

如果您不是给定目录的所有者,请使用以下命令成为所有者,

sudo chown username /path/to/directory
Run Code Online (Sandbox Code Playgroud)

或者更好的方法是将用户添加到组中,

sudo usermod -a -G groupName userName
Run Code Online (Sandbox Code Playgroud)

获取执行权限使用,

sudo chmod a+x /path/to/dir
Run Code Online (Sandbox Code Playgroud)

  • 更改属于“www-data”的文件或文件夹的所有者可能不是一个好主意。您的网络服务器将无法再读取这些文件。 (5认同)
  • 实际上执行权限的含义是*遍历*目录的能力。例如,即使您对目录具有执行(和读取)权限,如果 *higher* 目录没有授予您执行权限,您仍然不允许在其中查找文件名。 (4认同)
  • 不得不提的是,仅将用户添加到组中不会更改当前正在运行的进程的权限。您应该在终端(即`su $(whoami)`)中再次以自己的身份登录以获得此终端会话的这些权限,或者注销整个系统并重新登录以使所有应用程序生效。 (2认同)