svn 을 svn+ssh 로 제공할때 shell 권한을 주지 않는 방법
글쓴이: glayneon / 작성시간: 목, 2010/07/29 - 4:11오후
안녕하세요.
svn 을 운영하다가 궁금한게 생겼는데요.
현재 svn+ssh 로 svn을 이용하도록 세팅하고(할게 없죠..^^;)
puttygen 으로 공개키/비공개키를 생성하여 putty 를 통해서 tortoisesvn 으로 공개키/비공캐키로 인증하여 svn+ssh 를 이용하고 있는데요.
유저가 putty 로 ssh 로도 패스워드 없이 서버에 등록된 자신의 공개키에 대한 비공개키로 들어올수 있으므로,
ssh 로 시스템 shell 로긴은 불가능하게 하고 싶습니다.
즉 svn+ssh 로 쓰더라도, ssh 로 해당 시스템 로컬 어카운트로 들어오는 것은 막고 싶은데요.
이미 쉘을 /bin/false, /sbin/nologin 등으로 바꾸는건 해봤으나, svn+ssh 도 이용할수 없게 되더군요.
먼가 방법이 없을까요?
좋은 아이디어라도 부탁드려요~~
Forums:
이름에 씌여 있듯이..
ssh로 통신을 하는 것이니 권한 없이 가능할까요??
http로 통신을 하고 계정을 htaccess로 설정 하는것이 하나의 방법인듯 합니다만..
굳이 puttygen을 이용할 필요도 없고...
http://svnbook.red-bean.com/e
http://svnbook.red-bean.com/en/1.4/svn.serverconfig.svnserve.html
셸을 svnserve로 설정해 버리면 될 것 같습니다. KDE 서브버전 계정에도 직접 셸로 접근해 보면 svn 명령만 나오지 셸로 가지 않습니다.
---- 절취선 ----
http://blog.peremen.name
기본 쉘을 passwd로 변경해주니
오래전 질문글이지만 경험을 올립니다.
제가 원하는 상황은 VPN 접속과 svn+ssh로 저장소 접근만 허용하고 telnet 접속으로 비번변경, ftp는 접속불가능하게 하려는 경우입니다.
사용자 계정의 쉘을 bash인 아닌 passwd로 설정해주니 되더군요.
usermod -s /usr/bin/passwd "USERID" 또는 vi /etc/passwd로 사용자 계정의 쉘을 /usr/bin/passwd로 변경해주면 됩니다.
group설정을 바꾸는것은 어떨까요?
svn용으로 사용하고 싶은 계정의 group을 users가 아닌 다른 group으로 바꾸고,
/bin/bash의 others의 읽기+사용권한을 지우면 될것 같은데요.
전 HTTP 를 사용합니다.
저도 회사에서 SVN 저장소를 관리하고 있는데 http가 로컬 계정을 생성하지 않고 서비스하는 유일한 방법인거 같습니다.
보안이 중요하다면 https 를 사용하구요.
오픈소스 툴이 문제가 기업용환경을 위해서 사용할려면 손이 많이 간다는 거겠죠.
그래서 이제는 콜랩넷 제품으로 넘어갈까 생각중입니다. ㅎㅎ
어차피 받아서 쓰는데는 굳이 살 필요는 없더라구요.