Como eu gerencio permissões para vários usuários editando o mesmo código no meu servidor?

3

Eu tenho um servidor que alguns codificadores diferentes estarão usando para trabalhar em vários sites. Cada codificador precisará ter acesso a cada site.

Existem dois métodos 'limpos' que eu criei para fazer isso, mas eu prefiro evitá-los ...

  1. Cada site recebe seu próprio usuário / grupo de propriedade de. O site seria armazenado em / home / username / www / e eu usaria o suEXEC do Apache para alternar entre usuários / hosts virtuais.

  2. Eu crio um usuário / grupo no sistema que cada codificador usa para efetuar login. Os sites podem então ser armazenados em /var/www/website.com/ e o Apache será executado como esse usuário para ter acesso de leitura / gravação aos arquivos

Os benefícios de segurança óbvios para o ponto 1 são que cada site é sandboxes. Se um site estiver comprometido, os outros sites devem estar seguros. A desvantagem desse método é ter vários nomes de usuário / senhas para cada codificador lembrar.

O ponto 2 significa que cada codificador tem um login (o mesmo login ...) e há menos confusão (50 sites no host significam 50 novos usuários / grupos)

Minha configuração ideal era dar a cada codificador seu próprio usuário / grupo. Isso daria a eles sua própria pasta para armazenar suas coisas e, se eu precisar revogar o acesso de um codificador, eu simplesmente desabilitaria seu login. Isso é melhor do que ter que alterar a senha para cada conta do site / codificador.

O motivo pelo qual não posso confiar em um sistema de controle de versão é que ele raramente será usado. Muitos dos sites neste host estarão usando o Joomla / Wordpress / etc.

Por isso, estou basicamente procurando uma maneira limpa e segura de vários codificadores trabalharem em vários sites compartilhados no único host. O que você sugere?

    
por ben 28.01.2011 / 04:36

2 respostas

4

Permitir que várias pessoas editem o código de produção está pedindo por um mundo de dor. Use o controle de versão e implemente somente construções marcadas.

A maneira como você implanta a compilação não é tão importante quanto rastrear as alterações e voltar atrás.

    
por 28.01.2011 / 04:57
1

Enquanto eu concordo que o controle de versão é uma opção fantástica , você pode fazer o que está pedindo fazendo o seguinte (novamente, preste atenção às preocupações listadas sobre controle de versão).

Então, aqui está uma resposta para sua pergunta :

Crie dois usuários e forneça o mesmo ID de grupo

 #groupadd -g 5000 programmers
 #useradd ren
 #useradd stimpy

Edite seu arquivo / etc / passwd e altere seu guia para seus dois usuários:

 ren:x:505:5000::/home/ren:/bin/bash
 stimpy:x:506:5000::/home/stimpy:/bin/bash

Em seguida, altere a umask para esses usuários para que eles criem todos os seus arquivos com rw para os programadores do grupo

 #vi /home/ren/.bash_profile
 umask 002

Agora, su para cada usuário ver que ambos podem editar os mesmos arquivos daqui para frente:

 #su - ren
 #vi /path/to/file.txt
 here's some content in the file

 #exit

 #su - stimpy
 #vi /path/to/file.txt
 append some more content

Você verá que, quando o arquivo foi criado, a propriedade foi ren: programadores com rw-rw-r. Isso permitirá que o stimpy também edite o arquivo. Você também poderá acompanhar como originalmente criou o arquivo (mas não quem o editou).

    
por 28.01.2011 / 15:46