Pouco claro sobre a interação entre o fstab auto e as opções do usuário

1

Estou confuso sobre a interação entre as opções auto e user mount em fstab .

Após configurar por engano auto em vez de noauto , notei que minha montagem ocorreria quando um dispositivo fosse inserido, mas que o usuário não pudesse desmontar o dispositivo posteriormente (o "usuário" sendo executável sem raiz privilégios). Esta é a entrada /etc/fstab :

/dev/mmcblk1p1 /home/user/importexport auto rw,user,auto,exec,uid=1000,gid=100,umask=0022,nobootwait 0 2

Quando substituo auto por noauto , o usuário pode montar e desmontar o dispositivo explicitamente.

Isso está em um sistema embarcado no qual não tenho visibilidade de tempo de execução, o que significa que não há acesso ao shell para explorar o problema de forma interativa. Tudo o que posso fazer é escrever informações de depuração para arquivos que eu possa ver na próxima inicialização. Meu kernel é 3.10.0.

Então, por que o usuário não consegue desmontar um dispositivo que foi montado automaticamente com a opção user ?

Nota: Em Opção "usuário" trabalho para montagem, não para umount , alguém perguntou sobre as permissões em /etc/mtab . As minas são -rw-r--r-- por raiz, mas /etc/mtab não contém nenhuma das informações do usuário mencionadas nessa pergunta, então acho que isso pode não ser relevante.

    
por Josh Sanford 28.05.2016 / 00:20

1 resposta

1

Eu acredito que o auto (opção no fstab) é sempre executado como root, e a opção do usuário é apenas informa ao montador que ele aceita solicitações de usuários simples. aqui está o que está acontecendo: você insere a unidade, o sistema a reconhece, a monta automaticamente (como root) e o usuário se torna incapaz de desmontá-la se o usuário não estiver no grupo raiz.

você pode excluir a opção auto (ou melhor fornecer outro - noauto) a partir do fstab, deixar a opção user e escrever o script por usuário (para ele ser executado pelo usuário) para montá-lo toda vez que inserir o drive.
edit:
parece que qualquer montador automático usa conta de usuário, não é o mesmo que o seu.

editar # 2:
você pode descobrir quem montou um dispositivo executando um comando

ls /mnt/ -l

edição # 3:

alternativamente

sudo cat /etc/passwd | cut -f -3 -d ':' | sed -re 's/(.*):(.*):(.*)/  /g' | while read p1 p2 p3 ; do printf "%05i $p2 $p3\n" "$p1" ; done | sort -r | while read p1 p2 p3 ; do echo $p3 ; done | while read p ; do sudo -u $p umount /dev/ice 2>/dev/null && echo $p >> /tmp/busted ; done

substitua / dev / ice pelo dispositivo de seu interesse
Verifique se o arquivo sudoers foi configurado corretamente. você encontrará seu usuário suspeito em / tmp / preso

    
por 28.05.2016 / 04:37