이만용/알짜웨어팀
|
|||||
우리가 리눅스를 접하는 모습은 '커널'만의 모습이 아니라 '배포판'의 종합적인 형태이다. 일반적으로 말해서 각 배포판은 똑같은 리눅스 커널과 같은 자유 소프트웨어들을 사용하고 있기 때문에 '같다'라고 말할 수 있기는 하다. 많은 초보자들이 각 배포판의 이름을 대면서 호환되는지 여부를 물어볼 때는 분명히 "모두'리눅스'이다!"라고 확실히 답변한다. 하지만 이 글을 읽고 있는 여러분에게는 배포판마다 다가오는 리눅스의 느낌과 운영스타일이 다르다고 말할 것이다. 전세계적으로 리눅스 사용자는 남다른데가 있다고 할만큼 리눅스 커널과 자유소프트웨어 정신에 자부심을 갖고 있는데 이러한 고집과 편애(?)는 배포판 선택이나 선호도에 있어서도 여지없이 드러난다. 특히나 독보적인 존재인 슬랙웨어의 명성에 도전장을 내민 레드햇, 데비안 등의 배포판은 초반전에 불꽃튀는 배포판전쟁을 뉴스그룹에서 일으키기도 했다. 이제 그러한 소모적인 논쟁은 지나갔고 자유로운 경쟁과 향상의 시기가 계속되고 있다. 이는 리눅스 전체 입장에서 볼 때 매우 고무적인 일이라고 본다. 계속적으로 훌륭한 실험들이 더욱 활발하게 이뤄져 리눅스의 위상을 지금보다도 더욱 높일 수 있기를 기대하면 이번호의 내용을 시작하겠다.
레드햇 리눅스 부팅시스템 -부팅시스템을 이해하면 리눅스가 보인다. 컴퓨터 전원이 켜지고 바이오스의 기본 하드웨어적 서비스가 끝난 후 제어권이 리눅스에게로 오고 나서부터 여러분에게 로그인 프롬프트 또는 XDM프롬프트를 보여주는 그때까지의 '시스템 준비작업'에 대하여 이해를 가지고 있다면 그 사람은 리눅스에 대한 대단한 수준의 지식을 가지고 있다고 말할 수 있다. 그 만큼 복잡해 보이기도 하고 그러면서도 매우 중요한 부분이다. 리눅스의 커널은 gzip으로 압축된 형식을 띠고
있다 LILO(알파리눅스에서는 MILO, 스팍리눅스에서는 SILO)가 하드디스크의
특정위치에서 커널 이미지 일부를 읽어들이면서 리눅스가 컴퓨터를
장악하게 된다. 메모리의 핵심부에 적재된 코드는 커널을 나머지
부분의 커널을 불러들이면서 압축된 내용을 풀어낸다. 커널은 하드웨어/네트워킹에
관련한 기본 드라이버를 작동시키고 루트 파일 시스템의 /sbin 디렉토리에서
init라는 프로그램을 찾아 맨 처음으로 실행시킨다. 지금 ps명령으로
init의 PID번호를 확인해보라. 항상 똑같은 숫자 1 번이며 실행
중인 모든 프로세스는 바로 PID 1번 init의 자식들이다. 따라서
init의시스템의 종료를 말한다 그 외에도 init는 시스템 운영 중
항상 중요한 일을 도맡아 해 주는 수호신이므로 깊게 리눅스 시스템을
이해하고자 하는 사람이라면 init분석도 좋은 주제가 되리라 생각한다. 여기까지는 모든 배포판이 동일하다. 하지만 이제부터 정말 많이 달라지게 된다. 우선 배포판의 차이는 바로 시스템 초기화 파일의 위치에서 분명하게 드러난다. 리눅스 시스템은 현재 Sys V 스타일의 초기화 방법을 사용하고 있으므로 /etc/inittab 파일의 내용을 자기 것으로 소화하는 것이 중요하다 /etc/initib 파일 (레드햇 리눅스)
레드햇 /ek/inittab파일 앞 부분을 해석한 내용이다. 기본적으로 0번 -6번의 실행 레벨이라는 개념이 있다는 것을 기억해두자. id: 다음에는 일반적으로 3번 아니면 5번을 지정한다. 3번은 파일 설명에서처럼 완전한 다중 사용자 모드로서 어느 배포판에서나 숫자는 다를 수 있어도 완전한 다중 사용자 모드라는 면에서는 같을 것이다. 5번은 XDM 로그인 화면이 뜨고 X윈도우로 직접 로그인하는 모드이다. 그 다음 맨 처음 실행하는 스크립트가 바로 /etc/rc.d/rc.sysinit이다.
이 파일은 여러분이 실행시키지 않는 한 시스템이 켜지고 꺼질 때까지
단 한 번만 실행되는 내용이 들어있다. 레드햇리눅스 시스템을 완전히
이해하고 싶은 사람들은 이 스크립트의 내용이 유익할 것이다.
실행 레벨을 시스템 운영 중 바꿀 때는 telinit 명령을 사용한다.(tell + init라는 의미, init에게 몇 번 실행 레벨로 전환할 것인지 말해 줌) telinit명령 뒤에 번호를 적어준다. /etc/rc.4 디렉토리 구조 디렉토리는 다음과 같은 파일로 구성되어 있다 -파일 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 디렉토리에 들어가는 스크립트들은 모두 레드햇 초기화 스트립트의 특정형식을 가지고 있다. 초기화 스크립트를 이해할 줄 하는 사람들은 만들어 사용할 수 있도록 뼈대가 되는 스크립트 예제가 들어있다.
이 안에 든 스트립트는 모두 다음과 같은 방식으로만 사용하도록 규칙이 정해져있다. #./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 이 파일들은 모두 레드햇 리눅스 시스템에서만
고유하게 내부적으로 쓰는 파일이므로 다른 배포판에서 이런 파일을
찾으려고 노력하지 말라. network 파일은 매우 중요한 파일로서 기억해두어야 한다.
우선 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라고 쳐보기도 엄두가 안날 지경이다 # mkdir conf # cd conf # In -s /etc/hosts 호스트.테이블 # in -s/etc/resolv.conf 도메인 네임서비스.테이블 만약 한글이 표현될 수 있는 터미널이라면 위에서처럼 한글파일명으로 링크해두고 어떤 설정파일 내용을 변경하길 원할 때는 관리자 홈 디텍토리의 conf 디렉토리로 가는 것이다. /etc 디렉토리의 구조 레드햇 리눅스가 패키지로 제공하는 프로그램들의 설정 파일은 모두 /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로 끝나는
파일을 차례로 소스하는 것을 볼 수 있다. C 쉘의 경우에는 /etc/profile.d의 *.csh 파일을 순차적으로 소스한다. 여러분도 /etc/profile.d 디렉토리의 예제를 보고 알맞게 만들어 보라. 필자는 yong.sh 라는 이름의 파일로 시스템 전체적인 설정 내용을 넣어두었다. 이렇게 하면 배포판의 /etc/ profile을 건드릴 필요가 없어지고 패키지 업그레이드나 삭제 시에도 필자의 yong.sh파일은 전혀 건드리지 않게 되어 업 그레이드시 남는 .rpmsave와 원본 파일의 비교 같은 소모적 작업을 피할 수 있다.
레드햇 제어판(control-panel) 레프햇 리눅스하면 떠오르는 몇 가지 이미지 중 X 윈도우에서의 '레드햇 제어판'이 제일 먼저가 아닐까 한다. 윈도우즈95/NT 등에서 볼 수 있는 GUI 시스템 관리 도구로서 장점을 취한 것이라고 생각하고 있다. 불편하고(?) 모든 기능을 아주 자세하게 설정할 수 있지는 않지만, 레드햇 제어판 중 몇 가지는 관리자의 수고를 덜어주는 훌륭한 도구라고 생각하고 있다. 설치된 X 윈도우 관리자의 메뉴 화면에서 선택할 수도 있지만 없다고 해서 불편할 것도 없다. 아무 X 터미널 프로그램에서든 다음과 같이 하면 프로그램을 실행시킬 수 있다. # control-lpanel & /usr/bin/control-panel 은 텍스트 파일로서 티클/티케이 스크립트이다. 따라서 티클/티케이가 설치되어 있지 않다면 작 동하지 않는다. 그리고 참고로 티케이 뿐 아니라 Tix라는 티 케이 확장툴킷이 설치되어 있어야 한다.
/usr/lib/rhs/contriol-panel 이 디렉토리에는 제어판에 표시할 아이콘 gif 파일과 아이콘과 관련하여 어떤 정의 프로그램을 불러야 하는지 정의하는 파일(*.init)이 들어있다. 권하지는 않지만 제어판에 표시되지 않기를 원하는 구성요소가 있다면 해당 .init파일만 삭제하면 된다. 여러분이 원하고 아이콘과 스크립트 파일을 만들 능력이 된다면 제어판에 등록하는 것도 가능하다. 알짜 레드햇 프로젝트를 진행중인 필자와 알짜팀 또한 이러한 구성요소를 만들고 싶다. 현재 공식적인 레드햇 제어판 에는 다음과 같은 구성요소가 들어있다. 1.파일시스템 제어판
1. 파일 시스템 제어판
파일 시스템 제어판으로 할 수 있는 일은 ? 파일시스템 자체를 만들거나 /etc/exports 파일 (NFS 서버의 파일시스템 보여주기 파일)편집은 지원되지 않는다. 파일시스템 만드는 일은 fdisk를 직접 사용해야 한다. 부팅 할 때마다 항상 마운트될 파일 시스템을
등록할 때에는 메뉴의 FSM에서 Add Mount 항목을 누른 뒤, 파일
시스템이름(Device), 파일 시스템 유형(FS Type), 마운트할 위치(Mount
Point), 필요한 경우 마운트 옵션을 입력한뒤 OK 버튼을 누른다.
등록된 파일 시스템은 제어판 아래에있는 Mount/Unmount 버튼으로
제어 가능하다. 등록한 파일시스템의 옵션을 변경하고자 할 때 Edit 버튼을 눌러 변경한다. 실제로 실행되는 파일은 /usr/bin/fstool 이다. 따라서 제어판 없이도 /usr/bin/fstool & 이라고 직접 실행해도 좋다. 주의) 알짜판에서는 언어환경변수 LANG 때문에 아예 뜨지도 않는 경우가 있다. 이때는 LANG 변수를 unset 해 버리던가. 아니면 /usr/bin/fstool 앞 부분은 다음처럼 바꿔준다.
2. 패키지 관리자
지난호에 알아보았던 명령행 rpm의 X 윈도우
대응 요소이다. glint가 편리한 점은 설치되어 있는 패키지를 한눈에
일목요연하게 범주별로 확인할 수 있다는 면이다. 원하는 구성요소에만
선택하여 질의(Query), 제거(Uninstall), 검증(Verify)을 수행할
수 있다. 우선 설치/업그레이드 하고자 하는 RPM 파일이
들어있는 디렉토리를 패키지 관리자에게 알려줘야 한다. Configure
버튼을 누르면 디렉토리 입력 창이 뜬다. 기본값은 /mnt/cdrom/RedHat/RPMS로
되어 있다. 레드햇 시디의 내용을 설치/업그레이드 하려 할 때는
시디롬을 /mnt/cdrom/에 마운트 시키면 좋다. glint가 기본 디렉토리로
설정하고 있는 곳에 마운트 될 때는 Configure버튼을 누르지 않아도
된다. 패키지가 들어있는 디렉토리를 가리킨 후, 그 아래에 있는 Available버튼을 누르면 관리자가 디렉토리의 패키지 내용과 현재 시스템에 설치되어 있는 패키지의 버전을 비교하여 설치 가능한 패키지 목록을 처음 보았던 화면과 같은 별도의 화면으로 보여준다. 패키지를 일목요연하게 정리하여 볼 수 있다는 점에서 매우 편리하지만 아직 완성도가 높다고 보지는 않는다. 가장 흔하게 겪는 일은 다음과 같다. 1. 제거 버튼을
눌렀는데도 제거되지 않고 아무 동작도 취하지 않는다. 이 모두 glint의 버그라기 보다는 기능이 제대로 구현되지 않았다고 본다. 이 둘 모두 의존성(Dependency)문제인 경우가 많다. 의존하는 패키지가 있어 지우지 못하거나 설치시에는 선행하여 설치할 패키지가 있을 때문이다. 문제는 의존성 관련문제에 대해 경고 창 같은 것도 보여주지 않고 아무 일도 하지 않는다는데 있다. 이런 오점은 다음 버전(현재 glibc-2 기반한 베타 버전 4.9 무스탕이 진행중이다. 내년에는 5.0 버전이 나오리라)에서 고쳐지길 바란다.
3. 커널 데몬 제어판
커널 2.0대의 중요 특징 중 하나는 동적인 모듈(module)지원이다.
동적인 모듈지원을 통해 커널 구성요소중 자주 사용되지 않는 부분은
메모리에 불필요하게 올라오지 않고, 그때그때 필요할 때만 사용한다는
장점도 있지만 그 외에도 모듈화에 의한 장점은 매우 많다. 지금
현재 개발 버전 2.1에서도 모듈기능에 대해서는 끊임없이 개선이
이뤄지고 있다. 모듈을 올리고 내리는 일을 사람이 직접해줄
수 있지만, 대부분의 경우 커널 데몬(kerneld)이 충분히 알 수 있는
일은 자기가 처리해준다. 예를 들어 시디롬 파일 시스템을 마운트
하고 싶다는 요청을 받았을 때 만약 현재작동중인 커널 내부에 ISO9660
파일 시스템기능이 없다면 커널 데몬이 알아서 /lib/modules/ 커널
버전 디렉토리밑에서 관련 모듈을 불러들인다. 만약 시디롬파일시스템이
언마운트 되고 일정 기간 사용되지 않음을 감지하면 모듈을 자동으로
내려준다. 주로 이더넷 드라이버, SCSI 드라이버(이는 일반적으로
설치과정에서 자동으로 등록해준다.)에 대한 정보를 입력할 때 좋다.
사용법은 매우 간단하여 생략한다.
4. 모뎀 설정 제어판
이 제어판은 극도로 간단한 일을 해줄뿐인 제어판 구성요소이다. COM1-4 중 하나를 선택받아 /dev 디렉토리에 /dev/modem이라는 링크파일을 만들어준다. 설명을 생략한다.
5. 레드햇의 백미 네트웍 제어판
필자 개인적으로는 매우 높은 점수를 주고
싶은 제어판이 바로 네트웍 제어판이다. 네트웍에 관련된 여러파일을
찾아 가면서 독립적으로 변경할 필요없이 제어판에서의 한번 입력으로
일을 쉽게 처리할 수 있기 때문이다. 1) 이름설정
이름설정(Names) 탭에서는 우선 호스트명(Hostname)을
FQDN으로 적은다음 도메인 (Domain)행 에서는 FQDN에서 도메인 부분만
적는다. 그 다음은 /etc/resolv.conf의 search 행에 입력될 내용으로서
도트(.)가 들어가지 않는 호스트명 뒤에 첫번째 도메인 말고 자동으로
붙여 볼 도메인 명을 적는다. 예를 들어 net이라고 적어주고 telnet
nownuiri라고만 해주어도 (nownnuri.ml.org가 없는 한) 그
다음에는 nownuri.net을 자동으로 찾아준다. 여러 번 적어줄 수
있다. 네임서버(Nameservers)설정은 매우 중요하다.
자기 주변에 있는 가장 가까운 네임서버의 IP 주소를 적어준다.
정확한 갯수는 기억나지 않으나 3개이상 적을 수 있다고 알고
있다. PPP사용자라 할지라도 꼭 자신이 서비스 받는 곳에서 제공하는
네임서버를 주소를 기입해야 한다는 사실!(이 질문이 얼마나 많은지
아는 사람은 안다) 두번째 호스트 테이블 탭은 /etc/hosts 파일을
다루는 화면이다 네임서버를 사용할 수 있는 경우에는 자기에게
필요한 최소갯수의 IP주소 - 이름 한 쌍을 적어준다. /etc/hosts파일에
어떻게 적어줘야 하는지 알아야 한다. 간단한 부분이므로 설명은
생략한다. 세번째 인터페이스(Interface) 부분은 매우 훌륭한
부분 중 하나라고 본다.
6. 프린터 제어판
레드햇 4.2 버전부터 추가된 프린터 제어판은 고스트스크립트가 잘 지원하는 프린터에 한하여 고스트 스트립트와 그래픽 관련 유틸리티를 적절하게 결합하여 /etc/printcap을 만들어준 편리한 도구이다. 설정할 수 있는 프린터는 3가지로 서 직접 리눅스 머신에 연결되어 있는 지역 프린터는 물론 삼바 프린터 (smbprint 스트립트 이용), 원격 UNIX 프린터를 지원한다.
프린터 종류에 따라 설정화면이 매우 많이 달라진다. 지역프린터의 경우에는 고스트 스크립트에서 지원하는 프린터 기종과 여러 옵션 선택화면이 표시되고 원격 UNIX프린터, 또는 SMB 프린터의 경우에는 각각의 위치를 정해주는 간단한 화면이 표시된다. 위 화면은 프린터 설정 전 화면을 캡춰한것이다 영어화면만으로도 부담스럽게 느껴질 수 있을지
모른다. 대체로 어느 정도 BSD 계열 프린터 설정법에 대하여 알고
있는 사람에게 더욱 편하게 다가온다.
7.시간 날짜 제어판
시간/날짜 제어판은 매우 간단한 도구이다. 자주
사용하지는 않아도 종종 관리자에게 도움이 된다.
8. 실행 레벨 편집기
실행 레벨 편집기는 앞서 설명한 복잡한 듯 보이는
레드햇 SysV초기화시스템을 비주얼하게 처리할 수 있도록 해주는
도구이다. 부차적으로 실행 (Execute) 버튼을 사용하여 스크립트를 수동으로 실행시킬 수 있다. 필자의 사견으로는 /etc/rc.d 디렉토리에서 직접 링크를 만들어 주거나 지우는 작업이 아직은 더 쉬울 것이라고 본다. 주의할 것은 절대 /etc/rc.d/init.d에 있는 스크립트를 지우려 하지 말라는 것이다. 정말로 필요치 않은 패키지라면 삭제하고 잠시 어떤 이유에 의해 특정 실행레벨에서 사용하지 않기 위해서는 /etc/rc.d/rc(0-6).d 디렉토리 내의 링크를 지운다. 반대로 실행을 위해서는 링크를 만들어주면 된다. 실행 스크립트 명은 tksysv이다.
9. 사용자 제어판
마지막으로 사용자 제어판을 소개한다. 정말로
많은 사용자를 등록시켜 사용한다면 쉘 스크립트나 기타 도구를
사용하여 자동화함이 더 좋은 방법이겠으나, 적당한 인원인 경우
제어판을 활용하면 편리해진다. 특히 제어판은 몇 가지 편리 기능을
제공하고 유용한 경우도 있다. 다음은 사용자 추가 또는 조회모드의 화면이다. 만약 쉐도우 유틸리티를 사용하여 레드햇 리눅스 시스템을 쉐도우 시스템으로 전환하였다면 '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 패키지를 나도 만들 수 있는가?'에 대하여 심도 깊게 다루어 보기로 하겠다. 그동안 레드햇과 즐거운 리눅스 생활이 되기를 바라겠다. |