
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 grupo na 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 do grupo dept1 devem ter acesso de leitura/gravação à pasta dept1, todos os usuários do 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 com o qual o Apache está sendo executado. A ideia é que os usuários possam criar/ler/atualizar/excluir o que quiserem na pasta do departamento. No entanto, ao experimentar, a conta do usuário pode visualizar o conteúdo da pasta e ler arquivos, mas não pode criar ou gravar arquivos.
O que estou fazendo de errado?
Responder1
Com as permissões que você concede, os usuários do dept1
grupo podem criar e excluir arquivos no formato /srv/www/htdocs/dev/dept1
. No entanto, em configurações típicas, os arquivos e subdiretórios que eles criarão não poderão ser gravados em grupo.
Você pode fazer com que a maioria dos arquivos sejam graváveis em grupo, alterando os nomes de todos.umaskcontexto. A configuração umask determina quais permissões sãonãodado a novos arquivos. Geralmente é definido como 022, o que significa que os arquivos não serão graváveis em grupo ou outros, a menos que isso seja explicitamente feito. Você pode alterar isso para 002 para que os arquivos sejam graváveis em 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 poderão ser gravados por todos em seu grupo principal).
Uma solução melhor é ter certezalistas de controle de acessoestão habilitados no sistema de arquivos onde /srv/www/htdocs/dev
reside (certifique-se de que a fstab
entrada contenha acl
na quarta coluna). Em seguida, crie uma ACL para srv/www/htdocs/dev/dept1
conceder dept1
permissão de gravação ao grupo no diretório e fazer com que essa concessão de permissão seja herdada por entradas recém-criadas no diretório. Isso é semelhante a uma alteração umask, mas está vinculado 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
Responder2
Como seus usuários estão acessando os arquivos? Como eles estão tentando atualizá-los/criá-los? Presumo que eles estejam efetuando login no servidor, peça-lhes que executem o comando 'groups' para garantir que estejam realmente no grupo correto e que ele deve ser listado primeiro.