Como montar um sistema de arquivos, mapeando userids?

16

Posso montar com êxito uma partição ext4, o problema é que todos os arquivos da partição pertencem ao usuário com userid 1000. Em uma máquina, meu userid é 1000, mas em outro é 1010. Meu nome de usuário é o mesmo em ambas as máquinas , mas percebo que o sistema de arquivos armazena IDs do usuário, não nomes de usuários.

Eu poderia corrigir a propriedade do arquivo com algo como o seguinte:

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

Mas então eu precisaria corrigir as propriedades do arquivo novamente para 1000 quando montar esta unidade externa em outra máquina.

O que eu gostaria é de dar mountuma opção dizendo map userid 1000 a 1010, para que eu não precise modificar nenhum arquivo. Existe uma maneira de fazer isso?

Flimm
fonte
Eu procuro por essa pergunta um ano e meio depois, encontrei isso, queria votar, apenas para descobrir que eu mesmo fiz essa pergunta!
Flimm 31/03/16
Você ainda pode torná-lo um favorito, mesmo se você não pode upvote: -O
Anthon

Respostas:

18

Dê uma olhada no pacote bindfs . O bindfs é um sistema de arquivos FUSE que permite várias manipulações de permissões de arquivos, propriedade de arquivos etc., sobre os sistemas de arquivos existentes.

Você está procurando especificamente pela opção --map do bindfs:

--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. 

Portanto, para mapear seus arquivos com o ID do usuário 1001 /mnt/wrongpara /mnt/correctcom o ID do usuário 1234, execute este comando:

sudo bindfs --map=1001/1234 /mnt/wrong /mnt/correct
Tho85
fonte
Estou entrando fuse: unknown option `--map=1004/1002'no meu servidor Ubuntu 12.04.5 LTS. Pergunto-me se a minha versão do bindfs ou fusível está desatualizado ...
Zero3
1

Você pode usar bindfs . Ele pode ligar o sistema de arquivos a algum outro ponto de montagem com uid / gid diferente. No entanto, acho que mudaria apenas o uid para que seja o mesmo nos dois sistemas.

megahallon
fonte