我是文件夹的所有者,但无法访问它

我是文件夹的所有者,但无法访问它

我有一个文件夹,里面有我对系统的笔记。

我以 user1 身份登录

cd masternotes生成:

bash: cd: mastersnotes: permission denied

whoami生成:user1

ls -l生成:

drw-rw-rw-. 2 user1 user1        4096 Mar 26 20:47 masternotes

ls -l目录内部产生:

-rw-rw-rw-. 7 user1 user1   345 Oct  7  2006 crontab
-rw-rw-rw-. 7 user1 user1   348 Oct  7  2006 crontab~
-rw-rw-rw-. 7 user1 user1  3702 Oct  7  2006 grep_usage.txt
-rw-rw-rw-. 7 user1 user1 91868 Oct  7  2006 lvm-layout-10-14-03.tif
-rw-rw-rw-. 7 user1 user1    30 Oct  7  2006 mysql
-rw-rw-rw-. 7 user1 user1 35764 Oct  7  2006 notes

我已经chmod -R 666 masternotes在该文件夹上运行了。

我已经运行chown到 root 并chgrp再次运行回 user1。

root 可以登录进入该文件夹并打开该文件。

user1 不能。

有什么线索可以知道这里发生了什么事吗?

答案1

这是一个权限问题,而不是所有权问题。

您向我们展示的权限中明显缺少执行权限(缩写x并出现-在 中的 位置)。rw-

目录的执行权限与常规文件的执行权限有很大不同。对于目录,执行权限允许进入目录(即cd访问它或在文件管理器中打开它)。它们还允许尝试访问目录中的文件(尽管是否成功还取决于其他权限,有时包括被访问文件的权限)。

root能够进入目录,因为它实际上不受通常的权限约束。在许多方面,以 身份运行的命令和应用程序root将尝试尊重权限以遵守用户的意愿。但root有权对任何文件或目录执行任何操作(操作系统能够执行的操作)。在rootshell 中,cd进入没有任何执行权限的目录将会成功。

解决方案解决问题的方法是运行:

chmod u+x masternotes

这赋予 ( +) 所有者masternotes( )对该目录的u可执行权限 ( )。x

然后,您将能够以普通用户的身份进入该目录并尝试访问那里的文件。

如果您希望群组所有者的成员也能执行此操作,那么您可以运行以下命令:

chmod ug+x masternotes

但您可能是您所在特定用户组(拥有该文件夹)的唯一成员。

chmod这里的命令不是需要运行root——我故意不是包含sudo在任一命令中。您自己的该文件夹,因此您可以自己更改其权限 - 您不需要root为您执行此操作。

如果你有兴趣以数字方式设置执行权限,请记住,对于您添加的每个数字(从零开始):

  • 4 为已读。
  • 2 表示写入。
  • 1 表示执行。

例如,如果你想让每个人都能阅读和执行some-file但只有所有者才有写入权限,您可以使用:

chmod 755 some-file

我建议社区文档中的 FilePermissions,进一步了解 Ubuntu 中的文件权限,包括可执行位及其对文件夹的特殊含义。

相关内容