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

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

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

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

答案1

Public您的主目录 ( ) 中有一个文件夹/home/user,用于与其他用户共享文件。如果其他用户想要访问此Public文件夹,世界的执行位应设置在主目录中。

如果您不需要允许其他人访问您的主文件夹(其他人或用户,例如www-data网络服务器),那么您可以这样做chmod o-rwx "$HOME"(从“其他”中删除读/写/执行,相当于chmod 750 "$HOME"因为默认权限是 750)。否则,您应该更改umask环境以防止新创建的文件默认获得全世界的读取权限。

对于系统范围的配置,请编辑/etc/profile;可以在中配置每个用户的设置~/.profile。我更喜欢对所有用户采用相同的策略,因此我将编辑文件/etc/profile并附加以下行:

umask 027

您需要重新登录才能应用这些更改,除非您在 shell 中。在这种情况下,您可以umask 027在 shell 中运行。

现在要修复现有的权限,您需要从其他权限中删除读/写/执行权限:

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

答案2

Ubuntu 21.04 及更高版本具有安全默认设置,请参阅这篇博客文章存档链接stackprotector)在评论部分链接:

对于新安装的 Ubuntu 21.04,或者在升级到 Ubuntu 21.04 的机器上创建的用户,主目录默认是私有的。

但是,文章暗示,即使应用安全更新或升级到 Ubuntu 21.04 或更高版本,在 Ubuntu < 21.04 上创建的用户也不会自动修复。可以使用取自文章的以下命令手动更正这些用户。

修复所有现有用户:

sudo chmod 750 /home/*

要修复将来创建的用户的默认设置:

sudo sed -i s/DIR_MODE=0755/DIR_MODE=0750/ /etc/adduser.conf
echo "HOME_MODE 0750" | sudo tee -a /etc/login.defs

对于 Ubuntu <21.04:

马克·沙特尔沃思Canonical 创始人兼首席执行官

“Ubuntu 系统的大部分用户要么独享机器(个人笔记本电脑),要么与亲朋好友共享。我们假设共享机器的人要么值得信任,要么能够轻松破解机器(从 USB 启动!)。因此,共享机器几乎没有任何好处”

...删除这些权限。

答案3

根据Ubuntuforms.org 工作人员,是为了让新用户之间更轻松地共享文件。

如果您不希望其他人读取和执行该文件,您可以将权限更改为 700 或 750。

命令是:

chmod 750 $HOME

注意:Ubuntu 默认为 755

答案4

我认为莱肯施泰因可以通过将最后两个 find 命令替换为 chmod 并使用 -X 选项(注意大写 X)来改进答案。这两个 find 命令可以替换为

chmod -R o+rX ~/Public

这可以适当地区分文件和目录,但还具有允许其他人运行可执行文件的附加效果。

相关内容