Como qualquer sistema de arquivos no estilo unix, o ext4 inclui a propriedade padrão de arquivo do Unix e as convenções de permissão. Ou seja, o usuário é identificado por um número de UID e cada usuário pertencerá a um ou mais grupos, cada grupo identificado pelo seu número de GID. Cada arquivo tem um proprietário UID e um proprietário de grupo GID. Os três conjuntos clássicos de permissões de arquivos do Unix são:
- um conjunto de permissões para o proprietário, identificado pelo número UID do proprietário
- um conjunto de permissões para o proprietário do grupo, identificado pelo número de GID do grupo
- um conjunto de permissões para todos os outros
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 qualquer novo arquivo criado são controladas pelo valor umask
... e você não deseja continuar alterando-o para 000
para criar arquivos no pendrive e voltar ao valor padrão ( geralmente 002
ou 022
) para uso normal. Um único erro pode levar você a criar um arquivo de configuração importante com permissões abertas, que podem comprometer a segurança da sua conta de usuário ou causar outros problemas menores.
Se você puder 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 importa com o acesso daquele usuário (mais root claro), você pode simplesmente formatá-lo para ext4, montando-o pela primeira vez e atribuindo 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 /dev/sdX1
é a partição USB stick na qual você deseja criar o sistema de arquivos e <username>
é seu nome de usuário, você pode fazer isso ao configurar o pendrive USB para uso:
sudo mkfs.ext4 /dev/sdX1
sudo mount /dev/sdX1 /mnt
sudo chown <username>: /mnt
sudo umount /mnt
Mas se você não pode garantir números UID / GID correspondentes e / ou há vários usuários que podem querer usar o pendrive, você precisará fazer algo um pouco mais complicado, mas ainda assim uma operação única depois criando o sistema de arquivos ext4 no bastão.
Precisamos definir uma ACL padrão no diretório raiz do sistema de arquivos USB que atribua acesso total a todos em qualquer novo arquivo ou diretório. E para garantir que o bastão seja montado com o suporte a ACL ativado, precisamos usar tune2fs
para ajustar as opções de montagem padrão armazenadas nos metadados do sistema de arquivos.
sudo mkfs.ext4 /dev/sdX1
sudo tune2fs -o acl /dev/sdX1
sudo mount /dev/sdX1 /mnt
sudo chown <username>: /mnt
chmod 777 /mnt
setfacl -m d:u::rwx,d:g::rwx,d:o::rwx /mnt
sudo umount /mnt
Supondo que todos os seus sistemas suportam ACLs em sistemas de arquivos ext4, e que qualquer ferramenta de montagem de mídia removível que você usar não escolherá ignorar a opção acl
mount, agora você deve ter um pendrive no qual todos os arquivos criados ele terá permissões -rw-rw-rw-
e todos os subdiretórios criados serão drwxrwxrwx+
. 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 bastão também será herdado pelos subdiretórios e se comportará da mesma forma.
O proprietário UID / GID ainda corresponderá ao UID e ao GID principal 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 eu poderia esperar é que copiar arquivos para o pendrive USB por padrão tentará duplicar as permissões de arquivo do original, o que você não quer neste caso.
Por exemplo, se você criar um arquivo no Sistema A com permissões -rw-r - r-- e copiá-lo para o bastão, mova o bastão 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 bastão sem antes excluir ou renomear explicitamente o arquivo original. Mas você pode fazer isso, desde que tenha acesso de gravação ao diretório do arquivo em .
Isso pode realmente ser um recurso útil: se você modificar o mesmo arquivo em vários sistemas, isso o ajudará 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.