opção de grupo no fstab não está funcionando

3

Estou tentando aproveitar a opção "group" para entradas do fstab e não ter sucesso algum. Na página mount man:

Normally, only the superuser can mount filesystems. However, when fstab contains the user option on a line, anybody can mount the corresponding system. ... If any user should be able to unmount, then use users instead of user in the fstab line. The owner option is similar to the user option, with the restriction that the user must be the owner of the special file. This may be useful e.g. for /dev/fd if a login script makes the console user owner of this device. The group option is similar, with the restriction that the user must be member of the group of the special file.

Estou testando com uma montagem de loopback usando um arquivo de 1GB / blergh com um sistema de arquivos ext4. Esse arquivo é de propriedade de root: disco com permissões 664. Eu tenho um ponto de montagem / media / blergh de propriedade de root: disco com permissões 775. Eu tenho uma entrada fstab assim:

/blergh /media/blergh ext4 loop,rw,noauto,group 0 2

A execução de mount /media/blergh como root funciona bem. A execução como myuser fornece o erro: mount: only root can mount /blergh on /media/blergh . A saída de /usr/bin/groups como myuser é myuser disk , portanto, a associação ao grupo está lá. Se eu alterar group para user nas opções, myuser poderá montar o sistema de arquivos.

O que estou fazendo de errado? Por que a opção group não está funcionando?

(Nota: por razões que eu não quero entrar aqui, eu não quero resolver o problema de permitir que myuser monte este sistema de arquivos usando sudo .)

Editar 20-MAY-2013:

Teste adicional com um dispositivo de bloco real sugere que o problema está no loop em vez de group . Eu criei um novo volume de 1GB do EBS anexado como / dev / sdg, de propriedade do root: disk, permissões 664. Eu criei esta entrada fstab para ele:

/dev/sdg /media/sdg ext4 rw,noauto,group 0 0

O mesmo que antes, apenas não loop , pois não se aplica aqui. Eu criei um ponto de montagem para este sistema de arquivos em / media / blerg, de propriedade root: disk, permissões 775. Como antes, myuser é um membro do grupo disk . Usando esta configuração de teste mount /media/sdg as myuser funciona bem, assim como umount /media/sdg .

    
por Noah Yetter 18.04.2013 / 01:08

2 respostas

1

Acho que você está perdendo um detalhe muito importante aqui. A partir da página man como citado (e enfatizado ) por você:

The group option is similar, with the restriction that the user must be member of the group of the special file.

Observe minha ênfase em "arquivo especial". Se você consultar a seguinte explicação sobre a opção group :

group Allow an ordinary (i.e., non-root) user to mount the filesystem if one of his groups matches the group of the device. This option implies the options nosuid and nodev (unless overridden by subsequent options, as in the option line group,dev,suid).

Isso significa que o dispositivo ou arquivo especial que você está tentando montar como myuser deve ter a mesma propriedade grupo do usuário myuser .

Veja um exemplo:

Vamos supor que haja um dispositivo /dev/sda5 em um sistema, que está montado no diretório /builds :

# ls -l /dev/sda5
brw-rw---- 1 root disk 8, 5 Jun 15 21:20 /dev/sda5
# grep sda5 /etc/fstab
/dev/sda5       /builds reiserfs        group,defaults 1 2

Além disso, há dois usuários nesse mesmo sistema: foo e srinidhi

# id foo
uid=1005(foo) gid=100(users) groups=100(users),33(video)
# id srinidhi
uid=1000(srinidhi) gid=100(users) groups=100(users),16(dialout),6(disk),10(wheel)

O usuário srinidhi (que faz parte do grupo disk ) tenta montar /builds :

srinidhi@linux:~> mount /builds/
srinidhi@linux:~> echo $?
0

Agora, vamos ver o que acontece quando foo tenta montar /builds :

srinidhi@linux:~> su - foo
foo@linux:~> mount /builds/
mount: only root can mount /dev/sda5 on /builds
foo@linux:~>

Como foo não faz parte de disk group, mount falha.

Voltando ao seu caso, você deve garantir que a propriedade do grupo /blergh seja myuser ou disk . Basta definir a propriedade de grupo correta e sua entrada /etc/fstab original deve começar a funcionar:

# chgrp myuser /blergh

Agora, tente executar mount /media/blergh como myuser .

Observação: a propriedade do ponto de montagem (aqui /media/blergh ) não afeta mount .

    
por 30.07.2013 / 17:00
0

Eu tenho um problema semelhante com a opção user . Não resolvido ainda. Minha abordagem para resolver é criar variantes da situação para ver se funcionam e, possivelmente, fazer algo surgir.

O seu problema é apenas com esse arquivo /blergh ? Você pode reproduzi-lo com outro arquivo? Ou com esse arquivo localizado em outro lugar, ou com permissões diferentes ou com propriedade diferente. (claro, o teste depende de quanto controle que você tem sobre o sistema).

Você pode testar o problema com a opção owner para ver se funciona ... desde que você possa reproduzi-lo em outro arquivo ou alterar a propriedade temporária? Que tal a opção user .

O seu problema é tanto para a montagem como para a quantia, ou apenas para um deles? Se a montagem não funcionar, você pode tentar a montagem como root e umount como myuser . (no caso do meu próprio problema, trabalhos de montagem, mas um montante não)

Nota: Acredito que este tipo de montagem é chamado de "loop" no mundo Linux, "loopback", que tem a ver com dispositivos de rede. (ref. link )

Adicionado após o primeiro comentário e a edição da questão

Se owner também não funcionar, isso significa que todos os mecanismos de propriedade são afetados, pois é mais fácil verificar owner do que group . É o caso de que owner funciona para dispositivos de bloco reais, como group ?

Já tentou especificar explicitamente o dispositivo de loop na opção de loop, escolhendo um que não seja usado: ...,loop=/dev/loop7,... ? Você pode até tentar alterar a propriedade ou o grupo do dispositivo de loop (embora eu não tenha certeza de quão sábio ou útil possa ser). ls /dev/loop* fornece os dispositivos de loop disponíveis.

Outra possibilidade é remover a opção loop da sua entrada /etc/fstab . Em muitos sistemas, ele não é mais necessário e é feito implicitamente pela montagem. Qual sistema você está usando, btw?

    
por 20.05.2013 / 19:52