Como configuro uma pasta para que qualquer coisa criada nela herde permissões?

16

Eu tenho uma pasta / data (na verdade, uma partição) para todos os dados que devem ser acessados por todos os usuários (neste caso, os membros da família). Todos nós temos contas de usuários individuais e geralmente estamos logados a qualquer momento neste PC.

Como posso configurar permissões para que todos nós mantenham o acesso aos arquivos, independentemente de quem os cria, incluindo novas pastas? Se eu criar uma pasta, ela receberá meu usuário e meu grupo, para que ninguém mais possa escrever nela.

    
por steevc 10.07.2011 / 20:58

7 respostas

15

Outra abordagem é usar as Listas de Controle de Acesso, um superconjunto de permissões de arquivos.

Primeiro, precisamos instalar os aplicativos acl pacote:

sudo apt-get install acl

Antes do Ubuntu 14.04 , a partição tem que ser montada com a opção acl para o seguinte funcionar. Pode ser adicionado em /etc/fstab , como em

UUID=<XXXX>  /media/shared  ext4  noatime,acl  0  2

ou para um sistema de arquivos já montado

sudo mount -o remount,acl /media/shared

Em seguida, você deve criar um novo grupo, ao qual todos os usuários com permissão para acessar o compartilhamento no modo de leitura / gravação serão adicionados. Eu chamo de usershare . Um grupo já existente poderia ser usado.

sudo addgroup usershare

Agora adicionamos os usuários enzotib e steevc a esse grupo:

sudo gpasswd -a steevc  usershare
sudo gpasswd -a enzotib usershare

(efetivo no próximo login).

Em seguida, adicionamos uma ACL com rwx de permissões para o grupo usershare a todos os arquivos que já estão em /media/shared

sudo setfacl -Rm g:usershare:rwX /media/shared

Por fim, adicionamos uma ACL padrão com rwx de permissões para o grupo usershare para todos os arquivos criados a partir de agora dentro de /media/shared

sudo setfacl -d -Rm g:usershare:rwX /media/shared

Agora, todos os usuários do grupo usershare têm permissões completas em todos os arquivos em /media/shared . As permissões de cada usuário nos diretórios pessoais dele e de outros não são afetadas.

Eu testei esta solução e parece funcionar, mas sugestões e correções são bem-vindas.

Observação : novos arquivos e diretórios criados no diretório considerado terão permissão de gravação para o grupo usershare , mas os arquivos copiados ou movidos na pasta manterão suas permissões originais. Se o usuário, como eu entendo, só requer acesso de gravação aos diretórios recém-criados, isso não é um problema. Caso contrário, deve modificar as permissões manualmente. Veja esta resposta sobre como superar isso definindo a umask de usuários para 002 .

    
por enzotib 11.07.2011 / 21:54
8
  1. Crie uma pasta.

    Por exemplo:

    mkdir /mnt/family
    

    Se você precisar montar a partição para eles ... se ext4 tudo que você precisa em /etc/fstab é

    UUID=xxx    /mnt/family ext4    **rw,exec,defaults,auto,async   0   2**
    
  2. Crie o grupo myfam.

    addgroup myfam
    
  3. Adicione alguns usuários a esse grupo

    adduser papa myfam  
    adduser mom myfam
    
  4. Agora pegue e dê permissão.

    Acho que você deve começar, alterando umask .

    Permissões do sistema de arquivos e direitos de acesso padrão em 12.04

    chown -R you.myfam /mnt/family  
    chmod -R g+rwx /mnt/family  
    

    Agora é mais importante. Essa linha cria setgid qualquer coisa que você criar nessa pasta terá seus usuários como proprietário e o grupo myfam . Isso permite que o sistema substitua o grupo principal do usuário.

    chmod -R g+s /mnt/family   
    
por Pas_ 02.05.2012 / 02:26
3

A coisa mais simples que vem à mente é adicionar cada usuário ao grupo de todos os outros usuários.

Em seguida, altere umask de cada usuário de 022 para 002, isso pode ser feito em /etc/profile .

Editar

A primeira etapa pode ser substituída pela seguinte: fazer com que todos os usuários pertençam a users group como grupo principal.

Edi2

Como sugeriu @James_Henstridge, pode ser conveniente definir o bit setgid no diretório principal, para que novos arquivos e diretórios criados tenham o mesmo grupo, independentemente do usuário. Dessa forma, você pode evitar o conjunto users como o grupo principal para usuários.

    
por enzotib 10.07.2011 / 22:36
2

Isso parece um trabalho para as ACLs. Giles tem um resposta muito completa no site do SE Unix e Linux que me ajudou a resolver o mesmo problema.

    
por ephsmith 18.07.2012 / 01:43
0

