목적 : telnet으로 서버에 접속하여 일정시간 사용치않을때(idle time) 자동으로 로그아웃함.


해결방법 : idled란 데몬을 설치하여 데몬으로 실행시켜둔다.


1. 먼저 idled-1.16.tar.gz 소스를 구한다.

http://www.cs.hope.edu/~crider/idled/

2. 제작자 : Mike Crider crider@cs.hope.e여

3. ISP의 ftp사이트에서 소스를 구할 수 있음.

4. 소스를 구한 다음 /usr/local 디렉토리로 소스를 이동한다.

5. 먼저 압축과 tar를 해제한다.

#tar xvfz idled-1.16.tar.gz

또는

#gunzip idled-1.16.tar.gz

#tar xvfp idled-1.16.tar


6. 해당 디렉토리로 이동한다.

#cd idled-1.16

7. Makefile을 수정한다.(수정할 내용은 다음과 같다.)

- Compiler를 설정한다.(CC로 할 것인지,, gcc로 할 것인지)

- 설치하는 플레폼에 맞는 곳에서 주석을 제거한다.

(기본적으로 대부분 Solaris에 주석이 제거되어 있으므로

Solaris외의 다른 플레폼이라면 Solaris부분을 주석처리해야한다.)


현재 여기서는 Linux이므로 다음과 같이 한다.

CC = cc

RM = rm

INCLUDE =

######################################################################

######################################################################

# Linux

# Note: NOT all version of Linux have yyrestart(). Remove the

# -DHAVE_YYRESTART if you have problems.

# You should do a 'make clean' before 'make', so that parse.c

# and scan.c will be created on your system.

#DEFS += -DSYSV -DUTMPPID -DUTMPHOST -DHAVE_SETSID

DEFS += -DSYSV -DUTMPPID -DUTMPHOST -DHAVE_SETSID -DHAVE_YYRESTART

SPECLIBS =

INSTTYPE = install1


DEST = /usr/local/bin <- 실행파일(idled)가 위치할 디렉토리

CFDEST = /usr/local/lib <- 환경파일(idled.cf)가 위치할 디렉토리

MDEST = /usr/local/man <- man파일 위치

LOGDEST = /var/log <- idled위 로그파일


OWNER = root

CFOWNER = root

MOWNER = root


GROUP = root

CFGROUP = root


MODE = 750

CFMODE = 664

MMODE = 644


######################################################################

######################################################################

8. make 로 컴파일한다.

[root@www idled-1.16]# make

cc -DSYSV -DUTMPPID -DUTMPHOST -DHAVE_SETSID -DHAVE_YYRESTART -DCONFIG=\"/usr/local/lib/idled.cf\" -DLOGFILE=\"/var/log/idled.log\" -c insque.c -o insque.o

yacc -d parse.y

mv y.tab.c parse.c

cc -DSYSV -DUTMPPID -DUTMPHOST -DHAVE_SETSID -DHAVE_YYRESTART -DCONFIG=\"/usr/local/lib/idled.cf\" -DLOGFILE=\"/var/log/idled.log\" -c list.c -o list.o

cc -DSYSV -DUTMPPID -DUTMPHOST -DHAVE_SETSID -DHAVE_YYRESTART -DCONFIG=\"/usr/local/lib/idled.cf\" -DLOGFILE=\"/var/log/idled.log\" -c parse.c -o parse.o

lex scan.l

mv lex.yy.c scan.c

cc -DSYSV -DUTMPPID -DUTMPHOST -DHAVE_SETSID -DHAVE_YYRESTART -DCONFIG=\"/usr/local/lib/idled.cf\" -DLOGFILE=\"/var/log/idled.log\" -c scan.c -o scan.o

cc -DSYSV -DUTMPPID -DUTMPHOST -DHAVE_SETSID -DHAVE_YYRESTART -DCONFIG=\"/usr/local/lib/idled.cf\" -DLOGFILE=\"/var/log/idled.log\" -c idled.c -o idled.o

