Executa o comando como root, mas cria arquivos como outro usuário?

3

Existe uma maneira de executar um comando como root (usando sudo talvez), mas os arquivos criados por esse comando pertencem a outra pessoa?

Algum contexto: Eu tenho um servidor da web que eu executo como root para ter acesso à porta 80. Esse servidor da web cria arquivos, que são de propriedade do root. Mas, quando eu faço um make (usando o Maven na verdade) como meu usuário normal, recebo um monte de erros porque ele não pode remover alguns dos arquivos de propriedade da raiz. Então, seria legal se eu pudesse rodar o servidor web como root, mas os arquivos que ele criou eram de minha propriedade.

Eu fiz um script para "limpar" os arquivos que interferem com o make, então eu não estou realmente interessado em soluções para esse problema ... Eu só estou curioso para saber se há uma maneira de rodar como root mas criar arquivos como outra pessoa.

    
por shawkinaw 18.05.2012 / 20:12

2 respostas

1

Existem algumas maneiras de conseguir isso ...

  1. Os arquivos têm os sinalizadores para os outros (o último conjunto de permissões da esquerda para a direita) para poder gravar neles. Assim você pode modificar seus arquivos sem ser root.

  2. Seu usuário faz parte de um grupo comum ao usuário root. Assim, se você tiver as permissões de grupo (g, conjunto intermediário de permissões) para gravar os arquivos, você poderá modificá-las sem ser raiz.

EDIT: Além disso, como Daniel afirmou, a fim de ser capaz de excluir os arquivos, você precisa ter permissões sobre a pasta pai também.

    
por 18.05.2012 / 20:19
1

Exatamente por causa dos privilégios adicionais geralmente necessários para começar a escutar na porta http, a maioria dos servidores da Web tem o recurso interno de assumir uma identidade diferente uma vez iniciada. No Apache, por exemplo, o arquivo httpd.conf contém as entradas 'user' e 'group' que controlam esse recurso.

Normalmente, os servidores da web recebem seu próprio usuário e grupo dedicados. Navegue pela sua configuração e verifique se você pode configurar isso.

    
por 18.05.2012 / 21:14