Unix

Pure-FTPd 가상유저

ForceCore 2009. 8. 18. 20:57
Ubuntu Server 8.10 기준이다. 딱히 별로 버전에 구애될 것 같진 않다만...

실제 시스템 계정은 아니지만 ftp만 사용할 수 있는 가상 계정이 필요할 때가 있다.
FTP의 Virtual User라는 것인데 pure-ftpd에선 어떻게 해야 하는가?

http://download.pureftpd.org/pub/pure-ftpd/doc/README.Virtual-Users
물론 공식 매뉴얼에 다 있다.

우선, 가상유저가 올린 파일이라도, 소유주는 필요하기 때문에 -_- 로그인이 안 되는 시스템 계정은 만들어야 한다.
# groupadd ftpgroup
# useradd -g ftpgroup -d /dev/null -s /bin/false ftponly
passwd 지정은 물론 안 해서 더 로그인이 못 되게 한다. shell이 /bin/false면 SSH로그인이 성공하자 마자 세션이 종료된다 -_-;; home이 /dev/null이면 아주 불쌍한 상황에 처하겠죠;;

매뉴얼에 보면 잡다하게 여러가지가 적혀있다. 가상 유저를 담은 passwd파일은 어쩌구 저쩌구... Debian Default는 어떤지 잘 모르겠어서 좀 가지고 놀아봤다.
# pure-pw show 존재하지않는계정
Unable to open the passwd file: No such file or directory
Unable to fetch info about user [존재하지않는계정] in file [/etc/pure-ftpd/pureftpd.passwd]
default가 깔끔하게 되있군!

그럼 그냥...
# pure-pw useradd $id -u ftponly -g ftpgroup -d /home/ftponly
# pure-pw mkdb
이러면 된다. mkdb는 메일링 리스트를 조작할 때, newaliases라고 하는 것과 비슷한 맥락으로 이해하면 된다. 즉, pureftpd.passwd 파일를 db화 하는 것이다.

주의: Pure-FTPd의 MinUID 설정같은 것에 주의해 ftponly의 uid number가 걸리지 않는지 잘 체크할 것 -_-;;...

http://www.debianhelp.co.uk/pureftp.htm
왠일인지 안 되어서 체크해보니...
/etc/pure-ftpd/auth 에서,
ln -s ../conf/PureDB 50pure
이렇게 해주니... 안 된다.

대신 authentication failure가,
530 Sorry, but I can't trust you
이렇게 변했다...

필자는 PAMAuthentication = yes, UnixAuthentication=no 인 상태이다.
UnixAuth를 yes로 바꾸니, ldap 유저도 로그인이 안 된다 -_-;;;;;;;;
아... UID Number의 minimum에 걸려서 그랬다 -_-;;
/etc/passwd의 것과, pure-pw 로 생성된 가상 passwd파일 두 개의 uid 모두를 수정해야지 된다. 둘 중 하나라도 MinUID를 만족하지 못하면 저런 메시지가 나오는 것이다.