400 likes | 551 Views
시스템 관리 기본. SPARCS 10 채승우. Maintaining the System 시스템 유지하기. 시스템 관리 작업 - root 계정에서 ! root 계정은 파일 퍼미션과 보안 메커니즘의 적용 X. 즉 모든 파일에 접근 및 수정 가능 모든 사용자에게 모든 권한을 준다면 그야말로 시스템 관리가 힘들어 진다 . 우분투 같은 일부 배포판에서는 root 계정을 사용할 수 없게 되어있다 . 대신 sudo 를 사용하여 root 권한으로 명령을 실행할 수 있다.
E N D
시스템 관리 기본 SPARCS 10 채승우
Maintaining the System시스템 유지하기 • 시스템 관리 작업 - root 계정에서! • root 계정은 파일 퍼미션과 보안 메커니즘의 적용 X. 즉 모든 파일에 접근 및수정 가능 • 모든 사용자에게 모든 권한을 준다면 그야말로 시스템 관리가 힘들어 진다. • 우분투 같은 일부 배포판에서는root계정을 사용할 수 없게 되어있다. 대신 sudo를 사용하여 root권한으로 명령을 실행할 수 있다.
일반적으로 바로 root로 로그인하지 않는다. • 개인 사용자로 로그인 한 뒤, su명령어를 이용하여 root로 로그인. • 이유: su명령을 이용하면 로그인 시 로그가 남게되어 누가 언제 root권한을 이용했는지 알 수 있다. su(–)[username] • [username] 생략 시 root로 로그인 • – 추가 시해당 user의 설정 파일도 같이 실행
Booting the System시스템 부팅하기 • 리눅스 부팅 과정 1. 부트로더(GRUB, LILO) 2. 커널 부팅 3. init 실행 4. runlevel에 맞는 프로세스 실행 5. 사용자 로그인
부트 플로피 이용 - 커널 이미지가 압축되어 들어있다 - 부팅 시 압축이 풀리면서 메모리에 적재 • GRUB 이용 - GRand Unified Bootloader - 대부분의 리눅스배포판의부트로더
System Startup and Initialization시스템 시동과 초기화 • Kernel Boot Messages • init, inittab, and rc Files • rc Files
- Kernel Boot Messages • dmesg명령 이용: 부팅 후 부팅 메시지 확인 Linux version 2.6.26-2-686 (Debian 2.6.26-22lenny1) (dannf@debian.org) (gcc version 4.1.3 20080704 (prerelease) (Debian 4.1.2-25)) #1 SMP Wed May 12 21:56:10 UTC 2010 • 커널 버전, 커널이 언제 어디에서 어떤 컴파일러로 컴파일 되었는지 보여줌
Kernel command line: root=/dev/sda1 ro quiet • 어느 장치로 부팅되었는지 알 수 있다. Calibrating delay using timer specific routine.. 5894.30 BogoMIPS (lpj=11788608) • 프로세스의 속도를 대강 잰 값. 몇몇 장치 드라이버에서 사용할 최적의 지연 루프 성능을 알아내기 위해 사용
… PCI: PCI BIOS revision 3.00 entry at 0xf0031, last bus=4 PCI: Using configuration type 1 for base access … PCI: MCFG configuration 0: base e0000000 segment 0 buses 0 – 255 … • PCI 버스에 대한 정보 수집과 점검
다음 네트워킹, 마우스 포트, 시리얼 드라이버를 설정 serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A • 이후 리얼타임 클록, 플로피 드라이브등 기타 하드웨어의 인식 결과가 나온다.(만일 시스템에 존재 한다면)
Adding 19599292k swap on /dev/sda3. Priority:-1 extents:1 across:19599292k • 위의 줄에서는 커널이 발견한 스왑 영역의 양을 보여준다. • 그 외 전형적인 부트 과정에는 병렬 포트 발견/설정, 네트워크 카드 인식/설정, USB 서브시스템 설정 등이 포함된다.
- init, inittab, and rc파일 • 부팅되면서 장치 드라이버가 초기화되면, 커널은/etc (/bin 혹은 /sbin일 수 도 있다.)에 있는 init 프로그램 실행. init: 다목적 프로그램. 새로운 프로세스를 생성하거나 프로그램이 종료되었을 때 다시 시작. 예시: init은 getty프로세서를 실행시킨 뒤, 사용자를 기다린다. 사용자가 오면 getty는 login을 실행한 뒤 꺼진다. 이후 login이 완료되고 꺼지면 init에서 다시 getty프로세서를 실행한다.
inittab파일은 init의 동작 제어를 위한 파일이다. /etc 에 존재한다. • 실행 레벨(run level)은 현재의 시스템 상태를 명시하는 숫자이다. 0: 종료, 1: 단일 사용자, 2~5: 다중사용자, 6: 재부팅 • 시스템의 실행 레벨이 3으로 변경되면 /etc/inittab에서 실행 레벨 3으로 되어있는 명령들을 실행한다.
실행레벨 1: 최소한의 설정 스크립트를 실행 실행레벨 2: 실행레벨 1+ 네트워크 설정을 실행 실행레벨 3: 실행레벨 1,2 + 전화 접속 로그인을 허용 … • 이런 식으로 실행레벨이 정의되어있다. • 레드햇과 수세 배포판에서는 실행레벨 5에서 X윈도우 시스템 그래픽 인터페이스 시작 • 데비안: 실행레벨 2~5 이용
rc파일에는 리눅스의 시동 명령의 집합 • 앞서 스샷에서 봤듯이 실행 레벨에 따라 구분되어 저장된다. K00xxxx: 기존의 서비스를 죽이는 스크립트 S00xxxx: 새로운 서비스를 시작하는 스크립트 • 00에는 숫자가 들어가며, 이 숫자가 작을수록 먼저 실행된다.
Single-User Mode단일 사용자 모드 • 보통 ‘다중’ 사용자 모드로 이용. • 그러나 설치 중 문제가 발생하거나, 손상된 파일시스템을 점검하거나 할 때 ‘단일’ 사용자 모드 이용 • 아주 기본적인 설정만 되어있는 상태이며, 파일시스템은 언마운트 되어 있다. • 단일 사용자 모드에서 기본적으로 슈퍼유저(root)가 된다.
Shutting Down the System시스템 셧다운하기 • 디스크 읽기/쓰기를 메모리에 버퍼. • 따라서 전원이 나가면 버퍼가 디스크에 쓰이지 않기에 자료 상실. • 커널에서 약 5초마다 더티버퍼를 디스크에 씀. • 그러나 정상적인 종료가 가장 안전하다. shutdown [옵션] [시간] [메시지] 옵션: -h(종료), -r(리부팅), -c(취소), -k(경고)
Managing User Accounts사용자 계정 관리 • 사용자는 보통 사용자와 가상 사용자로구분 • 시스템 데몬에서 이용하는 것이 가상 유저. • 시스템 관리를 하려면 이러한 유저들을 추가, 수정, 삭제 등의 작업을 할 수 있어야 한다. • 유저정보, 그룹정보, 사용자의 추가, 삭제, 수정, 정지 등의 방법
- passwd파일 • 모든 계정은 /etc/passwd파일에 기록되어있다. • 형식: username:password:uid:gid:gecos:homedir:shell • 예시: root:ZxPsI9ZjiVd9y:0:0:The root of all evil:/root:/bin/bash aclark:BjDf5hBysDsii:104:50:Anna Clark:/home/aclark:/bin/bash
- 섀도우 패스워드 • 암호화된 패스워드를 일반 사용자에게 노출하는 것은 보안상 위험 • /etc/passwd의 패스워드 항목에 x나 *만 표시 • /etc/shadow에 암호화된 패스워드 저장 • pwconv와 같은 프로그램을 이용하여 구현할 수 있다. (보통의 배포판에서는 이미 사용) • 데비안의 경우: shadowconfig on
- PAM과 기타 인증 방식 • 각자 원하는 보안에 대한 레벨이 다르다. • 커버로스등 다른 인증 방식들도 존재. • 그러나 다른 인증방법을 사용하기 위해서는 사용자 인증에 관련된 모든 프로그램을 새로 컴파일 해야 한다. • PAM(Pluggable Authentication Methods): 교체 가능 인증 방식
- 그룹 파일 • –l 옵션을 통해 디렉토리의 파일을 살펴보면 아래 그림과 같이 파일 정보가 같이 보인다. • 여기서 녹색으로 동그라미 친 부분이 그룹에 관한 정보이다. • 이러한 그룹들은 /etc/group에 저장되어 있다. groupname:password:gid:members • 그룹 추가: /etc/group 수정 or gpasswd이용
- 계정 만들기 Way 1 • /etc/passwd에 항목 추가. 사용자 홈 디렉토리 생성. 사용자 기본 설정 파일 복사 등등 Way 2 • adduser명령 사용(리눅스종류에 따라 useradd일 수도 있음)
- 계정 삭제와 비활성화 • /etc/passwd에서 해당 항목 삭제. /etc/group에서 해당 유저 제거. 사용자의 홈 디렉토리 제거. or • userdel명령 이용. userdel[옵션] [username] 옵션: –r(홈 디렉토리도 같이 제거) • 사용자가 생성, 소유한 기타 파일 제거
보통 기타 파일(수동으로 지워야하는 파일)은 중요하지 않기에 나둬도 상관 없다. • 지우는 경우, 해당 사용자와 관련된 파일을 찾아야 하는데, 찾는 방법은 find 명령을 사용하면 쉽게 찾을 수 있다. find [디렉토리] [옵션] [옵션 값] –ls 옵션: –user[username], –uid[num] • 계정 정지: passwd파일의 암호란 앞에 *추가
- 사용자 계정 수정 • 사용자 계정이나 그룹의 속성을 수정하려면 간단히 /etc/passwd, /etc/group 을 수정. • usermod혹은 groupmod명령 이용. • 사용자 ID 수정은 /etc/passwd파일에서 해당 부분 수정 후, chown명령 이용. chown–R[username] [homedir] • chown: 새로운 사용자 ID를 위해 사용자가 소유하던 파일의 소유권을 변경하는 명령
- sudo명령 권한 • su, 혹은 sudo명령을 통해root와 같은 권한으로 명령을 실행 할 수 있다. • 그러나 일반 사용자에게 이런 명령을 사용하게 하는 것은 앞서 지적했던 여러 가지 문제가 발생할 수 있다. • 따라서 wheel 그룹을 생성하여, 여기에 속한 사람들만 sudo명령을 사용할 수 있게 한다. • 이를 이용할 수 있는 유저들이 /etc/sudoers에 기록되어 있다.