Como posso configurar a permissão do grupo para usuários diferentes em várias instalações do Linux?

3

Eu tenho duas instalações do Linux no meu computador, com /home em uma partição diferente, mas compartilhada para as duas instalações. E cada instalação tem um nome de usuário diferente para evitar conflitos. O problema é que sou um desenvolvedor, não quero misturar usuários, mas quero configurar permissões para uma pasta compartilhada.

Exemplo,

  • Ubuntu, usuário principal: raul , pasta inicial: /home/raul
  • Fedora, usuário principal: ricardo , pasta inicial: /home/ricardo
  • Eu quero um /home/shared em que raul & ricardo tem permissões sobre essa pasta, talvez www-data e root , mas qualquer outro usuário em qualquer distribuição Linux.

Espero que você tenha o meu problema.

EDIT: Isso parece ser mais complexo do que o esperado.

Esta nota é a melhor que eu posso explicar, com o meu nível real de inglês, então, por favor, seja legal.

No mesmo computador, tenho as distros A e B instaladas. Distros A e B estão compartilhando /home em outra partição mas tem usuários diferentes ... então eu tenho /home/a para usuário A na distro A, /home/b e você sabe ... Então eu gosto de ter uma pasta por exemplo, /home/shared onde os usuários A e B podem ler e gravar na pasta, como parte do mesmo grupo, MAS o usuário A não existe na distribuição B e vice-versa. Então, como eu digo a cada distro para fazer de mim um grupo com um usuário de outra distro?

    
por raulricardo21 09.05.2011 / 17:06

3 respostas

3

Não sei exatamente qual é a sua pergunta. Você pode ser mais específico? Especificamente, estou tendo dificuldades em analisar

I want a /home/shared where raul & ricardo have permission over this folder, maybe www-data and root, but any other user on any linux distro.

Você quer saber como configurar uma pasta / partição compartilhada? Nesse caso, você poderia simplesmente configurar um grupo em cada instalação com o mesmo ID de grupo. Então, talvez use o acl para garantir que o grupo tenha rw de permissão para a partição.

man addgroup diz

A GID will be chosen from the range specified for system GIDS in the configuration file (FIRST_GID, LAST_GID). To override that mechanism you can give the GID using the --gid option.

Então você poderia fazer

addgroup [options] [--gid ID] group

em que group e ID são iguais em ambas as instalações.

Para um tutorial sobre acl, consulte Usando ACLs com o Fedora Core 2 e veja meu < href="https://unix.stackexchange.com/questions/12842/permission-of-saved-files/12846#12846"> responder a uma pergunta recente sobre o compartilhamento de um diretório entre dois usuários. Obviamente, você precisará montar a partição com suporte acl em ambas as instalações.

Quando o acl estiver configurado, todos os arquivos e diretórios na pasta terão permissões de grupo rw e, portanto, raul de uma instalação e ricardo da outra instalação poderão ler e gravar em essa pasta.

EDIT: Em resposta ao comentário de raul abaixo:

Se eu entendi sua pergunta corretamente e você está tentando compartilhar dados entre dois www-data usuários em duas instalações, isso é uma questão um pouco diferente do que o que parecia ser perguntado com raul e ricardo , porque, nesse caso, os usuários seriam os mesmos.

www-data seria normalmente criado por uma instalação de servidor da Web como o apache, portanto, criá-los com IDs correspondentes seria difícil, a menos que já fosse o caso (veja abaixo). Eu acho que não deve haver nenhum problema em alterar os uids / gids após o evento para combinar, mas eu não tenho 100% de certeza sobre isso. Talvez os especialistas aqui possam aconselhar.

Note que o padrão do Debian é uid/gid=33 para www . É possível que não seja o mesmo para outras distribuições Linux. No entanto, se suas instalações forem da mesma distribuição, os IDs provavelmente coincidirão. De fato, se esse fosse o caso, você poderia usar o grupo www-data como seu grupo e não precisaria fazer nada.

    
por 09.05.2011 / 17:16
1

Faheem está correto; uma opção de grupo compartilhado resolveria seu problema, presumindo que eu entenda corretamente seu problema.

Você pode usar este comando para encontrar o maior GID atualmente atribuído em cada sistema (o uniq não é necessário, mas inclui o hábito):

awk -F':' '{ print $3 }' /etc/group | sort -n | uniq | tail -1

Por favor note que, qualquer que seja a saída deste comando, também pode haver sobreposições em GIDs não usados com um valor mais baixo, no entanto, selecionar um GID acima do valor impresso garantirá que nenhum dos sistemas já use o identificador.

Qualquer permissão de grupo definida na (s) pasta (s) em questão será aplicada a todos os membros do grupo nos dois sistemas.

Por favor, note também que os nomes dos grupos não precisam ser iguais, embora para sua própria sanidade isto possa ser desejável.

Para adicionar um ou mais usuários a um grupo, dependendo da sua distribuição Linux, você pode ter acesso ao comando gpasswd:

gpasswd -a <user> <group/GID>

Na falta deste utilitário, ou por preferência, você pode fazer a mesma alteração executando:

usermod -G $(groups <user> | sed 's/ /,/g'),<new group> <user>

Por favor, note que este comando presume que você deseja definir o grupo suplementar em vez do grupo primário para o usuário especificado.

    
por 09.05.2011 / 18:13
0

No kernel e no sistema de arquivos, os usuários e grupos são identificados puramente por meio de um número, o ID do usuário ou o ID do grupo. Os nomes para usuários e grupos são apenas para conveniência de exibição e aplicativos de nível superior.

Quando você compartilha um sistema de arquivos entre várias instalações, aconselho vivamente que qualquer usuário (ou grupo) existente em ambos os sistemas tenha o mesmo ID em ambos. Dessa forma, a propriedade dos arquivos compartilhados será a mesma em todas as instalações. Muitas GUIs de administração de usuários não permitem a escolha de IDs, portanto, talvez seja necessário usar o comando adduser (ou addgroup ).

Um ID do usuário não precisa ser registrado em /etc/passwd para "existir". É apenas que os arquivos pertencentes a esse usuário seriam mostrados com o ID do usuário em vez de um nome em ls output e outros locais. (Da mesma forma, você pode usar chown 1234 /path/to/file para alterar o proprietário de um arquivo para qualquer ID).

Com isso em mente, o problema de compartilhar a propriedade de arquivos entre instalações diferentes reduz o compartilhamento de arquivos em uma única instalação. Consulte Permissão de arquivos salvos para uma discussão sobre esse tópico (conselho: use ACLs).

    
por 09.05.2011 / 23:13