Quero formatar meu stick USB ext4
e usá-lo como faria com qualquer outra unidade de formato não Linux típica ( FAT32
, exFAT
, NTFS
).
Ou seja, quero poder conectar o pendrive em qualquer uma das minhas máquinas linux e ler/gravar nele sem precisar ajustar permissões , como fazer chmod
ou chown
outras coisas.
Eu preferiria usar um software de partição GUI como GParted, em vez de comandos de linha de comando, embora qualquer solução seja bem-vinda!
Tenho certeza de que uma postagem como essa é o paraíso da bandeira duplicada para alguns, mas depois de navegar em 6 ~ 10 SO e nas postagens do fórum do google, não encontrei uma solução simples para minha pergunta. Parecia que tudo se tratava de ajustar as permissões por usuário. Talvez você simplesmente não consiga usar ext4
drives com a mesma conveniência sem cérebro que os NTFS
.
Como qualquer sistema de arquivos no estilo unix, o ext4 inclui propriedade de arquivo padrão Unix e convenções de permissão. Ou seja, o usuário é identificado por um número UID, e cada usuário pertencerá a um ou mais grupos, cada grupo identificado por seu número GID. Cada arquivo tem um UID de proprietário e um GID de proprietário de grupo. Os três conjuntos clássicos de permissões de arquivo Unix são:
Para poder acessar o stick sem precisar ajustar as permissões, você deve garantir que todos os arquivos e diretórios criados no stick tenham permissões não restritivas automaticamente. O problema é que as permissões em todos os novos arquivos criados são controladas pelo
umask
valor ... e você realmente não deseja continuar alterando-o000
para criar arquivos no pendrive e voltar ao valor padrão (geralmente002
ou022
) para uso normal . Um único erro pode levar você a criar um arquivo de configuração importante com permissões amplamente abertas, que podem comprometer a segurança de sua conta de usuário ou causar outros problemas menores.Se você pode ter certeza de que o número UID do seu usuário normal é o mesmo em todos os seus sistemas Linux, e você só se preocupa com o acesso para aquele usuário (além do root, é claro), você pode se safar apenas formatando o stick USB para ext4, montá-lo pela primeira vez e atribuir a propriedade de seu diretório raiz à sua conta de usuário regular antes de começar a usar o sistema de arquivos.
Assumindo que esta
/dev/sdX1
é a partição do stick USB na qual você deseja criar o sistema de arquivos e<username>
é o seu nome de usuário, você pode fazer isso ao configurar o stick USB para uso:Mas se você não puder garantir números UID/GID correspondentes e/ou houver vários usuários que possam querer usar o pendrive, você precisará fazer algo um pouco mais complicado, mas ainda uma operação única após criar o ext4 sistema de arquivos no stick.
Precisamos definir uma ACL padrão no diretório raiz do sistema de arquivos do stick USB que atribui acesso total a todos em qualquer novo arquivo ou diretório. E para garantir que o stick será montado com suporte ACL ativado, precisamos usar
tune2fs
para ajustar as opções de montagem padrão armazenadas nos metadados do sistema de arquivos.Supondo que todos os seus sistemas suportem ACLs em sistemas de arquivos ext4 e que qualquer ferramenta de montagem de mídia removível que você possa usar não ignore a
acl
opção de montagem, agora você deve ter um pendrive no qual todos os arquivos criados nele terão permissões-rw-rw-rw-
e todos subdiretórios criados serãodrwxrwxrwx+
. O sinal de mais indica que o subdiretório terá uma ACL: o conjunto de permissões padrão personalizado configurado para o diretório raiz do stick também será herdado pelos subdiretórios e eles se comportarão da mesma forma.O proprietário UID/GID ainda corresponderá ao UID e ao GID primário do usuário que criou o arquivo no sistema de arquivos, mas devido às permissões relaxadas de arquivos e diretórios, isso não deve ser um grande problema.
O único problema que posso esperar é que a cópia de arquivos para o stick USB tentará, por padrão, duplicar as permissões de arquivo do original, o que você não deseja neste caso.
Por exemplo, se você criar um arquivo no Sistema A com permissões -rw-r--r-- e copiá-lo para o stick, mova o stick para o Sistema B com números UID não correspondentes. Você ainda pode ler o arquivo no Sistema B, mas não pode sobrescrevê-lo no pendrive sem primeiro deletar ou renomear explicitamente o arquivo original. Mas você pode fazer isso, desde que tenha acesso de gravação ao diretório em que o arquivo está .
Na verdade, isso pode ser um recurso útil: se você modificar o mesmo arquivo em vários sistemas, isso o levará a salvar uma nova versão do arquivo a cada vez, em vez de sobrescrever o One True File... e se o arquivo for importante, isso pode realmente ser uma coisa boa.