如何挂载映射用户ID的文件系统?


16

我可以成功挂载ext4分区,问题是该分区上的所有文件均由用户ID为1000的用户拥有。在一台计算机上,我的用户ID为1000,而在另一台计算机上,我的用户ID为1010。两台计算机上的用户名相同,但我意识到文件系统存储的是用户ID,而不是用户名。

我可以使用以下类似方法纠正文件所有权:

find /mnt/example -exec chown -h 1010 {} \;

但是,当我将此外部驱动器安装在另一台计算机上时,我将不得不再次将文件所有权更正为1000。

我想给mount的选项是说将userid 1000映射到1010,这样我就不必实际修改任何文件。有没有办法做到这一点?



一年半以后,我搜索了这个问题,发现了这个问题,想投票,结果发现我自己问了这个问题!
Flimm

即使您无法投票,您仍然可以将其设为收藏夹:-O
Anthon

Answers:


18

看一下bindfs包。bindfs是一个FUSE文件系统,它允许在现有文件系统之上进行各种文件权限,文件所有权等操作。

您正在专门寻找bindfs 的--map选项

--map=user1/user2:@group1/@group2:..., -o map=...
    Given a mapping user1/user2, all files owned by user1 are shown as owned by user2. When user2 creates files, they are chowned to user1 in the underlying directory. When files are chowned to user2, they are chowned to user1 in the underlying directory. Works similarly for groups.

    A single user or group may appear no more than once on the left and once on the right of a slash in the list of mappings. Currently, the options --force-user, --force-group, --mirror, --create-for-*, --chown-* and --chgrp-* override the corresponding behavior of this option.

    Requires mounting as root. 

因此,要将用户ID为1001的文件映射/mnt/wrong/mnt/correct用户ID为1234的文件,请运行以下命令:

sudo bindfs --map=1001/1234 /mnt/wrong /mnt/correct

我正在fuse: unknown option `--map=1004/1002'使用Ubuntu 12.04.5 LTS服务器。我想知道我的bindfs或fuse的版本是否已过时……
Zero3,15年

1

您可以使用bindfs。它可以使用不同的uid / gid将文件系统绑定到其他某个挂载点。但是我想我只是改变uid,所以在两个系统上都是一样的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.