问题描述
我已将 /media/username
的权限从 root:root
调整为 username:root
[1]。我了解 user-centric 位置允许 user-centric 权限 [2]。
但是为什么这个文件夹 root:root
的权限首先是?
[1] 这样我就可以使用 Gnome EncFS 管理器 mount encrypted folders there。例如,我现在可以将加密文件夹挂载为 /media/username/personal-documents
。
[2] 来自 Why has Ubuntu moved the default mount points?:
\\n
The root cause for this change of default behaviour in udisks2 seems clear : the security. It is safer to restrict access to a file system to one particular user instead of giving access to it to all the users of the system.
\\n
最佳方案
在我的例子中,这是 /media
中的样子:
$ ls -l /media | grep $USER
drwxr-x---+ 3 root root 4096 Jan 22 15:59 oli
基本上这意味着只有 root 用户可以与该目录进行交互。这对安全性非常有用(当然可以阻止其他用户看到,更不用说窃取/删除/更改数据了),但这不是故事的结局。
您可能会注意到权限掩码末尾的加号。这意味着正在使用 ACL(访问控制列表)。这允许更精细的权限。
$ getfacl /media/$USER
getfacl: Removing leading '/' from absolute path names
# file: media/oli
# owner: root
# group: root
user::rwx
user:oli:r-x
group::---
mask::r-x
other::---
通过 ACL,允许我的用户查看 /media/oli
的内容。我仍然不允许编辑内容。
在现代桌面(Gnome 和 KDE)中进行安装的是 udisks2
:
root 2882 0.3 0.0 195956 4048 ? Sl Jan16 30:35 /usr/lib/udisks/udisks-daemon
root 2887 0.0 0.0 47844 784 ? S Jan16 0:00 udisks-daemon: not polling any devices
root 3386 0.0 0.0 429148 6980 ? Sl Jan16 7:35 /usr/lib/udisks2/udisksd --no-debug
如您所见,它以 root 身份在那里运行,因此当某些东西通过 DBUS 访问它时,它能够在 /home/$USER 中创建 mount-points 并将它们向下分配给您的用户,以便他们可以编辑内容。
这些都没有改变我最初所说的。我只是在解释它在实践中是如何工作的。这就是允许 in-effect 将桌面上的某些内容写入只有 root 允许的地方的方式,以及尽管所有权受到其他限制,您的用户仍可以读取它的方式。
所有这些都将它变成了一个对用户数据安全的环境,但也让用户很难干预支架的结构。例如,他们不能删除 mount-point 或重命名它,这可能会导致问题,除非他们具有 root 访问权限。
编辑:我刚刚想到的是,它还为管理员提供了一个为单个用户安装东西的好地方。默认情况下的权限有助于保持此挂载的私密性并保护此挂载免受用户干预。对于在没有 /media/$user/
目录的情况下完成的操作,这似乎是一个相当合理的默认设置,需要 root 权限。