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

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

设置这种宽松权限的理由是什么?

主目录( /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的嵌入式系统上),则使用findchmod的前两个命令可以替换为递归使文件夹和文件可读的单个命令(并另外添加执行) ( 用于目录的位)):

 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

这在文件和目录之间进行了适当区分,但确实具有允许其他人运行可执行文件的附加效果。