Modifique a entrada fstab para que todos os usuários possam ler e gravar em um volume EXT4

44

Eu tenho uma caixa Ubuntu 10.04 com uma partição EXT4. Esta partição está configurada para ser montada automaticamente /etc/fstab. Para os fins deste post, vamos chamá-lo: /media/foo.

Infelizmente, somente é rootpossível criar / excluir arquivos / diretórios no sistema de arquivos raiz do foo. Para que outros usuários executem o arquivo / io neste volume, é rootnecessário criar um diretório e chmodas permissões para outros.

Gostaria de montar o volume de forma que qualquer pessoa pudesse ler / gravar no volume sem a necessidade de fazê root-lo chmod.

Abaixo está a minha fstabentrada:

/dev/sda8    /media/foo    ext4    rw,user,exec 0 0

A entrada originalmente tinha em defaultsvez de rw,user,exec. Eu adicionei as entradas adicionais, a saber, rwpara que qualquer usuário possa ler / gravar.

Infelizmente, a fstabentrada não funciona. Ele monta bem, mas ainda precisa rootintervir.

E, apenas no caso de alguém perguntar, simplesmente executando: chmod -R 777 *on /media/foocomo rootnão funciona.

Phanto
fonte

Respostas:

45

A opção de montagem userpermite apenas que o sistema de arquivos seja montado por qualquer usuário. A rwopção torna o sistema de arquivos não somente leitura. Você precisará usar permissões para tornar o diretório pai gravável.

chmod 777 /media/foo

O chmodcomando que mostram afeta apenas os arquivos existentes dentro /media/foo .

Dennis Williamson
fonte
2
Qual é o melhor lugar no Ubuntu para adicionar este comando na inicialização?
Ivan Balashov
@IvanBalashov: Você pode usar uma @rebootentrada /etc/crontabentre outras possibilidades.
Dennis Williamson
3
@DennisWilliamson Thanks. Eu coloquei isso /etc/rc.localse isso faz alguma diferença. No entanto, o que me incomoda em geral é que ele deve realmente ser configurado fstab. Caso contrário, o ponto de montagem pode mudar, e os scripts também precisam mudar, o inferno da manutenção.
Ivan Balashov
Uau, devo começar a adivinhar essas coisas: D muito obrigado.
Erm3nda 29/05
1
Concordo com o chmod, mas adicionar um: chmod + t / media / foo para permitir que os usuários criem seu próprio subdiretório
user1251840
25

Eu acho que seria mais simples alterar a entrada fstab para:

/dev/sda8    /media/foo    ext4    rw,user,exec,umask=000 0 0

umask=000significa que qualquer pessoa pode ler, escrever ou executar qualquer arquivo ou diretório em foo. O padrão usual é 022, o que significa que os usuários não podem escrever.

alguém
fonte
32
umask é apenas uma opção para partições ntfs / vfat. mount não gostará de umask em um sistema de arquivos ext.
Daniel Daniel
8

Eu tive o mesmo problema no openSUSE, mas acho que a solução também pode se aplicar a isso. Todos os usuários que eu quero compartilhar o sistema de arquivos montado pertencem ao mesmo grupo principal: usuários

Eu tenho a seguinte linha no meu fstab:

/dev/<partition> <mount_point>          ext4       rw,acl       0 0

e eu executei os seguintes comandos:

sudo chgrp -R users <mount_point>
sudo setfacl -d -m g::rwx <mount_point>

para que arquivos ou diretórios criados recentemente obtenham essas permissões. Isso implica que você tem o pacote acl instalado.

dario
fonte
Se for um diretório criptografado, diga que /homeserá montado no diretório /etc/crypttab?
George Udosen
2

Bem, por um lado, você deseja garantir que o diretório / media / foo em si seja gravável. Se ainda não estiver, execute o seguinte comando:

chmod +w /media/foo

Lembre-se de que a estrela se aplica apenas ao conteúdo visível do diretório, não ao diretório em si nem a nenhum arquivo que não esteja visível.

hotei
fonte
1

Experimentar,

sudo setfacl -R -d -m u::rwx,g::rwx,o::rwx <mount_point>
user247046
fonte
0

Alguns anos atrás, configurei o grupo do ponto de montagem para o grupo plugdev, adicionei o usuário a esse grupo. Dessa maneira, ao criar novos grupos, é possível conceder permissões por usuário. Para uso doméstico, basta definir as permissões do ponto de montagem para outras pessoas: ler / gravar / executar conforme escrito acima.

Eu fiz isso com 'sudo nautilus' no terminal e clique com o botão direito do mouse -> propriedades -> direitos, mas qualquer outro gerenciador de arquivos em execução como root ficaria bem.

Doom3d
fonte