idled.c:37: warning: `ut_xtime' redefined

/usr/include/bits/utmp.h:76: warning: this is the location of the previous definition

cc -DSYSV -DUTMPPID -DUTMPHOST -DHAVE_SETSID -DHAVE_YYRESTART -DCONFIG=\"/usr/local/lib/idled.cf\" -DLOGFILE=\"/var/log/idled.log\" -c warn.c -o warn.o

cc -DSYSV -DUTMPPID -DUTMPHOST -DHAVE_SETSID -DHAVE_YYRESTART -DCONFIG=\"/usr/local/lib/idled.cf\" -DLOGFILE=\"/var/log/idled.log\" -c xlock_check.c -o xlock_check.o

cc -DSYSV -DUTMPPID -DUTMPHOST -DHAVE_SETSID -DHAVE_YYRESTART -DCONFIG=\"/usr/local/lib/idled.cf\" -DLOGFILE=\"/var/log/idled.log\" -c zap.c -o zap.o

cc -DSYSV -DUTMPPID -DUTMPHOST -DHAVE_SETSID -DHAVE_YYRESTART -DCONFIG=\"/usr/local/lib/idled.cf\" -DLOGFILE=\"/var/log/idled.log\" -c linetimelist.c -o linetimelist.o

cc -DSYSV -DUTMPPID -DUTMPHOST -DHAVE_SETSID -DHAVE_YYRESTART -DCONFIG=\"/usr/local/lib/idled.cf\" -DLOGFILE=\"/var/log/idled.log\" -o idled insque.o list.o parse.o scan.o idled.o warn.o xlock_check.o zap.o linetimelist.o

echo /usr/local/lib/idled.cf | sed 's/\//\\\//g' > .maketmp

echo /var/log/idled.log | sed 's/\//\\\//g' > .maketmp2

sed -e "s/CONFIGPATH/`cat .maketmp`/" -e "s/LOGFILEPATH/`cat .maketmp2`/" idled.cf.man.form > idled.cf.5

sed -e "s/CONFIGPATH/`cat .maketmp`/" -e "s/LOGFILEPATH/`cat .maketmp2`/" idled.man.form > idled.8

rm -f .maketmp .maketmp2


9. make install 로 설치한다.

[root@www idled-1.16]# make install

install -c -m 750 -o root -g root idled /usr/local/bin

install -c -m 664 -o root -g root idled.cf.template /usr/local/lib

install -c -m 644 -o root idled.cf.5 /usr/local/man/man5

install -c -m 644 -o root idled.8 /usr/local/man/man8


Be sure to edit/create the file /usr/local/lib/idled.cf based on

the needs for your system. The /usr/local/lib/idled.cf.template

file can serve as a guide, as well as the man pages.




10. 설치후 중요한 파일들의 위치는 다음과 같다.

- 실행파일 : /usr/local/bin/idled

- 환경파일 : /usr/local/lib/idled.cf

11. 처음엔 환경설정파일의 이름이 idled.cf.template이므로 다음과 같이 변경한다.

#mv idled.cf.template idled.cf

12. idled.cf파일을 vi로 열어서 적당한 설정값으로 설정한다.

idled.cf내의 timeout default 60 값을 조정한다.

여기서 입력한 단위는 분이며 60분후에 logout시키겠다는 의미이다.

13. 이제 /usr/local/bin/idled의 데몬을 띄운다.

[root@owner lib]# ps -ef | grep idled

root 5983 1 0 15:33 ? 00:00:00 /usr/local/bin/idled

14. idled 데몬이 정상적으로 작동하는지(logout)시키는 가를 확인한다.

[owner@owner owner]$


Tue Jul 4 15:56:20

This terminal has been idle 60 minutes. If it remains idle

for 5 more minutes it will be logged out by the system.


위의 메시지는 현재 시간을 알리고 60분간 아무런 작업을 하지않았음을 알리고

향후 5분간 idle time이 지속되면 system에 의해 logout된다는 메시지를 알리고 있다.

실제로 5분간 idle time이 지속될 때 해당 사용자는 logout이 된다.


15. idled의 주요구성파일 확인

DEST = /usr/local/bin/idled

CFDEST = /usr/local/lib/idled.cf

MDEST = /usr/local/man

LOGDEST = /var/log/idled.log
2005/07/01 14:57 2005/07/01 14:57

트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다