共享外部驱动器上的ext3 / ext4分区

有没有办法在不同的Linux机器上的不同用户(uids)之间的外部USB驱动器上共享一个ext3 / ext4格式的分区,而无需为此创build一个组,并将分区的组所有权设置为该组,并将每个用户到每个机器上的组?

这意味着我需要在每台机器上拥有root权限,在某些情况下我可能没有root权限。

我正在使用该分区来存储我在Linux上开发的代码,如果可能的话,我希望这个选项是安全的。

我可以使用一个vfat分区,但是我没有权限控制+我不能直接在目录中开发:我总是要tar.gz目录,提取,工作,tar.gz,复制到外部驱动器。 .. 等等。

谢谢!

一般的答案是“不”。 文件系统上的uid和gid将在写入时被设置,并且如果它们在不同的机器上不匹配,则特权将不匹配。

如果你不想在几台机器上用uids / gids做一个小小的革命,你可以尝试使用acls为所有机器上的所有用户设置所需的权限。 我怀疑这将在内部使用数字uid,所以可能发生的情况是,在机器A上访问您的账户foo,将允许访问您的文件到机器B上的随机家伙栏,使用a。 这似乎也比它的价值更麻烦。

我认为更好的方法是使用tar来迁移你的开发树。

我也有一个半熟的Subversion版本库的概念(文件只能写入根目录和适当的访问configuration文件),并且依赖于你要使用的所有机器上的svn服务器,但是我没有认为它过于理智。

我发现,在Debian,Ubuntu,RedHat,Fedora,CentOS,Suse,FreeBSD,OpenBSD,NetBSD,MacOSX,Solaris上, sys组共享id 3

没有其他组名称共享相同的ID。 甚至在一些系统上的id为0 root组实际上是wheel 。 而Linux上的nogroup通常是65534而BSD上是32766 ((

将segid位和ACL(包括默认值)设置为外部存储上的sys目录:

 $ sudo chgrp -R sys /mnt/data/dir $ sudo chgmod -R g+s /mnt/data/dir $ sudo fsetacl -R -mg:sys:rwx /mnt/data/dir $ sudo fsetacl -R -d -mg:sys:rwx /mnt/data/dir 

在将user添加到sys组之后,它可以在任何主机上读写到/mnt/data/dir 。 每次访问时,您不再需要sudo权限。

sys组和setgid位做的很好,但是要解决uname掩码需要使用ACL。

这是最好的,你可以做的。

UNIX不适用于个人/家庭使用。 这是企业/企业操作系统,其中没有定义在不同主机之间插入可移动媒体((

也可以看看: