Resolvendo problemas de permissão ao usar o disco rígido EXT4 externo com várias instalações linux

18

Eu tenho um disco rígido externo e, como só uso o Ubuntu e o Fedora, decido formatar meu disco rígido para ext4.

O problema é que, quando eu monto a unidade, preciso alterar a permissão para poder ler e escrever.

Que tipo de permissão devo usar? adm meu nome de usuário?

Javier Gonzalez
fonte

Respostas:

5

Por mais chato que seja de mim, vou ter que responder à pergunta com outra pergunta. Se tudo o que estamos falando é para um sistema operacional, então seria

sudo chown -R (user name) /dev/(device name)

( ubuntu )

ou apenas

chown -R (user name) /dev/(device name)

fedora - não sudo, basta executar o comando a partir do root.

A parte do raspador de macarrão, e a parte para a qual não tenho boas respostas, é como fazê-lo para que você não precise redigitar manualmente quando alterna entre as distros. Eu quase tentaria adicionar a linha à minha ~/.bashrc, mas provavelmente há uma maneira melhor que eu ainda não conheça ou não tenha pensado.

user2367
fonte
Que o que eu tho eu preciso alterar a permissão cada vez que eu mudar de distro
Javier Gonzalez
11
Apenas para ter certeza e satisfazer minha própria curiosidade intelectual, voltei e verifiquei com uma unidade USB EXT4 que tenho. Eu não sabia se a propriedade do dispositivo é a mesma coisa que a propriedade do sistema de arquivos, e é. sudo chown -R (nome de usuário) / dev / (nome do dispositivo) faz com que você possua todos os arquivos na unidade, mesmo que você não os tenha criado.
user2367
Sim, antes de adicionar a linha ao ~ / .bashrc, para que seja executada automaticamente toda vez que você executa o terminal, não tenho resposta para isso. Talvez poderia adicioná-lo ao cron? Mas parece que deveria haver apenas uma maneira de organizar a execução quando a distro inicializar.
user2367
Eu realmente ext4 amor, mas é uma torre de menagem porcaria mudar o haha permissão
Javier Gonzalez
10

A solução mais simples é garantir que suas contas de usuário do Ubuntu e Fedora tenham o mesmo ID de usuário (UID).

Eu acho que o Fedora inicia as contas de usuário em 500 por padrão, enquanto o Debian e Ubuntu as iniciam em 1000, então é muito provável que em um sistema operacional você seja o número de usuário 500 e no outro seja o número de usuário 1000. O sistema de arquivos usa esse número de UID para acompanhar as permissões, portanto, se você garantir que eles tenham o mesmo UID, eles serão considerados o mesmo usuário e nenhum problema de permissão ocorrerá.

Eu acho que o melhor que você pode fazer é torná-los UID = 1000, então altere o UID no sistema Fedora e verifique se todos os arquivos no disco externo e no $ HOME do usuário na instalação do Fedora pertencem ao UID 1000. Depois que você não deve mais ter problemas de permissão.

JanC
fonte
Sim, eu vou fazer isso obrigado pelo seu tempo :)
Javier Gonzalez
11
Por favor, leia também minha adição ou o usuário do Fedora não poderá fazer login!
JanC
Tudo está claro, eu vou testá-lo agora, também obrigado por editar o título da pergunta agora é muito claro.
Javier Gonzalez
3

No / etc / fstab, você pode colocar uid = 1000 (no Ubuntu - é 500 no Fedora) para que a unidade seja de propriedade do seu usuário (supondo que você seja o primeiro usuário, yada yada yada ... se não, o usuário dele uid de id ) e umask = 000 se você quiser que todos os usuários tenham acesso (ou 077 para apenas o especificado por uid = - é uma máscara, coloque o oposto do que você usaria para chmod)

Para obter mais informações sobre o uso do / etc / fstab: http://ubuntulinuxtipstricks.blogspot.com/2008/02/fun-with-etcfstab.html

maco
fonte
11
Se eu definir a permissão para 077, não preciso alterar novamente a permissão quando mudar do ubuntu para o fedora?
Javier Gonzalez
@Dracirate: Eu acho que você pode precisar de 000 em vez de 077. Se você colocar uma entrada fstab para a unidade em cada sistema (Ubuntu e Fedora), eles a montarão automaticamente para que sejam utilizáveis.
Maco
3

Infelizmente, o kernel do Linux impõe a permissão POSIX no ext2 / ext3 / ext4 FS.

Você pode contornar a permissão POSIX com um grupo compartilhado. Faço a pergunta correspondente: /unix/273144/predefined-group-ids-across-linux-distros/ mas, afinal, fiz uma pesquisa própria.

Eu descobri que o grupo sys compartilha o ID 3 no Debian, Ubuntu, RedHat, Fedora, CentOS, Suse, FreeBSD, OpenBSD, NetBSD, MacOSX, Solaris.

Com essa descoberta em mente, uma solução pode parecer:

$ sudo chgrp -R sys /mnt/data/dir
$ sudo chgmod -R g+s /mnt/data/dir
$ sudo fsetacl -R -m g:sys:rwx /mnt/data/dir
$ sudo fsetacl -R -d -m g:sys:rwx /mnt/data/dir

e sabor disso (sempre que você estiver no Linux / FreeBSD / MacOSX / Solaris):

$ sudo adduser user sys

Veja também:

gavenkoa
fonte
Usando esse método, a execução cd /mnt/data/dir; touch example.txt; ls example.txt ... mostra ... -rw-rw----+ 1 user user 3 nov 27 20:16 example.txt. Executando mais tarde mv example.txt ~; ll ~/example.txt... mostra ... -rw-rw----+ 1 user user 0 nov 27 21:22 /home/user/example.txt, com isso +no final das permissões. Então, muitos +vão aparecer em muitos lugares, fazendo as pessoas se perguntarem por que esses arquivos são especiais (apenas porque foram copiados / movidos de uma pasta específica). Existe alguma maneira de parar de produzi-los +automaticamente?
Ganton 27/11
2

Você pode apenas tentar usar exfat ou ntfs. Para mim, funciona dessa maneira. Mas agora não sei se funciona com todas as permissões de arquivo. Eu acho que não.

d3rdon
fonte
2

Essa é uma pequena variação da abordagem do @ gavenkoa de usar grupos compartilhados e não envolve a modificação da unidade montada.

Verifique qual ID de grupo (GID) é usado na unidade montada.

su
cd /mnt/data/dir  # or wherever it is mounted
ls -l

Digamos que você veja algo semelhante ao seguinte:

drwxr-xr-x 3 12588 12000  4096 30.06.2017 11:22 Documents/

Isso significa que 12000é o GID atual dos dados no inversor e os dados podem ser lidos e executados (embora não possam ser gravados) por qualquer outro usuário do grupo. Crie um novo grupo (por exemplo driveusers) e adicione seu usuário atual ao novo grupo:

groupadd -g 12000 driveusers
sudo gpasswd -a $USER driveusers  # add the current user to the new group
sudo chmod 770 /mnt/data/dir      # optional, just to ensure the drive mount is accessible to user and group of the drive
jadelord
fonte
1

Encontrei outras soluções:

/unix/422656/how-to-make-an-ext4-formatted-usb-drive-with-full-rw-permissions-for-any-linux-m/468933#468933

/unix//a/273705

Com isso:

sudo chgrp -R sys /mnt/data/dir
sudo chmod -R g+s /mnt/data/dir
sudo setfacl -R -m g:sys:rwx /mnt/data/dir
sudo setfacl -R -d -m g:sys:rwx /mnt/data/dir

e sabor disso:

sudo adduser user sys  

seu usuário poderá ler / gravar qualquer arquivo /dir.

@jadelord @ gavenkoa, você acha que há alguma melhoria que possa ser feita hoje em dia nas suas soluções sugeridas para usuários do Ubuntu (ou Fedora)? obrigado

horizonte
fonte