Crie / Edite arquivos em uma pasta específica usando um usuário / grupo diferente

1

Eu quero saber se o seguinte cenário é possível.

Eu sou um usuário chamado www-admin e estou no grupo www-admin. Eu também sou um sudoer.

Eu quero que todos os arquivos que eu crie na pasta /var/www/domain tenham o grupo domain e o usuário domain .

Se eu, como usuário www-admin , criar e editar os arquivos dentro de /var/www/domain todo o domínio: domínio.

Isso é possível:?

    
por Saif Bechan 23.12.2011 / 17:58

1 resposta

2

Você pode configurar um diretório para que os arquivos criados nele pertençam a um determinado grupo, independentemente do ID do grupo efetivo do processo que os cria. Isso é chamado de semântica BSD e você deve definir o bit SGID para o diretório para ativá-lo:

chgrp domain /var/www/domain
chmod g+s /var/www/domain

Isso não altera o grupo de arquivos e diretórios já em /var/www/domain , você precisará cuidar disso manualmente (por exemplo, usando -R com chgrp acima). Note que todos os subdiretórios subsequentemente criados no diretório também herdarão o SGID, permitindo automaticamente a semântica do BSD para os subdirectores.

A mesma semântica não é possível para o proprietário.

Se você precisar fazer isso tanto para o proprietário quanto para o grupo, provavelmente precisará garantir que o código que cria arquivos em /var/www/domain seja executado com o usuário efetivo domain e o grupo efetivo domain . Você pode usar sudo para fazer isso:

sudo -u domain -g domain your_command

Se domain for o grupo principal do usuário domain , o seguinte será suficiente

sudo -u domain your_command

Como esta solução cuida facilmente do proprietário e do grupo, não há necessidade de semântica BSD.

Se você não quiser alterar o usuário e grupo efetivo do processo que cria os arquivos (por exemplo, porque é um servidor grande que executa várias outras funções não relacionadas), talvez seja necessário externalizar a parte do processo. funcionalidade que cria os arquivos em um processo separado, cujo UID e GID efetivo podem ser alterados de acordo ou você pode usar a semântica BSD e tentar alcançar seu objetivo final confiando unicamente no grupo.

    
por 24.12.2011 / 00:12