为什么其他用户可以看到我的主文件夹中的文件?
我刚刚添加了一个新的,弱势的“桌面用户”,我惊讶地发现它可以看到我的主文件夹中的文件。
设置这种宽松权限的理由是什么?
主目录( /home/user
)中存在一个公用文件夹,用于与其他用户共享文件。 如果其他用户想要访问此公用文件夹,则应在主目录中设置世界的执行位 。
如果您不需要允许其他人访问您的主文件夹(其他人或用户,如网络服务器的www-data
),您可以使用chmod o-rwx "$HOME"
(删除读/写/执行来自“其他“,相当于chmod 750 "$HOME"
因为默认权限是750)。 否则,您应该更改umask
设置以防止新创建的文件默认获得对该世界的读取权限。
对于系统范围的配置,请编辑/etc/profile
; 可以在~/.profile
配置每用户设置。 我更喜欢所有用户使用相同的策略,因此我编辑/etc/profile
文件并附加以下行:
umask 027
您需要重新登录才能应用这些更改,除非您在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工作人员的说法 ,它是为了更容易在新用户之间共享文件。
如果您不希望文件可由其他人读取和执行,则可以将权限更改为700或750。
命令是:
chmod 750 $HOME
注意:Ubuntu默认值为755
您可以阅读“ Ubuntu服务器指南”的“ 用户管理”部分,其中包含必要的详细信息。 用户配置文件安全段落可能会回答您的问题 – 正式。
根据马克·沙特尔沃思的说法 ,
“Ubuntu系统的大多数用户要么独家使用机器(个人笔记本电脑),要么与朋友和亲戚分享。我们假设共享机器的人要么信任,要么能够破解机器(启动)从USB!)琐碎。因此,几乎没有任何好处“
…从删除这些权限。
我认为Lekensteyn的答案可以通过使用-X选项用chmod替换最后两个find命令来改进(注意大写X)。 两个find命令可以替换为
chmod -R o+rX ~/Public
这在文件和目录之间进行了适当区分,但确实具有允许其他人运行可执行文件的附加效果。