리눅스 커널의 버전 번호에는 아래와 같은 의미를 담고 있습니다.

* 커널 버전 번호 형태: X.Y.Z
- X : 주 버전번호
- Y : 부 버전번호
- Z : 개정 번호(Z번의 버그 수정을 했다는 표시)

* 안정버전/개발버전
- 안정버전: Y(부 버전번호)가 짝수
- 개발버전: Y(부 버전번호)가 홀수

ex)
uname -a"명령을 수행하면 다음과 같은 메시지가 출력됩니다.
[root@op isseo]# uname -a
Linux op 2.4.20-19.8 #1 Tue Jul 15 15:25:37 EDT 2003 i686 i686 i386 GNU/Linux

* 위의 커널 버젼을 해석 하자면 현재 안정 커널 2.4.20으로 20번의 버그를 수정했음
이라고 보시면 됩니다.
2005/07/04 12:40 2005/07/04 12:40

AutoUpdate

FAQ 2005/07/04 12:39
[출처] http://bbs.kldp.org/viewtopic.php?t=24352


RedHat 계열을 사용하는 사람들에게 대략 좋은 내용이니 잘 받아 적길 바란다.
rpm 은 Redhat Package Manager 로 말 그대로 패키지 관리자이다.
패키지 파일을 버전으로 관리하는 rpm은 RedHat에서 개발한 자동 갱신 소프트웨어인
up2date로 언제나 최신버전을 유지할 수 있다.

그러나 up2date 는 https://rhn.redhat.com 에 가입해야만 사용할 수 있는
소프트웨어이다. 물론 60일 무료계정을 이용할 수 있으며,
기한이 만기되면 간단한 설문조사를 하면 다음 60일까지 무난히 쓸 수 있다.

ㅡ0-) 그러나... 설문조사 마져도 귀차니즘 압박에 시달리는 사람과,

RedHat에서 공식 배포하지 않는 패키지(ex. RedHat9에서 ProFTPd를 제공하지 않는다)를 사용하는 사람에게
매우 좋은 autoupdate라는 프로그램이 있다.

autoupdate는 단순히 RedHat 배포판에만 적용되는 것이 아니라
rpm을 사용하는 Mandrake, SUSE 같은 배포판에도 적용할 수 있다.

Officaial Site : http://www.mat.univie.ac.at/~gerald/ftp/autoupdate

autoupdate는 Perl 로 쓰여진 언어이다. rpm, perl, perl-DB_File, perl-RPM2 등의
패키지가 필요하며 모든 것은 위의 홈페이지에서 받을 수 있다.
(perl용 FTP모듈은 최신버전 Perl 패키지에 포함되어 있다. 만약 없으면 위의 홈페이지에서
perl-libnet 패키지를 받자)

위의 사이트에서 autoupdate-xxx.rpm 와 autoupdate-cfg-배포판-xxx.rpm 을 받는다.
(xxx는 버전)

받은 모든 rpm을 설치한다.

$ rpm -Uvh *.rpm (받은 rpm 만 있는 디렉토리에서...)

설치는 다 됐다. 이제 단순히 autodld 라고 치면 up2date 와 비스무레한 행동을 할 것이다.

$ autodld
Found no new rpms at ftp.redhat.com.
Checking selected rpms.
Found no rpms to upgrade.
(흠... 모든 소프트웨어가 최신 버전이로군)


만약 새로 설치하고 싶은 패키지가 있다면 autoget을 이용하자.


$ autoget mod_ssl
New rpms from ftp.redhat.com:
mod_ssl-2.0.40-11.7.i386.rpm
Checking selected rpms.
Installing rpms:
mod_ssl-2.0.40-11.7.i386.rpm
Removing updated rpms:
mod_ssl-2.0.40-11.7.i386.rpm
(apache용 ssl 모듈을 설치해봤다.)


예제엔 나오지 않았지만 autoupdate는 up2date와 같이 의존성을 검사하여
필요한 패키지까지 모두 받아온다.
up2date는 rhnsd 이라는 Daemon을 이용하여 2시간마다 RedHat에 접속하여
새 패키지를 검사한다. (검사하는 속도가 좀 빠르긴 하지만...)

autoupdate 역시 비슷한 역할을 시킬 수 있다. cron을 이용해서 말이다.


(RedHat8 기준)
$ cd /etc/cron.daily
$ ln -s /usr/sbin/autodld


매일 한 번씩 autodld가 자동으로 실행된다.
물론 주기를 다르게 해서 등록하고 싶다면 다른 디렉토리나 /etc/crontab 을
수정을 해주면 된다.
2005/07/04 12:39 2005/07/04 12:39

rlogin 자료

FAQ 2005/07/04 12:38
# 는 root로 작업을 의미함

1. rlogin 관련 서버 프로그램들이 설정되어 있는지 확인
# ntsysv

여기에 rexec, rlogin, rsh 에 체크가 되어 있어야함
여기에 rlogin 등의 서비스가 없으면 해당 서버 프로그램을 설치해야 합니다.
rloing 클라이언트 프로그램은 rsh-0.17-5.i386.rpm 에 들어있지만 서버 프로그램은 rsh-server-0.17-5.i386.rpm 에 있습니다.
(버전은 운영체제의 버전에 따라 다를 수 있습니다)

