我正在尝试在两台不同的 ubuntu 机器之间共享一个外部硬盘。问题是,我的用户 uid 和 gid 在两台机器上是不同的。
是否有 ext4 或 ext3 的挂载选项允许您暂时更改 uid 或 gid?
我唯一的选择是在所有计算机上使用统一的 uid 吗?
答案1
最简单的事情就是确保两台机器上都存在默认的 gid,并且你的 uid 在两个组中。
最简单的方法是在两台机器上设置一个具有相同 gid 的组,然后使用类似
chmod 2770 YOUR_DRIVE
其中 2 是 setgid,这样创建的任何文件都将继承组权限,并且您将能够使用与其 uid 不匹配的同一用户在两个系统上创建或修改文件。如果您想创建组,请使用
sudo groupadd --gid UNUSUSED_GID_HERE YOUR_GROUP_NAME
在两台机器上执行此操作,然后使用 chgrp 将驱动器命名为组。
希望这是有意义的。
答案2
mount
无法在支持 unix 样式文件权限的文件系统(如 ext3 和 ext4)上更改 UID。
似乎你可以使用绑定文件系统(Ubuntu 上的软件包bindfs
)可以做到这一点(但我从未使用过它)。它要求您再次安装外部硬盘,并且可能会降低性能。
答案3
如果您对至少一台机器具有 root 访问权限,则可以添加或修改 uid 和 gid 以使它们匹配。
最简单的事情就是确保两台机器上都存在默认的 gid,并且你的 uid 在两个组中。
带有过于简单的密码和组列表的示例。
Machine A:
userA: 1003: group_defaultA
group_defaultA: 1002: userA
group_defaultB: 1003: userA
Machine B:
userB: 1005: group_defaultB
group_defaultB: 1003: userB
group_defaultA: 1002: userB