SVN에서 사용자를 어떻게 추가합니까?


12

업데이트 # 3 : 내가 찾은 것 같아요.
/etc/httpd/conf.d/subversion.conf

<Location /repos>
        DAV svn
        SVNPath /var/www/svn/repos
        AuthType Basic
        AuthName "Subversion repos"
        AuthUserFile /etc/svn-auth-conf
        Require valid-user
</Location>

svn-auth-conf의 형식은

user1:$apr1$randome letters ... $random letters and numbers

명령 줄 도구를 사용하여 사용자를 추가 한 것 같지만 무엇을 기억할 수 없습니다.

업데이트 # 2 : http.conf를 찾으면 다음 결과가 나타납니다.

/usr/share/logwatch/default.conf/logfiles/http.conf
/usr/share/logwatch/default.conf/services/http.conf

나는 그들 중 어느 것도 subversion과 관련이있는 것을 보지 못했습니다. 도움이된다면 여기에 파일을 게시 할 수 있습니다.

원래 질문 :

몇 년 전, 나는 subversion을 설치하고 설정했습니다. 사용자를 어떻게 추가했는지 기억이 없습니다. 지금 다른 passwd파일 을 추가해야하지만 파일을 확인할 때 사용자가 정의되지 않았거나 svnserve.conf파일에 설정된 내용이 없습니다 . 둘 다 주석 처리되었습니다. 이것이 Google을 통해 사용자를 추가 할 수있는 유일한 방법입니다. 그래서 나는 그것을 시도했다 :

암호

user1 = password1
user2 = password2

svnserve.conf

anon-access = none
auth-access = write
pasword-db = passwd
authz-db - authz
realm = repos

하지만, 난 여전히에서만 액세스 할 수 있습니다 user1비록, user1리눅스 서버의 사용자가 아닙니다. 사용자를 추가 할 수있는 다른 방법이 있습니까, 아니면 구성에 문제가 있습니까?

최신 정보:

svnserve.conf 파일에 다음 줄을 추가했습니다

authz-db = authz

내 authz 파일은 다음과 같습니다

authz [groups] devs = user1, user2

[repos:/]
devs = rw

여전히 작동하지 않습니다. user1의 비밀번호는 로그인에 사용하는 비밀번호와 다릅니다. 그래서 나는 subversion이 인증을 위해 그것을 사용하지 않는다고 생각합니다. 특히 파일이 비어 있기 때문에 여전히 로그인 할 수있었습니다. 인증을 위해 svnserve, passwd, authz 파일을 사용하는 방법이 있습니까? 어딘가에 다른 구성 파일이 있습니까?

답변:


8

Subversion 인증에는 일반적으로 두 부분이 있습니다. 첫 번째는 어떤 종류의 암호 저장소입니다. 두 번째는 액세스 제어 목록입니다. 비밀번호 목록은 사용자를 인증하고 비밀번호를 확인하는 데 사용되지만, 어떤 사용자가 어떤 리소스에 액세스 할 수 있는지 설정해야합니다.

몇 가지 비밀번호 저장소 유형이 있습니다. 나는 암호 유형에 익숙하지 않으며 , 아파치가 사용자 인증을 위해 수행하는 것과 동일한 사용자 / 암호 파일을 사용하는 htpasswd 유형을 사용합니다. 로이 파일에 사용자를 추가합니다 htpasswd .htpasswd username. 비밀번호 유형에 대해이 단계를 올바르게 수행 한 것 같습니다.

두 번째 부분은 ACL입니다. Subversion에는 access각 리포지토리에 대한 섹션 이있는 파일이 있어야 합니다. 액세스하려는 저장소 아래에 username = rw해당 사용자에게 해당 저장소에 대한 읽기 / 쓰기 액세스 권한을 부여 하는 행을 추가해야 합니다.


집에 도착하면 한번해볼 게요. 익숙한 것 같습니다.
scott

나는 이것이 그렇게 생각하지 않습니다. 내 서버에 .htpasswd 파일이 없습니다.
scott

6

SVN 서버 구성 (주로)은 세 개의 파일로 구성됩니다.

  • authz
  • 암호
  • svnserve.conf 이것은 메인 파일입니다 (authz-db = authz)

따라서 두 개의 구성 파일 만 제공하면 authz 파일에 다음이 포함되어 있는지 확인하십시오.

#[the_name_of_repository:/path_in_that_repository]
[test:/]
user1 = rw
user2 = rw

액세스 권한을 부여 하려는 프로젝트 테스트


나는 이것을 시도했지만 작동하지 않았다. user1로 로그인 할 때 사용하는 비밀번호가 passwd 파일에있는 비밀번호와 다릅니다. 그래서 나는 그것을 전혀 사용하지 않는다고 생각합니다.
scott

올바른 구성 파일을 사용하고 있는지 확인하십시오. 출력 내용ps aux|grep svn
Sergey

그리고 하나 더 질문. repos 디렉토리 구조를 어떻게 얻습니까 (svn : // 또는 through http 서버)?
Sergey

root 19578 0.0 0.3 4016 664 tty1 R+ 05:15 0:00 grep svn
scott

http 서버를 통해
scott

4
## Create testuser ##
htpasswd -m /etc/svn-auth-users testuser

New password:

Re-type new password:

Adding password for user testuser2

참고 : 파일에 사용 된 것과 정확히 동일한 파일 및 경로 이름을 사용 subversion.conf하십시오. 이 예제는 /etc/svn-auth-users파일을 사용 합니다.


2
htpasswd -m /etc/subversion/svn-auth-file yourusername

그런 다음 비밀번호를 요청하고 비밀번호를 확인합니다.


1

당신은 명령을 사용할 수 있습니다

sudo htpasswd -cm /etc/apache2/dav_svn.passwd XXXXX
  • XXXXX는 사용자 이름이며 비밀번호를 묻습니다.

이것은 svn conf 폴더를 읽지 않는 아파치로 svn을 설정 한 경우에만 해당됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.