Acesso à Pasta do Grupo Linux

3

Esta é uma pergunta simples, tenho certeza, mas não consigo encontrar nenhum motivo para não conseguir fazer isso funcionar.

Estou tentando configurar pastas de grupos dentro da raiz da web para um servidor PHP. Cada departamento deve ter um grupo como este:

/srv/www/htdocs/dev/dept1
/srv/www/htdocs/dev/dept2

Todos os usuários no grupo dept1 devem ter acesso de leitura / gravação para a pasta dept1, todos os usuários em dept2 devem ter acesso de leitura / gravação à pasta dept2, etc. Ao tentar implementar isso, criei um grupo assim:

sudo groupadd dept1
sudo useradd -G dept1 -m user1
cd /srv/www/htdocs/dev
mkdir dept1
sudo chown -R wwwrun:dept1 dept1
sudo chmod -R g+rwxs dept1

wwwrun é o usuário no qual o Apache está sendo executado. A ideia é que os usuários possam criar / ler / atualizar / excluir o que quiserem em sua pasta de departamento. No entanto, ao experimentá-lo, a conta do usuário pode visualizar o conteúdo da pasta e ler arquivos, mas não criar ou gravar arquivos.

O que estou fazendo de errado?

    
por Brad Westness 02.11.2010 / 19:39

2 respostas

2

Com as permissões concedidas, os usuários do grupo dept1 podem criar e excluir arquivos em /srv/www/htdocs/dev/dept1 . No entanto, em configurações típicas, os arquivos e subdiretórios que eles criarão não serão graváveis em grupo.

Você pode organizar a maioria dos arquivos para serem graváveis em grupo, alterando a configuração umask de todos. A configuração de umask determina quais permissões não são dadas para novos arquivos. Geralmente, ele é definido como 022, o que significa que os arquivos não poderão ser gravados em grupo ou graváveis em outros, a menos que sejam explicitamente feitos. Você pode mudar isso para 002 para que os arquivos sejam graváveis por grupo por padrão. No entanto, isso só é razoável se cada usuário tiver seu próprio grupo privado (caso contrário, os arquivos das pessoas seriam graváveis por todos em seu grupo primário).

A melhor solução é garantir que as listas de controle de acesso estejam ativadas no sistema de arquivos em que /srv/www/htdocs/dev reside (certifique-se de que que a entrada fstab contém acl na quarta coluna). Em seguida, crie uma ACL em srv/www/htdocs/dev/dept1 , fornecendo a permissão de gravação dept1 group no diretório e fazendo com que a concessão de permissão seja herdada por entradas recém-criadas no diretório. Isso é semelhante a uma mudança de umask, mas está vinculada a esse local específico no sistema de arquivos. Depois de executar os dois comandos a seguir, as permissões estarão corretas em todos os casos de uso típicos.

setfacl -R -m group:dept1:rwx /srv/www/htdocs/dev/dept1
setfacl -R -d -m group:dept1:rwx /srv/www/htdocs/dev/dept1
    
por 03.11.2010 / 00:14
0

Como seus usuários acessam os arquivos? Como eles estão tentando atualizá-los / criá-los? Estou assumindo que eles estão fazendo login no servidor, para que eles executem o comando 'groups' para garantir que eles estejam realmente no grupo correto e devem ser listados primeiro.

    
por 02.11.2010 / 20:35