# rpm -qa | grep rsh
===> 여기서 rsh, rsh-server 가 둘다 있어야 합니다. rsh는 클라이언트 프로그램, rsh-server는 서버 프로그램입니다. 현재 ntsysv에서 rlogin 서비스가 나오지 않는다면 서버 프로그램이 없을 가능성이 가장 큽니다.

# rpm -ql rsh
/usr/bin/rcp
/usr/bin/rexec
/usr/bin/rlogin
/usr/bin/rsh
/usr/share/man/man1/rcp.1.gz
/usr/share/man/man1/rlogin.1.gz
/usr/share/man/man1/rsh.1.gz


# rpm -ql rsh-server
/etc/pam.d/rexec
/etc/pam.d/rlogin
/etc/pam.d/rsh
/etc/xinetd.d/rexec
/etc/xinetd.d/rlogin
/etc/xinetd.d/rsh
/usr/sbin/in.rexecd
/usr/sbin/in.rlogind
/usr/sbin/in.rshd
/usr/share/man/man8/in.rexecd.8.gz
/usr/share/man/man8/in.rlogind.8.gz
/usr/share/man/man8/in.rshd.8.gz
/usr/share/man/man8/rexecd.8.gz
/usr/share/man/man8/rlogind.8.gz
/usr/share/man/man8/rshd.8.gz

rsh-server 프로그램이 없으면 인터넷에서 다운받아 설치해야 합니다. 물론 cd를 통해서 설치하는것도 가능합니다.
여러곳에 레드햇 미러 사이트가 있는데 아래 사이트를 참고하셔도 됩니다. (여러 ftp 사이트에서 redhat 을 미러링하고 있습니다)

ncftp ...en/os/i386/RedHat/RPMS > pwd
ftp://ftp.nuri.net/pub/redhat/linux/7.3/en/os/i386/RedHat/RPMS/
ncftp ...en/os/i386/RedHat/RPMS > ls rsh*
rsh-0.17-5.i386.rpm rsh-server-0.17-5.i386.rpm


rsh-server 프로그램을 다운로드받아서 먼저 설치를 합니다

# rpm -Uvh rsh-server-0.17-5.i386.rpm

설치가 끝났다면 해당 서비스를 활성화해야합니다.

먼저 ntsysv 에서 해당 서비스를 활성화합니다. 그리고 활성화한것을 서버에서 인식하도록 해야 하고 접근할 ip등을 설정해야 합니다.

redhat 6.x 버전까지는 inetd를 이용했지만 redhat 7.x 버전에서는 xinetd 라는 프로그램을 이용하고 있습니다.

# /etc/init.d/xinetd restart

그런데 xinetd는 각 서비스에 접근할 수 있는 ip등을 지정할 수 있습니다. 현재 외부 인터넷망에는 연결되지 않고 내부에서만 사용하기에 내부에서는 모두
다 접속되도록 설정했다고 생각이 드는데요.

# cat /etc/xinetd.conf
#
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/

defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
only_from = 0.0.0.0
}

includedir /etc/xinetd.d

위에서 /etc/xinetd.conf 파일은 xinetd를 이용하여 작동을 하는 모든 프로그램에 대한 기본설정이 들어갑니다.
위에서 말을 했듯이 현재 서버가 외부에는 연결되지 않은 것이라면
only_from = 0.0.0.0 이렇게 해놓고 사용을 해도 됩니다.
모든 ip에서 접속가능하다는 뜻입니다. 일반적으로는 해당 서비스만 열어놓으면 되는데 이경우에는 /etc/xinetd.d/ 디렉토리에서 해당 프로그램만 접속할 ip를 지정하면 됩니다. 예를 들어 211.11.11.11 에서만 rlogin을 활성화한다면

only_from = 211.11.11.11

이런 식으로 설정하면 됩니다.

그리고 xinetd.conf 나 /etc/xinetd.d/ 디렉토리에서 변경한 파일이 있으면 xinetd를 다시 띄워주어야 변경한 내용을 반영합니다.

# /etc/init.d/xinetd restart

해당 서비스가 열려있는지 netstat를 이용해서도 확인할 수 있습니다.

# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:exec *:* LISTEN
tcp 0 0 *:login *:* LISTEN
tcp 0 0 *:shell *:* LISTEN



2. rlogin 설정
서로 접근할 호스트를 /etc/hosts.equiv 에 등록합니다. 물론 host 이름으로 사용하려면 아래 server1, server2를 /etc/hosts에 등록해놓아야 합니다.

# cat /etc/hosts.equiv
server1
server2


이제 rlogin 등의 프로그램을 이용하여 확인을 합니다.

# rsh server2 date

# rcp /etc/hosts server2:/tmp

# rlogin server2
# ls /tmp/hosts


---------------------------------------------------

1. rlogin 설정
client의 test, oracle user 가 server 의 oracle 계정에 접근하려고 하는 경우를 예로 들겠습니다.
(client, server는 hosts 파일에 ip를 등록해놓음)