Eu não entendo, são todos linux-linux, linux-windows, linux - ???, usando Samba ?, SSH ?, Pigeons ?; de qualquer forma, você precisa incluir os outros no grupo com seu nome de usuário (seu grupo) e eles terão as mesmas permissões que você.

    
por juancarlospaco 10.07.2011 / 21:21
0

Me deparei com essa pergunta enquanto procurava respostas para meu problema de PERMISSÃO DE GRUPO. Eu li a pergunta e parece que já estou implementando o que a pergunta tenta realizar.

Então eu me incomodei em responder.

Já tenho uma configuração de um compartilhamento para todos os usuários em minha lan com apenas leitura e execução, e somente minha conta tem permissão para escrever nas pastas compartilhadas.

Eu tenho um servidor multiuso na minha lan que usa o Ubuntu 12.04 LTS Desktop Edition. Eu tenho uma mistura de máquinas clientes de Linux e Windows.

Aqui está como eu configurei:

1.Em meu servidor, eu tenho contas de usuário chamadas admin e clientone

A conta admin é a conta criada quando eu instalei o ubuntu e a conta clientone é a conta criada usando o menu USER ACCOUNTS no Ubuntu. Ele tem apenas uma permissão padrão, sem privilégios de administrador e é adicionado ao grupo users . Você pode fazer isso usando apenas o terminal. Adicione mais contas de usuário adicionais para suas máquinas clientes.

2.A partição / pasta compartilhada é montada automaticamente no fstab usando apenas a opção padrão.

3. Minha rede está em um ambiente de grupo de trabalho e está em mylan workgroup.

Todas as máquinas na minha lan estão configuradas para usar o mylan workgroup.

4. Minha pasta compartilhada chamada shared já possui arquivos nela. Então eu mudo o dono e o grupo para ele recursivamente usando o comando abaixo.

 sudo chown -Rv admin:users /shared

5.Eu também defino a permissão de pasta e arquivo para a pasta /shared recursivamente usando o comando

 sudo chmod -Rv 750 /shared

máquinas convidadas no meu mylan workgroup não tem acesso ao compartilhamento usando o chmod 750

você pode usar

 sudo chmod -Rv 755 /shared

Todas as contas de usuário futuras dentro do grupo users só tem permissão de execução de leitura.

6.Na máquina cliente, um (windows xp) eu configurei uma conta de usuário chamada clientone . O mesmo nome de usuário e senha como aquele criado no meu servidor ubuntu. Uma segunda conta chamada clienttwo também é criada no servidor ubuntu e é a mesma conta de usuário usada na minha segunda máquina (linuxmint 15).

7.Na máquina do meu cliente ao efetuar login usando a conta clientone , eu vou para o comando run e, em seguida, insiro

 //192.168.10.254/shared

192.168.10.254 é o endereço IP do meu servidor ubuntu, /shared é a pasta compartilhada no meu servidor ubuntu Na minha máquina cliente dois (linuxmint 15), eu vou para Menu & gt; Rede e na localização: barra de diálogo eu digitei:

 smb://192.168.10.254/shared

Se você foi solicitado a digitar a senha, digite sua senha de usuário. E também a senha do seu chaveiro se o KEYRING estiver habilitado em suas máquinas linux.

Este funciona para mim na minha própria configuração de rede. Meu servidor é um servidor multiuso que serve como servidor squid, servidor xbmc e mediatomb e servidor amahi.

Ainda estou procurando maneiras de melhorar a parte de compartilhamento de arquivos da minha configuração. A instrução acima não é uma solução à prova de bala, compre você pode experimentá-lo. Eu testo e tento o ACL ”junto com pastas compartilhadas de montagem automática. À medida que seu requisito de compartilhamento de pastas fica complicado, a instrução acima não garante seu sucesso.

Informações adicionadas:

Eu tenho o Amahi Server instalado no meu servidor, eu também o usei para criar contas de usuário que eu queria ter acesso às pastas compartilhadas. Eu também usei para criar novos compartilhamentos de pastas.

Quando você quer uma permissão de usuário mais complexa para usuários diferentes, a ACL é a única a ser usada.

    
por Gary Lising 12.08.2013 / 13:01
0

Eu tenho arquivos de vídeo em meu nome, mas quando eu faço login com o nome de minha filha, a conta dela não pode ver os arquivos de vídeo. Então, o que eu fiz foi para contas de usuário, desbloqueado (canto superior direito), então mudei o tipo de conta dela de "padrão" para "administrador (que é a minha conta), e agora todos os arquivos de vídeo, realmente tudo, aparecem quando logado sob sua conta.

    
por joe 31.08.2013 / 10:06