我试图弄清楚为什么在创建新文件和目录时,比如说Documents文件夹,默认情况下,它们被分配了以下权限:
-rw-rw-r-- 1 hello world 0 Nov 19 12:17 'New Empty File'
drwxrwxr-x 2 hello world 4.0K Nov 19 12:16 'New Folder'/
“其他人”不应该无权访问我的文件吗?根据我的阅读,Ubuntu 默认情况下非常安全。但是,我无法为这种行为找到合理的理由。将不胜感激:)
我试图弄清楚为什么在创建新文件和目录时,比如说Documents文件夹,默认情况下,它们被分配了以下权限:
-rw-rw-r-- 1 hello world 0 Nov 19 12:17 'New Empty File'
drwxrwxr-x 2 hello world 4.0K Nov 19 12:16 'New Folder'/
“其他人”不应该无权访问我的文件吗?根据我的阅读,Ubuntu 默认情况下非常安全。但是,我无法为这种行为找到合理的理由。将不胜感激:)
Linux 的权限模型意味着,即使您是计算机的唯一用户,您也不是系统上的唯一用户。许多服务会创建自己的用户帐户来运行——例如,Apache 通常会在自己的专用帐户下运行。
您还会注意到,您的主文件夹通常只能由您自己的帐户访问 - 即权限700或drwx------. 这意味着只有您可以访问您的主文件夹,即使该文件夹中的子文件夹具有完全访问权限。
这种组合提供了有用的平衡。默认权限允许服务帐户读取系统上他们可能需要的任何文件,但他们无法更改任何内容。您个人的任何文件都应该在您的主文件夹中,因此流氓服务将无法访问它们。
您可能会发现Filesystem Hierarchy Standard是一本有用的读物。这概述了 Unix/Linux 系统通常预期的权限和功能,大多数发行版都会遵守这一点。
当您创建新文件和目录时,初始权限由您的umask设置控制。创建项目的应用程序指定最大权限(通常rwxrwxrwx用于目录和可执行文件,rw-rw-rw-用于数据文件),然后umask从中减去权限。
因此,如果您想要更多限制性权限,您应该将您的设置umask为删除您不想授予的权限。您显示的权限来自拥有umask 002,因此它只是禁用other=write。如果你也想禁用other=read/execute,你应该使用:
umask 007
传统上,默认umask 002来自假设特定系统上的所有用户都是一个合作社区(例如,组织同一部门的程序员),因此没有什么理由阻止其他用户阅读您的文件。如果您有更私密的特定文件,您将给予它们更多限制性权限。如果上述假设不适合您系统的用户,您应该在 shell 启动脚本中使用不同的默认 umask。