为什么其他用户可以看到我的主文件夹中的文件?

Modified on: Sat, 09 Jun 2018 23:11:23 +0800

我刚刚添加了一个新的,弱势的“桌面用户”,我惊讶地发现它可以看到我的主文件夹中的文件。

设置此类宽松权限的理由是什么?

作者:ændrük

最佳答案

主目录(Public)中存在/home/user文件夹,用于与其他用户共享文件。如果其他用户想要访问此Public文件夹,请全球执行位应该在主目录中设置。

如果您不需要允许其他人访问您的主文件夹(其他人或用户,例如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的嵌入式系统上),那么使用findchmod可以替换为递归使文件夹和文件可读的单个命令(并且还为目录仅添加的执行(降序)位):

chmod -R o+rX ~/Public

相关问答

添加新评论