Samba, Apache e SVN. Obtendo as permissões certas

5

Eu tenho duas máquinas em que trabalho:

  1. Windows Client (Máquina de desenvolvimento)
  2. Servidor Web Linux (Ubuntu)

No servidor Linux, instalei o Apache, o Samba e o SVN.

Eu criei um compartilhamento de samba que mapeia para o diretório htdocs / para que eu possa acessar os arquivos da web do Windows.

A ilustração a seguir ilustra meu fluxo de trabalho:

  1. Na linha de comando do servidor Linux, faço check-out de cópias de trabalho de projetos da Web do servidor remoto para o diretório htdocs do meu servidor Linux local.
  2. Na máquina Windows eu acesso esses arquivos (usando samba) e os edito no meu editor e os testo nos navegadores
  3. De volta à máquina Linux, estou verificando meu trabalho no servidor remoto.

O problema que tenho é que atualmente para mim poder editar os arquivos na caixa do Windows via Samba eu tenho que mudar o dono dos arquivos para nobody (usuário apache) e configurar o compartilhamento Samba para usar as permissões SHARE.

Quando tento usar o SVN para confirmar e atualizar, não consigo, porque meu usuário Linux não é 'nobody' e não tem permissão para isso. Então eu tenho que fazer o root fazer um SVN [comando] e então mudar todos os arquivos de volta para 'nobody' para que eu não possa editar no Windows.

O que eu gostaria de poder fazer é que os arquivos da web sejam de propriedade do meu usuário Linux local, o que permitiria que os comandos SVN funcionassem e que o Windows (sobre o samba) também usasse esse mesmo usuário.

Como posso fazer isso funcionar, existe uma maneira de fazer com que os usuários de Windows e Linux correspondam?

    
por Camsoft 16.07.2010 / 23:49

2 respostas

4

Tenha os arquivos e diretórios pertencentes a um grupo, que O Apache é executado como . Faça os diretórios SGID .

chgrp -R group1 /path/to/htdocs
find  /path/to/htdocs -type d -exec chmod 2775 {} \;

Especifique esse grupo no compartilhamento SAMBA, o que pode ser feito com force group=group1 .

Faça o usuário que você autenticar no SAMBA com um membro desse grupo. Especifique esse usuário em valid users e write list dentro de sua participação no SAMBA. Isso também deve permitir que você se comprometa com o SVN.

Além disso, especifique create mask=0664 e directory mask=2775 no smb.conf, que definirá as permissões apropriadas na criação. Se os arquivos pertencerem ao mesmo usuário que o Apache, você poderá definir o bit final como 0 em ambas as configurações.

Se tudo for aplicado de forma consistente, você poderá executar todas as ações desejadas sem afetar negativamente qualquer funcionalidade.

    
por 17.07.2010 / 01:18
0

Warner, essa resposta foi um salva-vidas para mim. Uma coisa a acrescentar que eu não sabia era que você precisava considerar se alguém queria executar a atualização do SVN a partir da linha de comando. Veja link , ele aborda isso.

    
por 21.08.2010 / 03:01