为什么从外部驱动器启动时可以访问我的主目录?

为什么从外部驱动器启动时可以访问我的主目录?

我电脑上运行的是 Fedora 30。作为用户foo,我的主目录权限如下:

[foo@localhost]$ ls -l /home/
drwx------. 41 foo  foo  4.0K Jul 12 11:23 foo
drwx------.  2 root root  16K Jul 18  2018 lost+found

当我从 USB 驱动器(再次是 Fedora 30)启动、挂载本地主分区并检查所有权时,这就是我得到的结果。

[liveuser@pendrive]$ cd <path/to/mounted/home>
[liveuser@pendrive]$ ls -l
drwx------. 41 liveuser liveuser 4.0K Jul 12 11:23 foo
drwx------.  2 root     root      16K Jul 18  2018 lost+found

然后liveuser,我可以访问目录foo,并以仅用户权限读取和写入文件。

liveuser在 USB 驱动器上和foo在本地硬盘上,uid都是1000。我猜这是问题的根源,两个用户都被认为是同一个。

这是预期行为吗?如果是,该如何解决?

答案1

这种行为是可以预料到的(事实上,作为广泛使用 Linux 的人,很难理解您正在尝试做什么)。

您说得对,用户 ID 映射到数字,文件系统记录的是数字,而不是与之关联的名称。我猜一个解决方法是给 foo 分配一个高用户 ID。通常用户 ID 从 500 或 1000 开始,所以分配一个比如说 3500 的用户 ID 可能会有帮助?

当然,如果您从 USB 启动,则可以通过成为 root 并读取或更改文件来轻松破解此问题。也许可以查看主目录加密,将读取文件与密码绑定在一起?

相关内容