몇가지 수정사항이 있었다. Berkeley DB를 사용하는데 지금 나의 환경과 달라 다음과 같이 수정했다. (컴파일이 안될때만 참고하세요)
sdb.h #ifdef USE_DB //#include <db2/db.h> #include <db.h> #else
Makefile #LDFLAGS = -lcrypt -ldb2 LDFLAGS = -lcrypt -ldb
config.h /*#define SHADOW_PASSWD /**/ /* shadow password library support */ #define SHADOW_PASSWD / /* shadow password library support */
|
설치하자.
특이하게 그냥 make install로 모든 것이 끝난다.
[root@ns cucipop-1.31]# make install
cc -O -DUSE_DB -c cucipop.c -o cucipop.o
cc -O -DUSE_DB -c authenticate.c -o authenticate.o
cc -O -DUSE_DB -c atotime.c -o atotime.o
cc -O -DUSE_DB -c locking.c -o locking.o
cc -O -DUSE_DB -c xcreat.c -o xcreat.o
cc -O -DUSE_DB -c dbops.c -o dbops.o
cc -O -DUSE_DB -c hsort.c -o hsort.o
cc -O -DUSE_DB -c simplecrypt.c -o simplecrypt.o
cd md5; cc -O -DUSE_DB -c md5c.c
cc -O -DUSE_DB cucipop.o authenticate.o atotime.o locking.o xcreat.o dbops.o hsort.o simplecrypt.o md5/
md5c.o -o cucipop -lcrypt -ldb
cc -O -DUSE_DB -c makevpopdb.c -o makevpopdb.o
cc -O -DUSE_DB makevpopdb.o simplecrypt.o
-o makevpopdb -lcrypt -ldb
install -o root -m 02755 -s -g mail cucipop makevpopdb /usr/sbin
install -o root -m 0644 cucipop.8 makevpopdb.8 /usr/man/man8
mkdir /var/lib/cucipop 2>/dev/null; exit 0
mkdir /var/lib/cucipop/bulletins 2>/dev/null; exit 0
-rwxr-sr-x 1 root mail 30492 Apr 10 13:51 /usr/sbin/cucipop
-rwxr-sr-x 1 root mail 4664 Apr 10 13:51 /usr/sbin/makevpopdb
-rw-r--r-- 1 root root 7512 Apr 10 13:51 /usr/man/man8/cucipop.8
-rw-r--r-- 1 root root 2320 Apr 10 13:51 /usr/man/man8/makevpopdb.8
테스트
[root@ns cucipop-1.31]# cucipop
[root@ns cucipop-1.31]# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Cubic Circle's v1.31 1998/05/13 POP3 ready
user kang
+OK kang selected
pass xxxxxx
+OK Congratulations!
list
+OK 16 messages (30366 octets)
1 2006
2 2006
3 2006
4 2006
5 2006
6 2006
7 2006
8 2006
9 2006
10 2006
11 2006
12 2006
13 1928
14 482
15 1940
16 1944
.
quit
+OK Was it as good for you, as it was for me? (clean as a baby)
Connection closed by foreign host.
[root@ns cucipop-1.31]#
음.. 사용자가 pop3를 많이 사용하면 standalone으로 실행(cucipop -Y)하고,
아니면 inetd.conf에 등록하자.
inetd.conf에 다음과 같이 하고, 'killall -HUP inetd' 명령으로 inetd에게
변경사항을 인식시킨다.
pop-3 stream tcp nowait root /usr/sbin/cucipop cucipop -Y
참고) 솔라리스에서 killall은 리눅스와 다른 의미를 가진다.
솔라리스에서의 killall은 서버의 프로세스를 전부 죽여(kill all)버린다.
따라서 root가 아닌 이상 사용할 수 없다.
리눅스의 killall은 프로세스명으로 프로세스에게 signal을 보낸다.
따라서 일반 kill명령에서의 Process ID로 시그널을 보낼 필요가 없어
사용하기 편리(?)하다
추가(2001년 5월 23일) - linuxtoday 기사참조
가상유저
/etc/mail/aliases 파일에 다음과 같이 myunggyu라는 유저를 등록한다.
myunggyu: kang
myunggyu@dbakorea.pe.kr로 오는 메일은 kang@dbakorea.pe.kr로 가게된다.
여기서 kang은 실제 OS에 존재하는 ID이고, myunggyu는 실제 OS에 존재하지 않는 사용자여도 된다.
위와 같이 수정후 newaliases명령으로 aliaes.db파일을 생성한다.
SMTP로그인 메시지 수정
sendmail.cf
# SMTP initial login message (old $e macro)
# O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
O SmtpGreetingMessage=This is a DBA Korea Mail Server operated by myunggyu
[root@ns mail]# telnet dbakorea.pe.kr 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 This ESMTP is a DBA Korea Mail Server operated by myunggyu |