Talvez você esteja fazendo as coisas na ordem errada. Quando você cria um sistema de arquivos com mkfs.ext4
, tudo dentro dele pertence ao usuário root e root do grupo com o conjunto de permissões padrão do sistema.
Quando você monta esse sistema de arquivos em um diretório, vê as permissões e o proprietário do sistema de arquivos, independentemente do proprietário original e das permissões nesse diretório.
Então, fazer algo assim não funciona:
sudo mkfs.ext4 /dev/some/data
sudo mkdir /media/data
sudo chown -R :users /media/data
sudo chmod -R g+rw /media/data
sudo mount /dev/some/data /media/data
A coisa certa a fazer é criar o sistema de arquivos, montá-lo e então alterar as permissões e a propriedade nele. Não importa o que você faça em / etc / fstab.
O jeito certo de fazer isso é:
sudo mkfs.ext4 /dev/some/data
sudo mkdir /media/data
sudo mount /dev/some/data /media/data
sudo chown -R :users /media/data
sudo chmod -R g+rw /media/data
Isso deve responder sua pergunta. Se você precisar de mais detalhes, continue lendo.
Para entender melhor o que acontece, vamos experimentar um pouco com um arquivo de imagem
Crie um arquivo vazio para formatar e montar usando fallocate -l 100MB /tmp/filesystem.img
. Em seguida, formate-o como um sistema de arquivos ext4 com sudo mkfs.ext4 /tmp/filesystem.img
(não é um dispositivo de bloco, mas se você responder sim, pode colocar um sistema de arquivos ext4 funcionando de qualquer maneira) e crie um diretório para usar como ponto de montagem mkdir /tmp/experiment
.
Agora, tente alterar o proprietário e as permissões nessa direção com sudo chown -R :users /tmp/experiment
e sudo chmod -R g+rw /tmp/experiment
e verifique as permissões com ls -la /tmp/experiment
. Você terá algo assim:
ls -la /tmp/experiment/
total 0
drwxrwx--x 2 gerlos users 40 feb 19 10:37 .
drwxrwxrwt 8 root root 180 feb 19 10:38 ..
Isso lhe diz que / tmp / experiment é de propriedade do usuário gerlos e usuários do grupo, e os membros do grupo podem ler, escrever e executar nele. Você pode colocar arquivos nele, por exemplo, com touch /tmp/experiment/somefile
.
Agora monte o sistema de arquivos nesse diretório com sudo mount /mnt/filesystem.img /tmp/experiment
e veja novamente ls
output:
$ ls -la /tmp/experiment/
total 13
drwxr-xr-x 3 root root 1024 feb 19 10:41 .
drwxrwxrwt 8 root root 180 feb 19 10:41 ..
drwx------ 2 root root 12288 feb 19 10:41 lost+found
Como você pode ver, agora / tmp / experiment parece ser de propriedade do root, com permissões diferentes! Por quê? Porque não estamos olhando para o / tmp / experiment em si, mas no diretório raiz do sistema de arquivos contido em /mnt/filesystem.img, montado em / mnt / experiment.
Além disso, seu usuário normal não poderá colocar arquivos com touch /tmp/experiment/anotherfile
.
Se você tentar executar novamente chown
e chmod
acima, você alterará o proprietário e as permissões não no ponto de montagem, mas no sistema de arquivos montado , e seus usuários ser capaz de usar o sistema de arquivos. Para confirmar essa olhada na saída ls uma última vez:
$ ls -la /tmp/experiment/
total 13
drwxrwxr-x 3 root users 1024 feb 19 10:41 .
drwxrwxrwt 8 root root 180 feb 19 10:45 ..
drwxrw---- 2 root users 12288 feb 19 10:41 lost+found
Como você pode ver, agora os membros do grupo de usuários podem colocar arquivos no sistema de arquivos! Na verdade, nada impede que seu usuário normal crie um novo arquivo com touch /tmp/experiment/myfile
:
$ ls -la /tmp/experiment/
total 13
drwxrwxr-x 3 root users 1024 feb 19 11:05 .
drwxrwxrwt 8 root root 180 feb 19 11:02 ..
drwxrw---- 2 root users 12288 feb 19 10:41 lost+found
-rw-rw---- 1 gerlos gerlos 0 feb 19 11:02 myfile
Missão cumprida! : -)