Pergunta

Eu configurei um repositório SVN do zero, e eu tenho marcado com sucesso alguns dos meus lançamentos usando o comando de cópia SVN.

Eu usei o SSPI auth plugin para o apache, para que os nossos desenvolvedores só apertar o servidor com suas credenciais de rede, e tudo funciona bem.

Eu criei um arquivo de autorização AuthZ, acrescentou nossos desenvolvedores a grupos no arquivo, e concederam-lhes acesso de gravação para a raiz. Eu também concederam usuários anônimos acesso somente leitura à raiz.

Eu então bloqueado o / svn / diretório com: Exigir-grupo "CORP \ CKAN0BlahBlah"

Isso limita efetivamente novos desenvolvedores no grupo de segurança para acesso somente leitura até que eles têm acesso através do arquivo aAuthZ configuração.

Agora, eu tenho um par de perguntas:

  1. O que é a maneira correta (excepto o sistema de honra) para impedir que usuários de cometer alterações a qualquer um dos "Tags" diretórios?

  2. É possível usar SSPI passar os membros dos grupos para, AuthZ em vez de listar os membros individualmente na configuração arquivo?

Foi útil?

Solução 2

Para Pergunta # 1 , eu desenvolvi para isso:

@echo off
SET SVNLOOK=C:\Program Files\CollabNet Subversion Server\svnlook.exe
SET GREP=D:\SVN\Repo\hooks\grep.exe
SET LOG=D:\SVN\Repo Logs.txt

>>"%LOG%" echo ==== commit %1 %2 ====
>>"%LOG%" "%svnlook%" changed -t %2 %1

("%svnlook%" changed -t %2 %1 | "%grep%" "^U.*/tags/") && (echo Cannot commit to tags.>&2 && exit 1)
("%svnlook%" log -t %2 %1 | "%grep%" "[a-zA-Z0-9]") || (echo You must specify a comment.>&2 && exit 1)

exit 0

Agarrou a ferramenta grep de http://sourceforge.net/projects/unxutils


Para Pergunta nº 2 , a resposta é não, você não pode verificar contra grupos de segurança AD no arquivo AuthZ configuração.

Obrigado por sua ajuda, todos.

Outras dicas

1 - Você pode usar o gancho pre-commit para prevenir commits, veja SVN pre-commit gancho para evitar alterações às tags subdiretórios .

Editar: Para fazer isso no Windows, tente o seguinte:

Salvar isso como um arquivo chamado pré-commit.bat nos ganchos pasta de sua repo:

@echo off
set REPOSITORY=%1
echo %REPOSITORY% | find /I "tags"
if errorlevel 1 goto done
echo You tried to commit to %REPOSITORY% >&2
echo Committing to tags is not allowed >&2
exit 1
:done

Note, isso vai impedir de cometer a qualquer caminho no repositório que contém o substring marcas . Modificar de acordo com suas necessidades.

Não há nenhuma maneira "adequada". Tags são uma convenção e os desenvolvedores devem aprender e segui-lo. Exceto que, uma falha de segurança pode ser implementado usando ganchos Subversion. Consulte desta página para um tutorial bom.

Isto parece-me ser uma questão de educação e processo. Se seus desenvolvedores a entender o propósito de suas tags SVN, parece muito menos provável que você vai ter pessoas (intencionalmente) fazendo commits a um tag. O que eu encontrei para ser indispensável para comunicar esses processos de forma eficaz é até à data, a documentação escrita. Minha equipe usa um wiki para armazenar documentação sobre os nossos processos (especificamente, usamos MediaWiki ). A abordagem wiki parece tornar as coisas muito mais acessível e mais fácil de manter-se atualizado do que algo como o armazenamento de versões de documentos do MS Office no SharePoint.

Que tal usar o arquivo svn-auth para definir isso? isso ficaria assim:

[groups]
ADMINS=<your ID>
<rest of groups>=<all other IDs>

[/]
* = r
<rest of groups> = rw
@ADMINS = rw

[/tags]
<rest of groups> = r

Isso permitirá que os administradores de leitura e escrita acesso ao diretório tags, mas ninguém mais. Eu não sei o SSPI auth plugin, então talvez o meu exemplo fornecido não funciona em seu contexto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top