server 에서 /etc/hosts.equiv 가 아래와 같이 설정되었을 경우.
client

호스트이름만 있을 경우 client 와 server 사이에 동일하게 있는 user는 client 에서 server로 동일한 계정으로 접근 가능합니다.
oracle user는 rcp 등의 명령을 사용할 수 있습니다.

[oracle@client oracle]$ rcp a.txt server:/home/oracle/b.txt

그런데 client 의 test 유저는 server의 오라클 계정에 접근하려면 접근 에러가 납니다.

[test@client test]$ rcp a.txt oracle@server:/home/oracle/b.txt

# tail -f /var/log/mesage -> 여기서 root 권한으로 로그파일 볼 수 있습니다
Apr 29 23:14:52 server pam_rhosts_auth[11961]: denied to test@client as oracle: access not allowed
Apr 29 23:14:52 server in.rshd[11961]: rsh denied to test@client as oracle: Permission denied.

server 의 /etc/hosts.equiv 에서 호스트명만 지정하면 동일한 계정만 접근이 된다는 것입니다.

server 에서 /etc/hosts.equiv 가 아래와 같이 설정되었을 경우.
client test

이 경우에는 client 호스트에서 test 사용자는 server 의 root 계정을 제외한 모든 계정에 대해 패스워드 없이 액세스할 수 있습니다. server 의 oracle 외
에도 다른 계정의 디렉토리에도 접근할 수 있다는 말입니다. /etc/hosts.equiv 에서 호스트명 사용자명의 형태로 들어가는데 여기서 사용자명은 서버 기준이 아니라 클라이언트 기준으로 된다는 것입니다. 바로 위에서는 client 의 test 사용자에게 어떤 계정에도 접근이 가능하다는 것이지 server의 test 계정에만 접근 가능하다는 것이 아닙니다.


그러면 개별 계정의 .rhosts 가 하는 역할은? 일단 server 에 위의 /etc/hosts.equiv 파일은 없다고 가정하겠습니다.

server 의 oracle 계정의 .rhosts 가 다음과 같을 경우.

client

이경우에는 client 의 oracle 사용자가 server의 oracle 계정에 접근할 수 있다는 것을 의미합니다. test 사용자는 oracle 계정에 접근할 수 없다는 것입니다.

server 의 oracle 계정의 .rhosts 가 다음과 같을 경우.

client test

이경우에는 client 의 test 사용자가 server의 oracle 계정에 접근할 수 있다는 것을 의미합니다. (그런데 client test 라고만 설정해두면 client 의 oracle 사용자는 접근하지 못합니다)

*********** 결론적으로 이야기를 하겠습니다. ******************
편리하게 사용하려면 아래와 같이 사용하는것이 좋을 것 같습니다.
- server 의 /etc/hosts.equiv 에는 rcp 등으로 접근할 클라이언트의 호스트명만 등록합니다. 그러면 client 와 server 의 동일한 계정은 접근이 가능합니다.
- server 의 접근해야 할 계정(예를 들어 oracle) 의 홈 디렉토리에 .rhosts 파일을 만들어 특정 client의 계정까지 등록합니다. (client test)
- .rhost 파일은 그룹이나 other 사용자가 w 권한을 가지고 있으면 에러가 생기므로 퍼미션을 644로 맞추어놓습니다 (chmod 644 .rhosts)

윈도우 2000에도 rcp 명령이 있어서 테스팅을 해보았습니다. 윈도우 2000의 로그인 사용자는 taejun 이며 서버의 oracle 계정에 접근합니다.

- 윈도우의 hosts 파일에 server의 ip와 호스트명을 입력합니다.
- server 의 /etc/hosts 파일에 윈도우의 ip와 호스트명을 입력합니다. (예 192.1.1.5 windows)
- server 의 /etc/hosts.equiv 파일에 /etc/hosts 파일에 등록한 윈도우의 호스트명을 넣습니다
- server의 oracle 계정에 .rhosts 파일을 만들고 윈도우 호스트명과 taejun 계정을 넣습니다 (windows taejun)
- .rhosts 파일의 퍼미션은 644 로 맞춥니다.
- 이제 윈도우의 taejun 사용자가 server 의 oracle 계정에 rcp 명령등을 사용할 수 있습니다.
** 참고로 /etc/hosts.equiv 에 windows taejun 이라고 등록을 하면 server의 다른 계정에도 접근 가능합니다

마지막 문제는 도스에서 접근할 경우 도스가 어떤 사용자로 접속하느냐를 판단해야 합니다. 가장 좋은 것은 /var/log/message 파일을 살펴보는 것입니다.
# tail -f /var/log/mesage

root 계정으로 계속 위의 메시지 파일을 참고하시면서 테스팅하면 되며 도스에서 접속시 어떤 사용자로 접속하는지를 보고 해당 사용자를 .rhosts 파일에
넣어주면 됩니다. (로그파일에는 접속을 하지 못할 경우 에러가 나며 그에 대한 예제는 위에 있습니다. )
2005/07/04 12:38 2005/07/04 12:38