我有一个 32GB 的闪存驱动器,格式为 ext4(我用它来存储比 fat32 格式允许的更大的文件),我用我的电脑设置了它,我是这台电脑的管理员和唯一用户。在这台电脑上,我拥有这个闪存驱动器并且可以使用它。
在另一台 Ubuntu 计算机上(我有管理权限但不是主用户),它安装在主用户下,我无法访问它。
我尝试将另一台计算机上的闪存驱动器的所有权更改为我的用户,但在我的计算机上,它归1001 - 用户 #1001。
谁能告诉我为什么会这样,有什么办法可以解决这个问题?
任何帮助将不胜感激。
谢谢。
答案1
我已经解决了这个问题!(后很多研究)。请参阅下面的(相当长的)答案。
笔记:我相信该解决方案也适用于具有相同“怪癖”的 ntfs 文件系统。
问题:
这个问题与用户 ID和群组 ID。
ext4 文件系统由一个用户拥有,但其所有权由该用户的用户身份 或者用户ID而不是用户名。它通常也属于该用户的组,该组具有相同的 ID(组 ID 或组,即如果 uid=1002 gid=1002)换句话说,如果用户 'A' 在一台计算机上拥有该文件系统并具有 uid 1001,则另一台计算机上的 uid 也为 1001 的用户 'E' 将自动拥有该文件系统。
Ubuntu 用户 ID 从 1000 开始,这意味着,由于我是我的计算机上的唯一用户,所以我的 uid 是 1000。然而,在另一台计算机上,我的 uid 是 1001。这就是它在该计算机的主用户下安装的原因。它正在同一个 uid 下安装。
解决方案:
如上所述,用户拥有的文件系统通常归其组所有。用户组可以包含多个用户,因此您可以将自己添加到拥有文件系统的组中。
您可以使用:
sudo adduser [user] [group]
或者sudo usermod -a -G [group name] [user name]
(有关这些命令的更多信息,请参阅这个问题。
将用户添加到现有用户组,授予他们访问该用户拥有的文件的权限。
将您的用户添加到组,确保所有者的组对文件系统具有完全访问权限,问题就解决了!