Como posso compartilhar um diretório com outro usuário?

6

Eu não quero que a pasta compartilhada seja acessível por ninguém no sistema, quero que ela seja acessível apenas para um conjunto restrito de usuários.

Como faço isso?

    
por Emanuele 26.06.2013 / 22:05

1 resposta

8

Extraído desta excelente postagem nos Fóruns do Ubuntu da Morbius1.

A maneira clássica do Linux de fazer esse tipo de coisa é algo assim:

  1. Crie a pasta compartilhada:

    sudo mkdir /home/Shared
    
  2. Crie o novo grupo de usuários:

    sudo addgroup newgroup
    
  3. Altere a propriedade da pasta compartilhada para o novo grupo:

    sudo chown :newgroup /home/Shared
    
  4. Adicione seus usuários desejados ao grupo:

    sudo adduser user1 newgroup
    

Repita para todos os usuários.

Agora, você tem algumas decisões a tomar sobre o que deseja que esses usuários possam fazer:

  • [a] Todos os usuários do grupo podem adicionar e excluir da pasta e podem ler e não gravar nos arquivos uns dos outros:

    sudo chmod 0770 /home/Shared
    
  • [b] O mesmo que acima, mas somente o proprietário do arquivo pode excluí-lo:

    sudo chmod 1770 /home/Shared
    
  • [c] Todos os usuários do grupo podem adicionar e excluir da pasta e podem ler e gravar os arquivos uns dos outros:

    sudo chmod 2770 /home/Shared
    
  • [d] O mesmo que [c] , exceto que somente o proprietário do arquivo pode excluí-lo:

    sudo chmod 3770 /home/Shared
    

Um 1 na primeira posição do comando chmod é o sticky bit que impede a exclusão de um arquivo para qualquer pessoa que não seja o proprietário.

Um 2 na primeira posição do comando chmod é o setgid bit que força todos os arquivos novos ou copiados a ter o grupo dessa pasta.

Um 3 na primeira posição do comando chmod é a combinação da variável ( 1 ) & amp; setgid ( +2 ) bits.

Há uma ressalva em tudo isso no que diz respeito ao bit setgid. Todos os novos arquivos criados e quaisquer arquivos copiados para essa pasta herdarão, de fato, o grupo da pasta. Mas não os arquivos movidos para essa pasta. Os arquivos movidos mantêm a propriedade de onde quer que tenham sido movidos. Uma maneira de superar esse problema é usar bindfs.

Finalmente, se você quiser que outras pessoas fora do grupo consigam ver os arquivos, mas não alterá-los, altere o 0 final no comando chmod para um 5, por exemplo:

sudo chmod 0775 /home/Shared
    
por Warren Hill 27.06.2013 / 14:06