2011-05-09 08:44:23 +0000 2011-05-09 08:44:23 +0000
81
81

Dar permissões de escrita a vários utilizadores numa pasta em Ubuntu

Existe uma pasta que é propriedade do utilizador tomcat6:

drwxr-xr-x 2 tomcat6 tomcat6 69632 2011-05-06 03:43 document

Quero permitir que outro utilizador (ruser) escreva permissões na pasta de documentos. Os dois utilizadores (tomcat6 e ruser) não pertencem ao mesmo grupo. Eu tentei usar setfacl:

sudo setfacl -m u:ruser:rwx document

mas isto dá-me erro setfacl: document: Operation not supported. Por favor, ajude-me.

Respostas (2)

151
151
151
2011-05-09 10:06:57 +0000

Existem duas formas de o fazer: definir o directório para “mundo” gravável ou criar um novo grupo para os dois utilizadores e tornar o directório gravável para esse grupo.

Obviamente que torná-lo gravável a nível mundial é uma coisa má, por isso a segunda opção é preferível.

Os utilizadores no Linux podem pertencer a mais do que um grupo. Neste caso você quer criar um novo grupo, vamos chamar-lhe tomandruser:

sudo groupadd tomandruser

Agora que o grupo existe, adicione os dois utilizadores a ele:

sudo usermod -a -G tomandruser tomcat6
sudo usermod -a -G tomandruser ruser

Agora só falta definir as permissões no directório:

sudo chgrp -R tomandruser /path/to/the/directory
sudo chmod -R 770 /path/to/the/directory

Agora só os membros do grupo tomandruser podem ler, escrever ou executar qualquer coisa dentro do directório. Note o argumento -R para os comandos chmod e chgrp: isto diz-lhes para recorrerem a todos os subdirectórios do directório alvo e modificarem todos os ficheiros e directórios encontrados.

Também pode querer mudar 770 para algo como 774 se quiser que outros possam ler os ficheiros, 775 se quiser que outros possam ler e executar os ficheiros, etc. As alterações de atribuição de grupo não terão efeito até que os utilizadores saiam e voltem a entrar.

Se também quer (provavelmente quer) que novos ficheiros criados dentro do directório por um dos utilizadores sejam automaticamente escrevíveis por outros no grupo, então veja aqui .

3
3
3
2018-07-23 14:26:48 +0000

O script de exemplo mostra um exemplo para dar permissão ao w (write)/ r (read) / x (execute) para o caminho da pasta /path/to/the/directory para USER1 e USER2. Se quiser dar apenas acesso por escrito, por favor substitua rwx por w.


#!/bin/bash

# Block others and people in the same group to do read/write/execute on give folder:    
sudo chmod 700 /path/to/the/directory 

#Give read/write/execute access to USER1 on give folder:
sudo setfacl -R -m user:USER1:rwx /path/to/the/directory 

#Give read/write/execute access to USER2 on give folder:
sudo setfacl -R -m user:USER2:rwx /path/to/the/directory