이만용/알짜웨어팀
◇ 레드햇
리눅스 부팅 시스템
◇ 로그인 쉘 초기화과정
◇ 레드햇 제어판
우리가 리눅스를 접하는 모습은 '커널'만의 모습이 아니라 '배포판'의 종합적인 형태이다. 일반적으로 말해서 각 배포판은 똑같은 리눅스 커널과 같은 자유 소프트웨어들을 사용하고 있기 때문에 '같다'라고 말할수 있기도 하다 많은 초보자들이 각 배포판의 이름을 대면서 호환되는지 여부를 물어볼 때는 분명히 "모두'리눅스'이다!"라고 확실히 답변한다
하지만 이 글을 읽고 있는 여러분에게는 배포판마다 다가오는 리눅스의 느낌과 운영스타일이 다르다고 말할 것이다. 전세계적으로 리눅스 사용자는 남다른데가 있다고 할만큼 리눅스 커널과 자유소프트 웨어 정신에 자부심을 갖고 있는데 이러한 고집과 편애(?)는 배포판 선택이나 선호도에 있어서도 여지없이 드러난다. 특히나 독보적인 존재인 슬랙웨어의 명성에 도전장을 내민 레드햇, 데비안 등의 배포판은 초반전에 불꽃튀는 배포판전쟁을 뉴스그룹에서 일으키기도 했다. 이제 그러한 소모적인 논쟁은 지나갔고 자유로운 경쟁과 향상의 시기가 계속되고 있다 이는 리눅스 전체 입장에서 볼 때 매우 고무적인 일이라고 본다. 계속적으로 훌륭한 실험들이 더욱 활발하게 이뤄져 리눅스의 위상을 지금보다도 더욱 높일수 있기를 기대하면 이번호의 내용을 시작하겟다.
컴퓨터 전원이 켜지고 바이오스의 기본 하드웨어적 서비스가 끝난후
제어권이 리눅스에게로 오고 나서부터 여러분에게 로그인 프롬프트 또는 XDM프롬프트를
보여주는 그때까지의 '시스템 준비작업'에 대하여 이해를 가지고 있다면 그사람은
리눅스에 대한 대단한 수준의 지식을 가지고 있다고 말할수 있다. 그 만큼 복잡해
보이기도하고 그러면서도 매우 중요한 부분 이다.
리눅스의 커널은 gzip으로 압축된 형식을 띠고 있다 LILO(알파리눅스에서는 MILO
스팍리눅스에서는 SILO)가 하드디스크의 특정위치에서 커널 이미지 일부를 읽어들이면서
리눅스가 컴퓨터를 장악하게 된다. 메모리의 핵심부에 적재된 코드는 커널을 나머지
부분의 커널을 불러들이면서 압축된 내용을 풀어낸다. 커널은 하드웨어/네트워킹에
관련한 기본 드라이버를 작동시키고 루트 파일 시스템의 /sbin 디렉토리에서 init
라는 프로그램을 찾아 맨 처음으로 실행시킨다. 지금ps명령으로init의 PID번호를
확인해보라. 항상 똑같은 숫자 1 번이며 실행 중인 모든 프로세스는 바로 PID 1 번
init의 자식들이다. 따라서 init의시스템의 종료를 말한다 그 외에도 init는 시스템
운영 중 항상 중요한 일을 도맡아 해 주는 수호신이므로 깊게 리눅스 시스템을 이해하고자
하는 사 람이라면 init분석도 좋은 주제가 되리라 생각한다.
여기까지는 모든 배포판이 동일하다. 하지만 이제부터 정말 많이 달라지게 된다.
우선 배포판의 차이는 바로 시스템 초기화 파일의 위치에서 분명하게 드러난다. 리눅스
시스템 은 현재 Sys V 스타일의 초기화 방법을 사용하고 있으므로 /etc/inittab 파일의
내용을 자기 것으로 소화하는 것이 중요 하다
# # inittab 이 파일은 각 실행 례벨(run-level)마다 INIT프로세스가 시스템을 # 셋업하는 방법에 대하여 기술한다. # Author: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org) # Modified for RHS Linux by Marc Ewing and Donnie Barnes #기본 실행 례벨. RHS에서 사용하는 실행 레벨은 다음과 같다 # 0-중지(hart) (Infdefauk를 이 값으로 절대 설정하지 말 것) # 1 - 단일 사용자 모드(Single user mode) # 2-다중 사용자, NFS 제외 ( 네트워킹 기능이 없는 경우 3 번과 동일 ) # 3-완전한 다중 사용자 모드 # 4-사용하지 않음 # 5-Xll # 6-리부팅 (initdefault를 이 값으로 절대 설정하지 말 것) # id:3:Initdefault: # 시스템 초기화 sl::sysinit:/etc/rc d/rc.syslnlt
레드햇 /ek/inittab파일 앞 부분을 해석한 내용이다. 기본적으로 0번 -6번의 실행 레벨이라는 개념이 있다는 것을 기억해두자. id: 다음에는 일반적으로 3 번 아니면 5 번을 지정한다 3 번은 파일 설명에서처럼 완전한 다중 사용자 모드로서 어느 배포판에서나 숫자는 다를 수 있어도 완전한 다중 사용자 모드라는 면에서는 같을 것이다. 5 번은 XDM 로그인 화면이 뜨고 X윈도우로 직접 로그인하는 모드이다.
그 다음 맨 처음 실행하는 스크립트가 바로 /etc/rc.d/rc.sysinit이다.
이 파일은 여러분이 실행시키지 않는 한 시스템이 켜지고 꺼질 때까지 단 한 번만
실행되는 내용이 들어있다. 레드햇리눅스 시스템을 완전히 이해하고 싶은 사람들은
이 스크립트의 내용이 유익할 것이다
그 다음 이어지는 것은 실행 레벨에 대한
정의이다 각 실행 레벨들은 /etc/rc.d/rc라는 스크립트에 원하는 실행 레벨 을 전달
인수로 주어 처리하고 있다.
i0:0:wait:/etc/rc.d/rc 0 i1:1:wait:/etc/rc.d/rc 1 i2:2:wait:/etc/rc.d/rc 2 i3:3:wait:/etc/rc.d/rc 3 i4:4:wait:/etc/rc.d/rc 4 i5:5:wait:/etc/rc.d/rc 5 i6:6:wait:/etc/rc.d/rc 6
실행 레벨을 시스템 운영 중 바꿀 때는 telinit 명령을 사용 한다. ( tell + init라는 의미,init에게 몇번 실행 레벨로 전환할 것인지 말해 줌 ) telinit명령 뒤에 번호를 적어준다.
디렉토리는 다음과 같은 파일로 구성되어 있다
-파일 rc rc.sysinit rc.local -디렉토리 init.d rc[0-6].d
우선 디렉토리부터 먼저 설명하겠다. 레드햇 리눅스에서 는 각 실행 레벨에 진입할 때마다 실행 시켜야하는 스크립트 들을 표시하기 위해 rc0.d rc1.d ....rc6.d디렉토리를 만들어 두었다. 실제로 실행되는 스크립트들의 실체는 모두 init.d 디렉토리에 들어있으며 rc[0-6].d 디렉토리에있는 것이라고 는 스크립트를 가리키는 심볼릭링크 뿐이다.
init.d 디렉토리에 들어가는 스크립트들은 모두 레드햇 초기화 스트립트의 특정형식을 가지고 있다 .초기화 스크립트를 이해할줄 하는 사람들은 만들어 사용할 수 있도록 뼈대가 되는 스크립트 예제가 들어있다.
#함수 라이브러리를 포함시킨다. (source) ./etc/rc.d/init.d/functions # 스크립트가 어떤 이름으로 호출되었는지 살펴본다. case"$1" in start ) touch/var/lock/subsys/skeleton ;; stop) rm -f /var/lock/subsys/skeleton ;; *) echo"Usage:skeleton {start|stop}" exit 1 esac exit 0
이 안에 든 스트립트는 모두 다음과 같은 방식으로만 사용하도록 규칙이 정해져있다.
#./script start
#./script stop
스크립트를 실행할 때 어떤 기능이나 데몬을 사작하게 하기 위해서는 start를 중지시키고자할 때는 stop를 전달 인수로 주어 실행한다.아무도 인수도 주지 않을 때는 사용법만을 출력하고 중지한다.
이제 각 실행 레벨디렉토리롤 들어가서 파일명을 살펴보자 그러면 모두 다음과 같은 파일명을 가진 심볼릭 링크라는 것을 보게 될 것이다.
S 또는 K 로 시작하고 숫자 두 개, 그리고 적절한 이름
S(start)로 시작하는 링크는 링크가 가리키는스크립트에 start전달인수를 주어 실행한 것과 같고 K(Kill)로 시작하는 링크는 링크가 가리키는 스크립트에 stop 전달인수를 주어 실행하는 것과 같다. 숫자는 스크립트들의 상대적인 실행순서를 가리기위한 내부규칙이다. 작은번호의 스크립트가 먼저실행된다. ls를 해서 표시되는 순서대로 실행된다고 보면된다.
레드햇 리눅스를 이해하는 사람은 일반적으로 /etc/rc.d/init.d 디렉토리에 있는 스크립트를 잘 활용한다.
/etc/fstab, /etc/hosts, etc/resolv.conf,/etc/inetd.conf 등의 일반적인 파일위치는 어떤 리눅스 배포판에서도 다르지 않다. 지금 여기서 설명하고자 하는 내용은 주로 '레드햇 제어판' 이라고 부르는 시스템 관리도구 소프트웨어에서 여러분의 입력하는 내용이 어디에 저장되는가 이다.
/etc/sysconfig
이 디렉토리 이하를 완전히 이해할 필요는 없다고 할지라도 입력하는 내용들이 거의 모두 이 디렉토리 밑으로 조직화 되어있다는 사실 자체는 꼭 기억해두기 바란다. 만약 X 윈도우를 사용할수 없거나 특수한 상황이 발생했을 때 수동편집을 위해서는 어떤 파일이 어떤 용도로 사용되는지 잘 알고 있으면 도움된다.
clock
keyboard
mouse
network
static-routes
이 파일들은 모두 레드햇 리눅스 시스템에서만 고유하게 내부적으로
쓰는 파일이므로 다른 배포판에서 이런 파일을 찾으려고 노력하지 말라.
clock 파일의 내용에대하여 인텔 리눅스 사용자는 알필요가 없다. 이 파일내용은
현재 알파 리눅스에 관계된 것이다. 알파시스템의 차이에 따라 클럭설정에 차이가
있기 때문에 알파리눅스 시스템 부팅에 사용된다. keyboard파일은 여러분이 파일내용을
살펴보면 알 수 있을 것이다. mouse 파일에는 마우스의 유형 3버튼 에물레이션 여부를
저장해두고 있는데 레드햇에서 제공하는 Xconfigurator등에서 사용할뿐이다.
network 파일은 매우 중요한 파일로서 기억해두어야한다.
NETWORKING=yes HOSTNAME=freeyoung.ml.org GATEWAYDEV= GATEWAT=
우선 NETWORKING=yes,no 의 여부에 따라 시스템은 매우다르게 기능한다 랜환경이 아닌 경우( 레드햇 설치시 랜 카드가 없다고 했을 때 ) no라고 설정된다. 이 부분이 yes 인지 아닌지 여부에 따라 network-scripts 디렉토리의 각종 네트워크 인터페이스 스크립트들이 실행될 것인지 아닌지 결정한다. 이를 실행에 올리는 관련 스크립트는 /etc/rc.d/init.d/network이다. HOSTNAME에는 여러분이 여러분의 리눅스 박스에 붙이는 이름의 FQDN 명을 적는다. 보통 호스트 명은 /etc/HOSTNAME에 적곤하는데 레드햇의 경우에는 부팅중 network 파일내용을 읽어 /etc/HOSTNAME에 써 버리므로이 파일을 고치는 것은 의미가 없다. GATEWAYDEV. GATEWAY는 각가가 네트웍 게이트웨이로 나갈 때사용하는 네트웍 장치명( 일반적으로 eth0) 게이트 웨이 주소를 적는다.
/etc/sysconfig/network-scripts 디렉토리의 내용이 레드햇리눅스 네트워킹설정의 핵심부이다. 그안에 든 파일명과 내용을 읽어보면 어떤 설정에 사용되고 있는지 이해할수 있으리라 본다.
static-routes는 일반적으로 필요치 않을 것이며 파일내용도 없다. 여러분이 정적(static)인 라우팅 테이블을 레드햇제어판에서 등록해주면 이 파일에 저장되며 route 명령이 적절하게 수행된다.
필자 또한 꾸준한 슬랙웨어 사용자였다는점에서 여러분과 다른 바 없을 것이다. 슬랙웨어 의 단순하고 간결한 부팅시스템과 달리 레드햇 리눅스 시스템은 언뜻 매우 복잡해 보이고 리눅스 사용자의 자유도를 빼았는 것 같은 인상을 준다.
필자의 생각으로는 리눅스는 앞으로 더욱 대형화되고 복잡해질
것이다 그렇지 않아도 수많은 서비스 프로그램들의 설정파일로 /etc 디렉토리는 이미
충만한 상태이지 않은가 ? / etc 디렉토리에 가서 ls 라고 쳐보기도 엄두가 안날
지경이다
그럴 때는 이런 방법을 써보는 것이 어떨까 ?
관리자 root 디렉토리밑에 conf 라는 디렉토리를 만든다. 그리고 빈번하게 바꾸는
설정파일을 다음과 같이 링크하는 것이다.
# mkdir conf # cd conf # In -s /etc/hosts 호스트.테이블 # in -s/etc/resolv.conf 도메인 네임서비스.테이블
만약 한글 이 표현될수 있는 터미널이라면 위에서 처럼 한글파일명으로 링크해두고 어떤 설정파일 내용을 변경하길 원할 때 관리자 홈 디텍토리의 conf 디렉토리로 가는 것이다.
레드햇 리눅스가 패키지로 제공하는 프로그램들의 설정 파 일은 모두 /Etc디렉토리 밑에 있다고 원칙적으로 생각하면 좋다. 예들 들어보자
PPP 관련 설정 디렉토리 /etc/ppp
아파치 웹 서버 설정 디렉토리 /etc/httpd
X 윈도우 관련 설정 디렉토리 /etc/x11
뉴스 서버 설정 디렉토리 /etc/news
리눅스만큼은 GNU bash 쉘을 기본적으로 사용하고 있는 것이 특징적이다. ( 대부분의 유닉스 워크스테이션에서 많은 사람들은 C 쉘을 사용하고 있을 것이다) 어떤 사용자가 로그인할 때(login 에서 사용자명과 패스워드를 치고 들어오거나 su -명령을 사용한 경우)는 다음과 같은 경로를 통해 배쉬가 초기화된다
/etc/profile -> /etc/pnfile.d/'.sh $HOME/.bash_profile ( 없으면 $HOME/.profile ) $HMOE/.bashrc
쉘이 이런 관련 파일을 읽어들이는 작업을 소스(Source)한 다고
표현한다 레드햇 시스템이 기본적으로 제공하고 있는 /etc/profile속의 스크립트내용을
보다 보면 /etc/profile.d 디렉토리에 .sh로 끝나는 파일을 차례로 소스하는 것을
볼 수 있다
알짜 레드햇 판에서는 alzza-preference, hangul-initialize 라는 이름으로 시작하는
스크립트가 들어있다. 굳이 복잡하게 이런 디렉토리를 두는 이유는 패키지 관리 입장에서
처해진 결정이다 많이 패키지들은 설치와 동시에 자신에게 맞는 환경변수가 설정되기를
요구한다. 이 때마다/etc/profile을 건드리는 것은 좋지 않기 때문이다. 그래서 예를
들어 A패키지가 설치되면서 A.sh를 /etc/profile.d 디렉토리에 넣는 방법을 사용하였다.
이는 오로지 레드햇 시스템에만 관련된 내용이다. 따라서 다른 배포판의 경우 /etc/profile.d
디렉토리를 찾으려는 시도 는 하지 말라.
C 쉘의 경우에는 /etc/profile.d의
*.csh 파일을 순차적으로 소스한다.
여러분도 /etc/profile.d 디렉토리의 예제를 보고 알맞게 만들어 보라 필자는 yong.sh 라는 이름의 파일로 시스템 전체적인 설정 내용을 넣어두었다. 이렇게 하면 배포판의 /etc/ profile을 건드릴 필요가 없어지고 패키지 업그레이드나 삭제 시에도 필자의 yong.sh파일은 전혀 건드리지 않게 되어 업 그레이드시 남는 .rpmsave와 원본 파일의 비교 같은 소모적 작업을 피할 수 있다.
레프햇 리눅스하면 떠오르는 몇 가지 이미지 중 X 윈도우 에서의 '레드햇 제어판'이 제일 먼저가 아닐까한다 윈도우 즈95/NT 등에서 볼 수 있는 GUI 시스템 관리 도구로서 장점을 취한 것이라고 생각하고 있다. 불편하고(?) 모든 기능 을 아주 자세하게 설정할 수 있지는 않지만 레드햇 제어판 중 몇 가지는 관리자의 수고를 덜어주는 훌륭한 도구라고 생각하고 있다.
설치된 X 윈도우 관리자의 메뉴 화면에서 선택할 수도 있지만 없다고 해서 불편할 것도 없다 아무 X 터미널 프로그램에서든 다음과 같이 하면 프로그램을 실행시킬 수 있다.
# control-lpanel &
/usr/bin/control-panel 은 텍스트 파일로서 티클/티케이 스크립트이다. 따라서 티클/티케이가 설치되어 있지 않다면 작 동하지 않는다. 그리고 참고로 티케이 뿐 아니라 Tix라는 티 케이 확장툴킷이 설치되어 있어야 한다.
이 자체는 껍데기 역할을하는 프로그램일뿐이다. 아이콘을 눌러 실행되는
포로그램들은 모두 별도의 스크립트들이다. 티클/티케이 또는 파이떤(Python)등의
스크립트로 작성되어 있다.
/usr/lib/rhs/contriol-panel
이 디렉토리에는 제어판에 표시할 아이콘 gif 파일과 아이콘과 관련하여 어떤 정의 프로그램을 불러 야하는지 정의하는 파일(*.init)이 들어있다. 권하지 않지만 제어판에 표시되지 않기를 원하는 구성요소가 있다면 해당 .init파일만 삭제하면된다.
여러분이 원하고 아이콘과 스크립트 파일을 만들 능력이 된다면 제어판에 등록하는 것도 가능하다. 알짜 레드햇 프로젝트를 진행중인 필자와 알짜팀 또한 이러한 구성요소를 만들고 싶다.
현재 공식적인 레드햇 제어판 에는 다음과 같은 구성요소가 들어있다.
1.파일시스템 제어판
2.패키지 관라자 glint
3.커널 데몬 제어판
4.모뎀 제어판
5.네트웍 제어판
6.프린트 제어판
7.시간 /날짜 제어판
8.실행 레벨 편집기
9.사용자.그룹 제어판
파일 시스템 제어판 으로 할수 있는 일은 ?
- 마운트 관리를 할수 있다./etc/fstab에 자동 등록해준다.
지역 파일 시스템보다는 NFS 마운트 처리가 돋보인다.
-파일 시스템을 버튼 하나로/마운트.언마운트 할 수 있다.
-시스템 운영에 필요한 /,/usr 파티션 등에 적용할수는 없지만 대형 사이트에서 수많은
사용자 파티선을 가지고 있다든지 할 때 유용하다
-포멧,파일시스템 점검을 할수 있다.(마운트 된 파일시스템은 불가 )
파일시스템 자체를 만들거나 /etc/exports 파일 (NFS 서버의 파일시스템 보여주기 파일)편집은 지원되지 않는다. 파일시스템 만드는 일은 fdisk를 직접 사용해야한다.
부팅할 때만다. 항상 마운트될 파일 시스템을 등록할 때에는 메뉴의
FSM에서 Add Mount 항목을 누른뒤,파일 시스템이름 (Device),파일 시스템 유형(FS
Type) 마운트할 위치 (Mount Point), 필요한 경우 마운트 옵션을 입력한뒤 OK 버튼을
누른다. 등록된 파일 시스템은 제어판 아래에있는 Mount/Unmount 버튼으로 제어 가능하다.
제어판이 실행되면서 현재 파티션이 어떻게 나뉘어 있는지는 파악한다 하지만 Add
Mount 로 등록하지 않은 파일시스템은 파일 시스템 유형이 ignore 로 표시되며 아무
동작도 취할 수 없다.
등록한 파일시스템의 옵션을 변경하고자 할 때 Edit 버튼을 눌러 변경한다.
실제로 실행되는 파일은 /usr/bin/fstool 이다 따라서 제어판 없이도 /usr/bin/fstool & 이라고 직접 실행해도 좋다.
주의 )알짜판에서는 언어환경변수 LANG 때문에 아예 뜨지도 않는 경우가 있다 이때는 LANG 변수를 unset 해 버리던가. 아니면 /usr/bin/fstool앞부분은 다음처럼 바꿔준다.
# !/usr/bin/wish -f #File system tool #(C) Copyright 1994 by Red Hat Software set env(LANG) C
지난호에 알아보았던 명령행 rpm의 X 윈도우 대응 요소이다. glint가
편리한 점은 설치되어 있는 패키지를 한눈에 일목요연하게 범주별로 확인할 수 있다는
면이다. 원하는 구성요소에만 선택하여 질의(Query),제거(Uninstall) 검증(Verify)을
수행할수 있다.
초기화면은 현재 여러분의 시스템에 설치된 패키지확인화면이다. 설치모드로 들어가기위해서는
2단계를 거쳐야한다.
우선 설치/업그레이드하고자 하는 RPM 파일리 들어있는 디렉토리를
패키지 관리자에게 알려줘야한다. Configure 버튼을 누르면 디렉토리 입력창이 뜬다.
기본값은 /mnt/cdrom/RedHat/RPMS로 되어 있다 레드햇시디의 내용을 설치/업그레이드
하려할 때는 시디롬을/mnt/cdrom/에 마운트 시키면 좋다. glint가 기본 디렉토리로
설정하고 있는 곳에 마운트 될 때는 Configure버튼을누르지 않아도 된다
패키지가 들어있는 디렉토리를 가리킨후, 그 아래에 있는 Available버튼을 누르면
관리자가 디렉토리의 패키지 내용과 현재시스템에 설치되어 있는 패키지 의 버전을
비교하여 설치가능한 패키지 목록을 처음 보았던 화면과 같은 별도의 화면으로 보여준다.
패키지를 일목요연하게 정리하여 볼수 있다는 점에서 매우 편리하지만 아직 완성도가 높다고 보지는 않는다. 가장 흔하게 겪는 일은 다음과 같다.
1.제거 버튼을 눌렀는데도 제거되지 않고 아무 동작도 취하지
않는다.
2.설치/업그레이드 버튼을 눌렸는데도 설치되지 않는다.
이 모두 glint의 버그라기 보다는 기능이 제대로 구현되지 않았다고 본다. 이 둘 모두 의존성(Dependency)문제인 경우가 많다. 의존하는 패키지가 있어 지우지 못하거나 설치시에는 선행하여 설치할 패키지가 있을 때문이다. 문제는 의존성 관련문제에 대해 경고창 같은 것도 보여주지 않고 아무일도 하지 않는다는데 있다. 이런 오점은 다음 버전(현재 glibc-2 기반한 베타 버전 4.9 무스탕이 진행중이다 내년에는 5.0 버전이 나오리라 )에서 고쳐지길 바란다.
커널 2.0대의 중요 특징중 하나는 동적인 모듈(module)지원이다.
동적인 모듈지원을 통해 커널 구성요소중 자주 사용되지 않는 부분은 메모리에 불필요하게
올라오지 않고 그때 그때 필요할 때만 사용한다는 장점도 있지만 그 외에도 모듈화에
의한 장점은 매우많다. 지금 현재 개발 버전 2.12 에서도 모듈기능에 대해서는 끊임없이
개선이 이뤄지고 있다.
레드햇 리눅스는 커널의 기능이 매우 잘게 나뉘어 있으며 커널 2.0대의 모듈 기능에
크게 의존하고 있다.
모듈을 올리고 내리는 일을 사람이 직접해줄수 있지만 대부분의 경우 커널 데몬(kerneld)이
충분히 알수 있는 일은 자기가 처리해준다 예를 들어 시디롬 파일 시스템을 마운트
하고 싶다는 요청을 받았을 때 만약 현재작동중인 커널 내부에 ISO9660 파일 시스템기능이
없다면 커널 데몬이 알아서 /lib/modules/ 커널 버전 디렉토리밑에서 관련 모듈을
불러들인다. 만약 시디롬파일시스템이 언마운트 되고 일정 기간 사용되지 않음을
감지하면 모듈을 자동으로 내려준다.
하지만 데몬이 정확히 판단 내릴수 없는 일들도 있다. 예를 들어 네트웍카드의 경우
사용자가 3COM 509를 사용하는지 NE2000을 사용하는지 구별할수는 없다. 바로 이러한
일을 해주는 곳이 커널 데몬 제어판이다.
주로 이더넷 드라이버 ,SCSI 드라이버 (이는 일반적으로 설치과정에서 자동으로 등록해준다.)에
대한 정보를 입력할 때 좋다. 사용법은 매우 간단하여 생략한다.
실제 실행되는 실행파일명은 kernelcfg 이며 설정 내용은 /etc/conf.modules이다.
이 파일의 편집방법을 알면 제어판에 의존하지 않아도 된다. 하지만 제어판 덕분에
외우기 어려운 모듈 설정 문법에서 해방될수 있다는 점을 높이 평가한다.
이 제어판은 극도로 간단한 일을 해줄뿐인 제어판 구성요소이다. COM1-4 중 하나를 선택받아 /dev 디렉토리에 /dev/modem이라는 링크파일을 만들어준다 설명을 생략한다.
필자 개인적으로는 매우 높은 점수를 주고 싶은 제어판이
바로 네트웍 제어판이다. 네트웍에 관련된 여러파일을 찾아 가면서 독립적으로 변경할
필요없이 제어판에서의 한번 입력으로 일을 쉽게 처리할수 있기 때문이다.
크게 4개의 탭으로 이뤄져 있다. 1) 이름설정 2)호스트 테이블 3) 인터페이스 4)
라우팅 설정화면이다.
이름설정(Names) 탭에서는 우선 호스트명(Hostname)을 FQDN으로 적은다음 도메인
(Domain)행 에서는 FQDN에서 도메인 부분만 적는다. 그 다음은 /etc/resolv.conf의
search 행에 입력될 내용으로서 도트(.)가 들어가지 않는 호스트 명뒤에 첫번째 도메인
말고 자동으로 붙여볼 도메인 명을 적는다 예를 들어 net이라고 적어주고 telnet.nownuiri라고만
해주어도 (nownnuri.ml.org가 없는 한) 그 다음에는 nownuri.net을 자동으로 찾아준다.
여러번 적어줄수 있다.
네임서버(Nameservers)설정은 매우 중요하다. 자기 주변에있는 가장 가까운 네임서버의
IP 주소를 적어준다. 정확한 갯수는 기억나지 않으나 3개이상 적을수 있다고 알고
있다. PPP사용자라 할지라도 꼭 자신이 서비스 받는 곳에서 제공하는 네임서버를
주소를 기입해야 한다는 사실!(이 질문이 얼마나 많은지 아는 사람은 안다)
두번째 호스트 테이블 탭은 /etc/hosts 파일을 다루는 화면이다 네임서버를 사용할수
있는 경우에는 자기에게 필요한 최소갯수의 IP주소 - 이름 한쌍을 적어준다. 간단한
부분이므로 설명은 생략한다.
세번째 인터페이스(Interface) 부분은 매우 휼륭한 부분중하나라고 본다.
네트웍인터페이스를 클릭한번으로 작동시키거나 끌수 있는 도구이다. 편집기능을
사용하여 부팅시 자동으로 특정 네트웍 인터페이스를 작동시킬 것 인지 여부도 결정할수
있다. 네트웍 인터페이스를 여러개 가지고 있는 경우 아주 편리하다.
실행 스크립트 명은 그냥 netcfg이다.
레드햇 4.2 버전부터 추가된 프린터 제어판은 고스트스크립트가 잘 지원하는 프린터에 한하여 고스트 스트립트와 그래픽 관련 유틸리티를 적절하게 결합하여 /etc/printcap을 만들어준 편리한 도구이다. . 설정할수 있는 프린터는 3가지로 서 직접 리눅스 머신에 연결되어 있는 지역 프린터는 물론 삼바 프린터 (smbprint 스트립트 이용), 원격 UNIX 프린터를 지원한다.
프린터 설정은 매우 직관적이다 프린터 설정추가 (Add) 버튼을 누르면
다음과 같은 프린터 종류 선택 화면이 표시된다.
프린터 종류에 따라 설정화면이 매우 많이 달라진다 지역프린터의 경우에는 고스트
스크립트에서 지원하는 프린터 기종과 여러옵션 선택화면이 표시되고 원격 UNIX프린터
또는 SMB 프린터의 경우에는 각각의 위치를 정해주는 간단한 화면이 표시된다.
위 화면은 프린터 설정 전 화면을 캡춰한것이다
일반적으로 리눅스에 익숙해져 있는 사람이 라도 프린터 설정을 손수 /etc/printcap를
편집해가면서 그리고 gs 옵션을 적어가면서 한다는 것은 힘들기하고 소모적인 일이라는
점을 볼 때 이 또한 매우 휼륭한 도구 라고 생각한다. 오른쪽 필터 설정화면은 프린터
제어판의 압권이라고 말할수 있을정도이다.
프린터 제어판을 사용하는 경우 /etc/printcap는 제어판이 나중에라도 인식할 수
있는 인식문자열을 표기해주었으므로 함부로 지우지 않는 것이 좋다.
영어화면만으로도 부담스럽게 느껴질수 있을지 모른다. 대체로 어느 정도 BSD 계열
프린터 설정법에 대하여 알고 있는 사람에게 더욱 편하게 다가온다.
실행스크립트 명은 printtool이다.
메뉴의 오른쪽에 보면 프린터 테스트 항목이 있어 프린터 설정이 올바른지 그 즉시
확인할수 있다.
시간/날짜 제어판은 매우 간단한 도구이다. 자주 사용하지는 않아도
종종 관리자에게 도움이 된다.
적지 않은 사람들이 date명령을 사용하여 설정하는 방법을 기억하지 못하며 기억하기도
힘들다. 필자도 때때로 고개를 갸우뚱하면서 맨 페이지를 읽어가며 설정하던 일이
떠오른다.
어떤때는 시간 설정하는 명령이 DATE인지도 기억나지 않을 때가 있다.
시간 날짜 설정은 직관적이다. 시/분/초, 날짜등을 클릭한 후 위,아래 화살표를 사용한다.
BIOS시간을 직접 설정하려면 Set System Clock 버튼을 누른다.
실행 레벨 편집기는 앞서 설명한 복잡한 듯 보이는 레드햇 SysV초기화시스템을
비주얼하게 처리할수 있도록 해주는 도구이다.
화면 구성을 설명해보겠다.
크게 왼쪽화면과 오른쪽 화면으로 나누고 또 다시 상하로 나눌수 있다. 왼쪽 화면의
상단(Available)은 /etc/rc.d/inint.d 에 들어있는 실제 스크립트 명이 표시된다.
왼쪽 화면은 0번부터 6번 실행 레벨 각각에 대하여 위쪽에는 시작 스크립트(start
전달 인수를 주어 실행하는 것과 같다) 아랫쪽에는 중지스크립트(stop전달인수를
주어 실행) 가 표시된다.
실행 레벨 편집기는 기본적으로 추가/삭제라는 모드 그리고 부차적으로 편집모드를
갖는다. 추가(Add) 모드에서는 /etc/rc.d/init.d 스크립트를 선택한후 . 시작 스크립트인지
중지 스크립트인지 그리고 상대적인 순서는 몇 번으로 정할 것인지 입력한다. 그리고
상대적인 순서는 몇 번으로 정할 것인지 입력한다. 삭제 모드는 삭제하고자 하는
항목을 오른쪽에서 선택하여 삭제(Remove)버튼을 눌러 처리한다.
편집 모드는 상대적인 실행순서를 변경하는 절차이다.
부차적으로 실행 (Execute) 버튼을 사용하여 스크립트를 수동으로 실행시킬수 있다.
필자의 사견으로는 /etc/rc.d 디렉토리에서 직접 링크를 만들어 주거나 지우는 작업이 아직은 더 쉬울 것이라고 본다. 주의할 것은 절대 /etc/rc.d/init.d 에 있는 스크립트를 지우려 하지 말라는 것이다. 정말로 필요치 않은 패키지라면 삭제하고 잠시 어떤 이유에 의해 특정 실행레벨에서 사용하지 않기 위해서는 /etc/rc.d/rc(0-6).d 디렉토리내의 링크를 지운다. 반대로 실행을 위해서는 링크를 만들어주면된다.
실행 스크립트 명은 tksysv이다.
마지막으로 사용자 제어판을 소개한다. 정말로 많은 사용자를
등록시켜 사용한다면 쉘 스크립트나 기타 도구를 사용하여 자동화함이 더 좋은 방법이겠으나
적당한 인우너인 경우 제어판을 활용하면 편리해진다. 특히 제어판 은 몇가지 편리
기능을 제공하고 유용한 경우도 있다.
기본모드는 아주 간단하다. 사용자 그룹 두 개의 탭으로 이뤄져 있으며 각각 추가,삭제,편집기능를
제공한다. Add, Remover, View/Edit 버튼을 통해 실행한다. 이외에도 Lock/Unlock기능은
매우 편리한 기능으로서 일정 기간 유보를 시킨다던지 하여 시스템에 로그인을 막으면서도
자료를 보존한다든지 할 때 매우 편리한 기능을 제공한다. 사용자의 홈 디렉토리를
압축해서 관리하다가 유보 해제할 때는 다시 원상태로 복구해주는 일을 몇 번의 클릭으로
해결할수 있다.
다음은 사용자 추가또는 조회모드의 화면이다.
만약 쉐도우 유틸리티를 사용하여 레드햇 리눅스 시스템을 쉐도우 시스템으로 전환하였다면 'Shadow Management'버튼이 추가되며 패크위드에 관한 정책을 설정할수 있다.
한가지 알아두었으면 하는 사항이 있다. 기본적으로 레드햇을 설치하면 일반 유닉스 패스워드 시스템으로 동작하게 되어 있다. 하지만 쉐도우 유틸리티 패키지를 설치하고 pwconv5를 실행하면 시스템을 그 즉시 쉐도우 패스워드 시스템으로 동작한다. 이는 레드햇 배포판이PAM(Pluggable Authentication Module) 이라는 새로운 방식의 유연한 패스워드 방식을 사용하고 있기 때문에 가능한 일이다. pwconv5 프로그램을 실행하면 기존의 /etc/passwd 내용을 읽어들여 쉐도우화된 /etc/passwd ,/etc/shadow 파일을 만들어낸다. 만약을 위해서라도 /etc/shadow 파일의 허가권이 오로지 루트 사용자에게만 읽기 쓰기를 허용하고 나머지 사용자들은 절대 읽을수 없도록 되어 있는지 확인하는 것을 잊지 말기 바란다. 참고로 쉐도우 유틸리티 패키지는 쉐도우 패스워드 시스템에서 일반 패스워드 시스템으로 돌아오게 만드는 역변환 유틸리티가 들어있다. pwunconv를 실행시키면 현재 디렉토리에 npasswd라는 파일이 만들어지는데 기존의 패스워드 파일을 지워 버리고 /etc/passwd로 복사해 넣으면 된다.
PAM 이라고 하는 새로운 인증시스템은 여러분이 연구해볼 만한 가치가 있다 필자자신도 PAM에 대하여 철저히 아는바가 없기 때문에 소개하지 못함을 유감스럽게 생각한다. 상당한 수준의 보안이 필요한 경우 레드햇 사이트에서 PAM관련사이트를 찾아나가길 바란다. 앞으로도 많이발전할 인증 시스템이다.
지금까지 레드햇 배포판이 다른 배포판과 갖는 차이점에 대하여 알아보았다. 앞서 PAM과 같은 중요한 요소를 설명할수 없었다는 아쉬움을 갖지만 이 부분은 독자에게 맡기기로 한다 왠만큼 레드햇 시스템에 익숙해졌는가 ? 익숙해지면 언제나 편한 법이다 아무리 복잡해보이는 시스템도 결국엔 사람이 만든 것이며 나름의 원칙이 있기 마련이다.
다음호에서는 기본적인 레드햇 시스템의 수준을 넘어'어떻게 하면 레드햇 RPM 패키지를 나도 만들수 있는가 ? 에 대하여 심도 깊게 다루어 보기로 하겟다. 그동안 레드햇과 즐거운 리눅스 생활이 되기를 바라겠다.
이글은 리눅스 월드 '97년 11월호 기사입니다.