我电脑上运行的是 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 并读取或更改文件来轻松破解此问题。也许可以查看主目录加密,将读取文件与密码绑定在一起?