목적 : 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
해결방법 : 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