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

ænd*_*rük 46 permissions default users privacy

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

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

Lek*_*eyn 38

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

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

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

umask 027
Run Code Online (Sandbox Code Playgroud)

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

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

chmod -R o-rwx ~
Run Code Online (Sandbox Code Playgroud)

现在,如果您决定将~/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
Run Code Online (Sandbox Code Playgroud)


Jas*_*son 13

Ubuntuforms.org 工作人员称,这是为了让新用户之间更容易共享文件。

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

命令是:

chmod 750 $HOME
Run Code Online (Sandbox Code Playgroud)

注意:Ubuntu 默认为 755

  • 当然其他用户[不应该是sudoers](https://askubuntu.com/a/642276/349837)。 (2认同)

ign*_*nis 9

Ubuntu 21.04 及更高版本有一个安全的默认值,请参阅此博客文章存档链接stackprotector在评论部分链接:

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

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

要修复所有现有用户:

sudo chmod 750 /home/*
Run Code Online (Sandbox Code Playgroud)

要修复将在将来创建的用户的默认值:

sudo sed -i s/DIR_MODE=0755/DIR_MODE=0750/ /etc/adduser.conf
echo "HOME_MODE 0750" | sudo tee -a /etc/login.defs
Run Code Online (Sandbox Code Playgroud)

对于 Ubuntu < 21.04:

Canonical 的创始人兼首席执行官Mark Shuttleworth 表示

“Ubuntu 系统的大多数用户要么独占使用这台机器(个人笔记本电脑),要么与亲友共享。我们假设共享这台机器的人要么是可信的,要么有能力破解该机器(启动来自 USB!)微不足道。因此,几乎没有好处”

...从删除这些权限。

  • 我认为在服务器版中具有相同的行为是一个安全漏洞 (19认同)
  • 那是一个疯狂的解释。除了人员帐户之外,还有人们可以用来隔离应用程序的技术帐户。此外,还有很多关于如何设置本地 ftp 服务器的说明,该服务器基本上在机器上共享帐户。 (6认同)
  • 我知道这是旧线程,但认为这是愚蠢的决定。想象一个用户运行应用程序/脚本(可能是无意的),它能够从任何其他配置文件读取和发送文件。 (5认同)

Pav*_* G. 5

您可以阅读Ubuntu 服务器指南用户管理部分,其中包含必要的详细信息。该用户个人资料安全性的段落可能会回答你的问题-正式。

  • 我感谢官方来源。可悲的是,它看起来并没有提供任何理由。 (5认同)