Como definir as permissões corretas entre desenvolvimento e produção

1

DESENVOLVIMENTO

No meu servidor de desenvolvimento, tenho um usuário do Ubuntu chamado user1 . Quando user1 executa PyCharm ( user1 deve executar um aplicativo Django) como sudo , o aplicativo em um estágio posterior é necessário para criar uma pasta folder1 para armazenar alguns arquivos pessoais de user1 . Agora, esta pasta quando PyCharm é executado com sudo é criada com owner:group = root:root .

  1. Por que eu recebo este owner:group na pasta? É porque eu usei sudo ?

Agora, quando user1 executar PyCharm sem sudo , a mesma pasta será criada com owner:group = user1:user1

  1. por que eu recebo este owner:group na pasta? É porque eu não usei sudo e estava logado como user1 ?

  2. Qual processo decide a que grupo uma pasta criada pertence?

PRODUÇÃO

Novamente, user1 tem que executar o aplicativo Django, mas através do serviço gunicorn desta vez, que, como é um serviço, só pode ser executado com o sudo, então sempre obtenho o folder1 criado como owner:group = root:root .

Agora, como o status desejado de folder1 da criação precisa ser user1:user1 e não posso executar o serviço gunicorn sem sudo , quais são as configurações permission apropriadas que permitiriam isso? Lembre-se de que o usuário precisa excluir e recriar essa pasta e todos os seus filhos com as mesmas permissões necessárias, portanto, um simples manual chmod não solucionará o problema.

  1. Como devo configurar a conta de produção para poder ter esse comportamento?

Me desculpe se eu confuso você, mas eu tentei descrever de uma maneira muito detalhada o problema. Muito obrigado.

    
por pebox11 05.12.2015 / 04:38

1 resposta

1

Pergunta # 1 e Pergunta # 2: você já respondeu a si mesmo! O usuário que executa um comando de criação de diretório se torna o proprietário do diretório. Quando você executa um comando com sudo , esse comando é (por padrão) executado "como" o superusuário. O superusuário é chamado root , consequentemente root se torna o proprietário de novos diretórios. Quando você executa um comando sem sudo , o usuário que está executando o comando ( user1 no seu caso) se torna o proprietário dos diretórios criados.

Questão # 3: Para cada usuário, há um grupo padrão que é usado quando arquivos / diretórios são criados (deixando alguns detalhes de lado). É o primeiro grupo que você vê ao executar o comando groups em um shell. No Ubuntu, geralmente há um grupo padrão com o mesmo nome do usuário.

Pergunta 4: não sei por que seu folder1 precisa estar acessível por user1 se tudo for executado por root na produção. Uma possibilidade de resolver as permissões pode ser chown user1:user1 /path/to/folder1 quando for criada por root . Mas, para ser honesta, essa configuração toda parece um pouco instável para mim sem saber mais sobre o que você está realmente fazendo.

    
por Chriki 05.12.2015 / 18:49