问题描述
我刚刚添加了一个新的,弱势的“桌面用户”,我惊讶地发现它可以看到我的主文件夹中的文件。
设置这种宽松权限的理由是什么?
最佳解决思路
主目录(/home/user
)中存在Public
文件夹,用于与其他用户共享文件。如果其他用户想要访问此Public
文件夹,则应在主目录中设置the execute bit for the world。
如果您不需要允许其他人访问您的主文件夹(其他人或用户如www-data
用于网络服务器),您可以使用chmod o-rwx "$HOME"
(从”other”删除读/写/执行,相当于chmod 750 "$HOME"
,因为默认权限是750)。否则,您也应该更改umask
设置,以防止新创建的文件默认获得对该世界的读取权限。
对于system-wide配置,编辑/etc/profile
;可以在~/.profile
中配置per-user设置。我更喜欢所有用户使用相同的策略,因此我编辑/etc/profile
文件并附加以下行:
umask 027
您需要re-login才能应用这些更改,除非您在shell中。在这种情况下,您可以在shell中运行umask 027
。
现在要修复现有权限,您需要从其他权限中删除读/写/执行权限:
chmod -R o-rwx ~
现在,如果您决定将~/Public
文件夹分享给每个人,请运行以下命令:
-
chmod o+x ~
– 允许每个人都下载到目录(x
),但不能获得目录列表(不应添加r
) -
find ~/Public -type f -exec chmod o+r {} \;
– 允许每个人阅读~/Public
中的文件 -
find ~/Public -type d -exec chmod o+rx {} \;
– 允许每个人进入目录并列出其内容
如果你使用的是GNU coreutils(例如在Ubuntu上,而不是在只有busybox
的嵌入式系统上),那么使用find
和chmod
的前两个命令可以被这个递归使文件夹和文件可读的单个命令所取代(并且另外添加执行(下降)仅用于目录)
chmod -R o+rX ~/Public
次佳解决思路
根据Ubuntuforms.org staff member,它是为了更容易在新用户之间共享文件。
如果您不希望文件可由其他人读取和执行,则可以将权限更改为700或750。
命令是:
chmod 750 $HOME
注意:Ubuntu默认值为755
第三种解决思路
According to Mark Shuttleworth,
“The majority of users of Ubuntu systems either have exclusive use of the machine (personal laptop) or are sharing with friends and relatives. We assume that the people who share the machine are either trusted, or in a position to hack the machine (boot from USB!) trivially. As a result, there is little to no benefit”
…从删除这些权限。
第四种思路
您可以阅读“Ubuntu服务器指南”的“用户管理”部分,其中包含必要的详细信息。用户配置文件安全段落可能会回答您的问题 – 正式。