我注意到,在任何默认/标准安装的 *nix 中,任何新文件/文件夹都会自动获得至少 的read
权限other
。
为什么会这样?这难道不安全吗?*nix 系统不是应该other
默认不提供任何默认权限吗?这样不是更安全吗?
您想要拥有对文件/文件夹的访问权限是有道理的user
(呃),而且可以理解为什么group
应该拥有访问权限。
other
但是默认访问有什么好处呢?
答案1
像 Unix 这样的多用户操作系统从共享文件中获得的好处比通过默认锁定所有内容而获得的安全性要多。安全性和便利性之间存在权衡。实际上,默认设置通常使用得很好,是一种很好的折衷方案。
您始终可以使文件夹的权限更加安全。 chmod 750 ./FOLDER
将为具有 7 的所有者提供读取、写入和执行权限,为具有 5 的组提供读取和执行权限,而对另一个组不提供任何权限。
如果你查看/etc/
存储了大量配置设置的文件夹,你会发现权限允许其他人读取和执行:
vagrant@host:~$ ls -ld /etc/
drwxr-xr-x 136 root root 12288 Dec 6 12:48 /etc/
vagrant@host:~$
这里的想法是,它实际上可以帮助系统的操作。例如,以用户身份运行的 Apache Web 服务器阿帕奇,可以读取其配置文件。但是,配置文件归 root 所有,因此如果恶意行为者掌握了阿帕奇用户,该帐户不能为自己写入新的权限。
Linux(和 Unix)系统被设计为多用户操作系统。其他用户默认读取文件通常比安全问题更有帮助。有时您希望团队成员(您的团体)也能够编辑文件;因此,您可以设置chmod g+rwx ./FOLDER
允许成员团体编辑该文件夹中的文件。
权限系统足够灵活,可以根据您的需要进行调整。Linux 文档计划解释得很好,并有很好的例子。安全增强型 Linux进一步延伸。
我建议您查看 unix.stackexchange.com,特别是标记为权限的标签,其中详细回答了许多问题。特别是:
答案2
创建新文件的程序定义了它们的权限。从 shell 授予新创建文件的权限通常仅限于rwxr-xr-x
默认权限umask
在大多数 Linux 发行版上。
您可以编辑您的私人登录脚本(例如~/.bashrc
)或系统范围的/etc/profile
脚本来编辑此默认值umask
并赋予其更严格的值。但大多数情况下,保持原样是可以的,因为您的所有私人文件都可能位于主目录中。您只需检查主目录权限以阻止不需要的用户列出(r
)并遍历(x
)它。
在我的 Linux 系统上,此默认行为定义在/etc/profile
:
# 077 would be more secure, but 022 is generally quite realistic
umask 022