Montando o sistema de arquivos com um conjunto especial de id de usuário

16

Eu quero montar o dispositivo /dev/sda3 no diretório /foo/bar/baz . Depois de montar o diretório deve ter o uid do usuário johndoe . Então eu fiz:

sudo -u johndoe mkdir /foo/bar/baz
stat -c %U /foo/bar/baz
johndoe

e adicionei a seguinte linha ao meu /etc/fstab :

/dev/sda3 /foo/bar/baz ext4 noexec,noatime,auto,owner,nodev,nosuid,user 0 1

Quando faço agora sudo -u johndoe mount /dev/sda3 , o comando stat -c %U /foo/bar/baz resulta em root em vez de johndoe . Qual é a melhor maneira de montar este sistema de arquivos ext4 com o uid johndoe set?

    
por qbi 08.04.2011 / 09:33

3 respostas

18

Não é possível forçar um proprietário em um disco com um sistema de arquivos ext4. Apenas sistemas de arquivos que não suportam permissões do Linux como gordura possuem um atributo para ownership / groupship: uid=value e gid=value . Veja a página de manual na montagem .

Você deve alterar o proprietário no sistema de arquivos montado, como em:

sudo chown johndoe /foo/bar/baz

Se você precisar alterar as permissões recursivamente:

sudo chown -R johndoe /foo/bar/baz

... e se o grupo precisar ser alterado para johndoe também:

sudo chown -R johndoe: /foo/bar/baz
    
por Lekensteyn 08.04.2011 / 09:49
14

bindfs é a resposta. Levará um sistema de arquivos já montado e fornecerá uma visão dele com o que você quiser:

sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo
    
por Catskul 04.10.2013 / 21:08
6

Supondo que o grupo definido para os arquivos tenha as permissões apropriadas, você deve ser capaz de descobrir apenas o ID do grupo (GID) e adicionar a si mesmo.

Para descobrir o ID do grupo de um arquivo, use ls -n . Exemplo de saída:

drwxr-xr-x 1 1000 1000  550 Jul  9 11:08 Desktop/

Você deseja o quarto campo para o GID, que no meu caso é o segundo 1000 .

sudo addgroup --gid GID foobar; sudo usermod 'whoami' -aG foobar

Depois de executar, você deve ter o controle completo onde os atributos de arquivo para grupo permitirem.

Como observado na outra resposta relacionada às permissões do usuário, se você precisar corrigir o grupo em alguns arquivos, execute um destes:

sudo chown -R :foobar ./
sudo chgrp -R  foobar ./
    
por Chinoto 09.07.2012 / 21:43