Conceder permissão de escrita a um grupo para uma pasta

0

Preciso de ajuda para entender como dar permissão de gravação a um grupo funciona no Ubuntu. Estou logado como root e tenho um www-data:www-data e ftpuser:ftpuser ( user:group ). Eu adiciono o ftpuser no grupo www-data usando:

usermod -a -G www-data ftpuser

Agora, meu grupo www-data tem dois usuários.

Eu então faço o grupo www-data , proprietário da pasta /var/www usando:

chgrp -R www-data /var/www

Ainda não tenho capacidade de gravação para a pasta por um membro do grupo (embora o grupo possua) a menos que eu dê permissões de gravação para o grupo. Agora, de acordo com isso melhor resposta eu também preciso definir as permissões para o diretório usando sudo chmod -R 770 /path/to/the/directory e isso é o que me confunde.

Se um usuário é o proprietário de um diretório, por que ele não pode escrever para ele? Um usuário de um grupo pode dar ao grupo permissões de gravação para uma pasta pertencente ao próprio grupo? Onde o grupo está definido no comando sudo chmod -R 770 /path/to/the/directory ? Isso não dará permissões recursivas a todos os usuários?

    
por PaulB 11.09.2016 / 15:19

2 respostas

1

though the group owns it

Não, o grupo não possui um arquivo no sentido de que as permissões para owner se aplicam. Permissões de proprietário se aplicam apenas ao proprietário - o usuário; e as permissões de grupo se aplicam ao grupo atribuído.

If a user is the owner of a directory why can't he write to it?

Ele pode, exceto que ftpuser no seu caso não é o proprietário.

Provavelmente, porque você não diz isso explicitamente: root ou www-data é o proprietário /var/www do arquivo e ftpuser é membro do grupo www-data .

Mesmo que o usuário www-data e o grupo www-data tenham o mesmo nome, eles são entidades diferentes para o sistema operacional.

Can a user of a group give the group write permissions to a folder owned by the group himself?

Novamente: a pasta não pertence a um grupo. Se o grupo tiver permissão de gravação, qualquer membro do grupo poderá alterar as permissões para o objeto.

Where is the group defined in the command sudo chmod -R 770 /path/to/the/directory

O segundo 7 refere-se às permissões do grupo ( 7 é uma combinação de read , write e execute ).

Won't this give recursive permissions to all users?

Ele atribuirá (recursivamente):

  • read , write e execute para o proprietário (primeiro 7 )
  • read , write e execute para o grupo (segundo 7 )
  • sem permissões para outros usuários (último 0 )
por 11.09.2016 / 16:01
0

Diretório compartilhado por grupo com permissões de gravação para arquivos existentes

Todos os usuários devem ser membros de um grupo www-data. Você pode adicioná-los usando

usermod -a -G www-data user1 usermod -a -G www-data user2 ...

Dar a um grupo www-data uma permissão de gravação para uma pasta e todos os arquivos que continham poderiam ser obtidos com a série de comandos:

chgrp -R www-data /var/www chmod -R g+ws /var/www

Todos os novos arquivos e diretórios terão o grupo www-data e poderão ser gravados por membros do grupo.

Permissões para novos arquivos

Umask padrão na maioria dos sistemas Linux é 022, ou seja, se user1 cria um arquivo ou diretório sob / var / www, esse arquivo torna-se "editável" somente pelo usuário1, mas legível pelo grupo www-data.

Se esse for o comportamento esperado, você deve parar por aqui.

Diretório compartilhado por grupo com permissão de gravação

Você deve verificar se a ACL estendida está ativada em seu sistema. Você pode olhar para o / etc / fstab e procurar algo como isto: %código% Depois de verificar isso, você precisa fornecer um parâmetro de ACL estendido para os diretórios.

Você adicionará o ACL para permitir que novos arquivos criados sob a pasta / var / www também sejam graváveis no grupo www-data usando este comando:

/dev/sda5 / ext4 acl,.....

Neste senario, se um usuário1 criar um arquivo ou pasta sob / var / www, o usuário2 poderá escrever / apagar.

Todo novo arquivo ou diretório terá permissões rw-rw - ???. Pontos de interrogação serão algo que você definiu para os outros.

Como verificar permissões

Use este comando:

setfacl -R -b -k -d -m g:www-data:rwx --mask $2

A saída deve ser algo assim:

getfacl /var/www

As permissões padrão para a pasta / var / www são: drwxrws ---

    
por 21.10.2018 / 01:21