리눅스마스터 1급 실기 기출문제 해설/보충설명 1501


시험종목 : 제1501회 리눅스마스터 1급 2차
시험일자 : 2015. 5. 9(토) 14:00 ~ 15:40(100분)

단답식 1~10
cap-2016-11-06-16-13-43-518
답 :  ① -G (––groups)    ② -s (––shell)    ③ -G

useradd
-u : 사용자의 UID 값을 지정
-d : 홈 디렉터리를 지정
-g : 기본 그룹을 지정
-G : 기본 그룹이외에 추가로 그룹에 속하게 할 경우에 쓴다.

usermod
사용자 계정 관리
사용자의 Shell, 홈 디렉터리, 그룹, UID, GID 등을 변경하는 명령어로 사용자 관련하여 대부분의 정보를 변경할 수 있다.
-l : 사용자의 아이디를 변경한다.
-s : 사용자의 Shell 을 변경한다.
-e : 만기 일자를 지정하거나 변경
-c : 사용자의 설명을 변경
-G : 부그룹 설정을 지정하거나 변경
-d : 사용자의 홈 디렉터리를 변경한다. 변경할 디렉터리는 미리 생성되어야 한다. -m과 같이 사용하면 사용하던 홈 디렉터리의
파일과 디렉터리도 같이 옮겨주므로 이경우에는 디렉터리를 생성하지 않아도 된다.
-m 사용자의 홈디렉터리 변경시 기존에 사용하던 파일 및 디렉터리를 옮겨주는 옵션으로 -d 와 함께 쓰인다.
-e : 계정만기일을 변경한다. YYYY-MM-DD 또는 MM/DD/YY 형태로 지정한다.

cap-2016-11-06-16-34-33-036답 : ① t   ② 8e

Command (m for help): t
Hex code (type L to list codes): 8e

Command (m for help): 에서 m 을 누르면 명령어 목록을 보여준다. 파티션 테이블 변경은 t
cap-2016-11-06-16-55-15-066
Hex code (type L to list codes): 에서 L 을 누르면 명령어 목록을 보여준다. LVM 시스템은 8e
cap-2016-11-06-16-59-21-244

기존의 리눅스 시스템에 새로운 HDD를 추가하는 순서
1. 하드디스크 설치
2. fdisk 로 파티션 생성
3. mkfs 명령어로 파일 시스템 생성
4. 마운트할 디렉터리 생성
5. mount 명령으로 마운트
6. /etc/fstab 파일을 수정하여 자동으로 마운트되도록 설정

새로운 디스크를 추가한후 사용하기 까지의 순서
fdisk > mkfs > mkdir > mount
파티션작업(fdisk) > 파일시스템생성(mkfs) > 마운트포인터생성(mkdir) > 마운트작업(mount)

cap-2016-11-06-17-09-01-108
답 : ① renice    ② 10 또는 +10 또는 –n 10

renice 10 4305

renice
실행중인 프로세스의 우선순위를 변경할 때 사용하는 명령으로 프로세스ID(PID), 사용자 이름, 프로세스의 그룹ID 를 이용한다.
nice 는 프로세스명으로 우선순위를 조정하고, 명령을 실행하면 새로운 프로세스가 추가로 발생되지만, renice 는 주로 PID 를 사용하고 기존의 프로세스를 교체하여 조정한다.

사용법
# renice [option] NI값 PID

옵션
-p : PID를 지정하는 옵션(기본값)
-u : 사용자 이름을 지정하는 옵션
-g : 프로세스의 그룹 ID를 지정하는 옵션

NI : 프로세스에 설정되어 있는 NI의 기본값은 0 이고 지정가능한 값의 범위는 -20 ~ 19 까지인데 값이 작을수록 우선순위가 높다. 일반 사용자는 NI값을 증가만 가능하고 root 사용자만이 NI 값을 감소시켜 우선순위를 높일 수 있다.

cap-2016-11-06-18-02-12-536답 : rpmbuild

# rpmbuild -ba vsftpd.spec

rpmbuild : 리빌드 모드
rpm 소스파일인 .src.rpm 파일을 패키지 파일로 만드는 모드로서 rpmbuild 라는 명령어를 사용한다.

사용법
# rpmbuild [option] 소스패키지

옵션
––rebuild : 소스 rpm 파일을 이용해서 rpm 패키지를 생성할 때 사용한다.

ex)
# rpmbuild ––rebuild gftp-2.0.19-8.fc18.src.rpm

cap-2016-11-06-18-26-54-272

답 : /sbin/grub-install (–recheck) 또는 grub-install (–recheck)

# grub-install /dev/sda

리눅스의 대표적인 부트 매니저 프로그램에는 LILO(Linux Loader) 와 GRUB(Grand Unified Bootloader) 가 있다.
GRUB 는 GNU 프로젝트에서 만든 부트로더로 LILO에 비해 다양한파일 시스템을 지원하고 부팅 시에 커널 인자를 조정하여 동적인 부팅을 지원한다.

grub-install
부트 로더에 문제가 있어 정상 부팅이 안될 경우 grub-install를 사용하여 복구한다.
grub-install [옵션] DEVICE
ex) grub-install /dev/sda

cap-2016-11-06-18-32-18-060

답 : ① /dev/sdb1    ② /backup    ③ ext3

/etc/fstab
이 파일은 파일 시스템에 대한 다양한 정보를 담고 있는 파일로 부팅 시에 마운트할 파티션 정보가 기록되어 있는 파일이다.
파티션 정보를 변경하거나 디스크를 추가한 경우 이파일에 등록해야만 부팅 시에 자동으로 마운트할 수 있다.
파일 시스템 체크 횟수 항목은 없다!!

fstab 의 필드 구성
첫 번째 – 장치명이 기록되는 영역이었으나 최근 배포판 리눅스에서는 볼륨 라벨(Volume Lable) 이나 UUID 가 대신 사용되고 있다.

두 번째 – 마운트될 디렉터리(Mount point) 를 나타낸다.

세 번째 – 파일 시스템 유형을 나타낸다.

네 번째 – 마운트될 때의 옵션을 나타낸다.

다섯 번째 – dump 명령을 통한 백업 시 레벨 덤프 사용 주기를 결정하는 부분으로 0 이면 dump 를 사용하지 않고 1 이면 매일 수행, 2 이면 이틀에 한번 수행한다.

여섯 번째 – 부팅 시 파일 시스템을 점검하는 fsck 명령의 순서를 정한다.

<file system> <mount point> <type> <options> <dump> <pass>

cap-2016-11-06-18-46-06-983답 : /var/log/dmesg

로그 관련 주요 파일
/var/log/messages – 시스템에서 발생하는 표준 메시지가 기록되는 파일

/var/log/secure – 인증에 기반한 접속과 관련된 로그가 기록되는 파일

/var/log/dmesg – 시스템이 부팅할 때 출력되었던 로그가 기록되는데 보통 커널 부트 메시지 로그 라고 한다.

/var/log/mailog – 메일 관련 작업이 기록되는 로그 파일

/var/log/xferlog – FTP 접속과 관련된 작업이 기록되는 파일

/var/log/cron – cron 관련 정보가 기록되는 파일

/var/log/boot.log – 부팅시 발생되는 메시지가 기록되는 파일

/var/log/lastlog – telnet 이나 ssh 를 이용해서 접속한 각 사용자의 마지막 정보가 기록되는 파일

/var/log/wtmp – 콘솔, 텔넷, ftp 등을 이용하여 접속한 사용자의 기록, 시스템 재부팅 기록등의 로그가 기록되는 파일

/var/log/btmp – wtmp 와 반대되는 로그로 접속이 실패한 경우를 기록한다.

cap-2016-11-06-18-49-55-584 cap-2016-11-06-18-50-02-704답 : ① 0 또는 00  ② 4 또는 04    
③ *    ④ *    
⑤ 1,3,5 또는 mon,wed,fri

0 4 * * 1,3,5 root /etc/backup.sh

cron 을 이용하여 주기적으로 실행하는 작업은 시스템 운영에 필요한 작업과 사용자의 필요에 의한 작업으로 나눌 수 있다.
실행에 필요한 작읍은 root 권한으로 /etc/crontab에 등록하여 주기적으로 수행할 수 있고 사용자는 crontab라는 명령을 수행해서 등록할 수 있다.
crontab 파일은 다음과 같이 총 7개의 필드로 구성되어 있다.
<minute>    <hour>    <day_of_month>    <month>    <day_of_week>    <user-name>    <command>

ex)
10 1 1 1-12/2 * /etc/joon.sh
1월부터 12월까지 2개월마다 1일날 오전 1시 10 분에 실행
실행파일 경로는 /etc/joon.sh

0 0-23 * * * * /usr/bin/rdate -s time.bora.net
매 시간 정각에 시간을 동기화하는 작업을 crontab에 등록하는 명령
‘*’는 모든(all) 을 의미하고, ‘-‘는 연결된 설정 값을 지정할 때 ‘,’은 연결되지 않은 값을 나열할 때 ‘/’는 연결된 설정 값 범위에서 특정 주기로 나눌 때 사용한다.

5 4 * * 1,3,5 /etc/log.sh
로그를 점검하는 스크립트인 /etc/log.sh 를 매주 월, 수, 금요일 새벽 4시 5분에 실행

0 12 * * 1-5 /home/posein/work.sh
월요일부터 금요일까지 오후 12시에 /home/posein/work.sh 스크립트를 실행

22 4 ** 0 /root/backup.sh
매주 일요일 4시 22분에 /root/backup.sh 스크립트를 실행

cap-2016-11-06-19-03-38-456답 : ① 10    ② password

GRUB(grand Unified BootLoader)
GNU 프로젝트에서 만든 부트로더로 LILO 에 비교하여 다양한 파일 시스템을 지원하고, 부팅 시에 커널 인자를 저정하여 동적인 부팅을 지원한다.

/boot/grub/grub.conf 환경 설정 파일
timeout : GRUB 메뉴 화면에서의 대기 시간으로 단위는 초이다.
default : 기본적으로 부팅되는 운영체제를 설정하는 항목으로 GRUB 메뉴 화면에서 선택하지 않았을 때 이값을 기준으로 운영체제가 선택된다. 설정 값은 숫자로 입력하는데 grub.conf 에 나열된 title 순서이다.

cap-2016-11-06-19-25-26-477답 : ① z    
② date +%m%d 또는 date ‘+%m%d’ 또는 date +’%m%d’ (” ” 도 정답 인정)

tar cvfz /back/backup_date +%m%d.tar.gz .

tar(tape archive)
테이프 관련 장치를 이용하여 백업할 때 사용하는 명령이었으나 현재는 여러 파일들을 하나의 파일로 묶어주는 명령으로 사용한다.

-Z : compress 관련 옵션으로 예전 UNIX 계열 표준 압축 파일인 tar.Z 에 사용한다.
-J : xz 관련 옵션으로 압축 파일인 tar.xz 에 사용한다.
-z : gzip 관련 옵션으로 압축 파일인 tar.gz 에 사용한다.
-j : bzip2 관련 옵션으로 압축 파일은 tar.bz2 에 사용한다.

압축률이 높은 순서
xz > bzip2 > gzip > compress

작업식 11-16
cap-2016-11-06-19-41-17-315답 : ① allow    ② deny    ③ all

아파치 웹 서버
소스가 공개되어 있는 공개 소프트웨어
멀티스레딩을 지원
PHP, JSP 등 다양한 웹 프로그래밍 언어를 지원

<Directory/>
 Options FollowSymLinks
 AllowOverride None
 Order deny,allow
 Deny from all
</Directory>

[Options 항목]
NONE, ALL, Includes, FollowSymLinks, ExecCGI, IncludesNOEXEC, MultiViews 

[AllowOverride 항목]
NONE, ALL AuthConfig, FileInfo, Indexes, Limit, Options

[Order 항목]
Order 명령은 해당 디렉터리에 대해 IP주소 및 도메인에 대한 필터링 순서를 설정한다. 
Allow 는 호스트 접근을 허락하며, Deny 는 접근을 불허한다. 
Allow from all 은 모든 호스트로부터의 접근을 허락
Deny from all 은 모든 호스트로부터의 요청을 거부

ex) 
Order deny,allow
Deny form all
Allow form 호스트명

cap-2016-11-06-21-30-25-711
답 : ① ihd    ② org

LDAP (Lightweight Directory Access Protocol 경량 디렉터리 접근 규약)
IP프로토콜을 기반으로 사용자, 시스템, 네트워크, 서비스 정보 등의 디렉터리 정보를 공유할 수 있다.
리눅스와 리눅스간의 설정 데이터를 배포하기 위해 사용되는 프로토콜로 인증을 위한 다른 서비스에 자주 사용된다.
초기에는 X5000 이라는 서비스와 통신할 수 있는 게이트웨이 프로토콜로 설계되었고 현재는 Version 3 이 출시되었다.
조직이나 객체 그리고 인터넷이나 기업의 인트라넷 등 네트워크상에 있는 파일이나 장치와 같은 자원의 위치를 찾을 수 있게 해주며 디렉터리 서비스를 조회하고 수정하는 응용 프로토콜 이다.

c – 국가 이름
st – 주(한국의 도) 이름
o – 조직(회사) 이름
ou – 조직의 부서 이름
cn – 일반적으로 이름과 성의 조합
sn – 성을 나타냄
dc – 도메인 네임의 요소
mail – email 주소

cap-2016-11-06-21-30-42-038
답 : ① /etc/mail/virtusertable    ② makemap hash

/etc/mail/virtusertable
하나의 메일 서버에 여러 도메인을 사용하는 환경에서 동일한 메일 계정을 요구할 때 각각의 도메인으로 도착하는 메일을 포워딩할 때 사용하는 파일.
ex)
예를 들어 linux.com 과 windows.com 이라는 도메인을 사용중이고 각 회사에서 ceo 라는 동일한 이메일 계정을 요구하는 경우
# vi /etc/mail/virtusertable
ceo@linux.com           posein
ceo@windows.com    yuloje
@posein.org                posein@naver.com
ceo@linux.com으로 들어오는 메일은 posein에게 전달하고,  ceo@windows.com 로 들어오는 메일은 yuloje 에게 전달.
@posein.org 로 들어오는 모든 메일은 posein@naver.com 으로 전달.

센드메일이 참고하는 파일은 /etc/mail/virtusertable.db 이므로 변경시 makemap hash 명령을 사용해야 한다.
ex)

makemap hash /etc/mail/access < /etc/mail/access

cap-2016-11-06-21-30-59-160답 : ① 3H 또는 10800 (소문자, 단위 S 정답 인정)    
② 15M 또는 900 (소문자 정답 인정)

③ 1W 또는 604800 또는 7D (소문자 정답 인정)

존 설정파일 주요 타입
A : IPv4의 주소를 기입할 때 사용
AAAA : IPv6의 주소를 기입할 때 사용
NS : 도메인의 네임 서버를 지정할 때 사용
MX : 메일 서버를 지정할 때 사용한다.
CNAME : Canonical Name 레코드의 일종으로 alias를 지정할 때 사용
PTR : 리버스 존에서만 사용하는 레코드로 IP주소를 도메인으로 변환하기 위해 지정한다.

SOA record
존 파일을 시작하는 레코드로 시작은 도메인명 또는 도메인명을 나타내는 기호인 @ 를 사용한다. 
ex)
$TTL 84600
@ IN    SOA    exam1.com.    exam2.com.

cap-2016-11-06-21-31-14-142답 : ① routers 192.168.0.1    
② subnet-mask 255.255.255.0    

③ domain-name “example.com”    
④ domain-name-servers 192.168.1.1

DHCP(Dynamic Host Configuration Protocol)
클라이언트에게 자동으로 IP주소, Gateway 주소, Name Server 주소 등을 할당해주는 서버를 말한다.

dhcpd.conf 의 설정
option routers : 게이트웨이 주소를 지정할때 사용한다.
option domain-name : 도메인명을 지정할 때 사용한다.
option domain-name-servers : 네임서버를 지정할 때 사용하는 항목으로 도메인 또는 IP주소를 기입힌다.
range dynamic-bootp : DHCP 클라이언트뿐만 아니라 BOOTP 클라이언트도 함께 할당할 경우에 사용한다.
default-lease-time : 임대를 요청하는 클라이언트가 특정한 만료 시간을 요청하지 않았을 경우에 할당되는 시간으로 단위는 초이다.
max-lease-time : 임대를 요청한 클라이언트가 IP주소를 가지고 있을 수 있는 최대시간으로 단위는 초이다.

cap-2016-11-06-21-31-27-525답 : ① -P    ② -A    ③ -i    ④ –

iptables
패킷 필터링 도구로서 방화벽 구성이나 NAT에 사용된다.

사용법
# iptables [-t table] action chain match [-j target]
테이블(table) 의 기본 설정은 Filter 이고, 다른 테이블을 지정할 때에는 -t 옵션을 사용해서 사용한다.
액션(action) 은 사슬을 지정, 설정, 제어할 때 사용하는데 주로 -N, -P 와 같은 대문자 옵션을 사용한다.
사슬(chain) 을 설정하고 사용하는 사슬을 명기하는데 INPUT, OUTPUT 과 같이 입력한다.
마지막으로 실질적인 룰에 해당하는 매치(match)와 타겟(target)을 지정한다.
매치는 -d, -p 와 같은 소문자 옵션을 사용해서 설정하고, 타겟은 -j 옵션을 사용하여 설정한다.

사슬
INPUT : 패킷 필터링 및 방화벽 관련 정책들을 설정하는 사슬로 실제적인 접근 통제를 담당하는 역할을 수행
OUTPUT : 다른 시스템으로의 접근을 차단할 때 사용하는 사슬로 리눅스 시스템 자체가 생성하는 패킷을 제어하는 사슬
FORWARD : 리눅스 시스템을 통과하는 패킷을 관리하는 사슬로 한 네트워크를 다른 네트워크와 연결하기 위해 iptables 방화벽을 사용해서 두 네트워크 간의 패킷이 방화벽을 통과하는 경우에 사용되고, NAT 기반으로 하나의 공인 IP를 여러대의 사설 IP를 사용하는 시스템들을 공유해서 사용할 경우 사설 IP를 사용하는 시스템의 접근 제어 정책을 설정할 때 사용한다.

주요 액션
-N : 새로운 사용자 정의 사슬을 만든다.
-P : 사슬의 기본 정책을 설정한다.
-F : 사슬로부터 규칙을 제거한다.
-A : 사슬에 새로운 규칙을 추가한다.
-R : 사슬의 규칙을 교환한다.
-D : 사슬의 규칙을 제거한다.

주요 매치
-s : 출발지 IP주소나 네트워크와 매칭
-d : 목적지 IP주소나 네트워크와 매칭
-p : 특정 프로토콜과 매칭
-i : 입력 인터페이스와 매칭
-o : 출력 인터페이스와 매칭

주요 타겟 -j
ACCEPT : 패킷을 허가하는 것으로 본래 라우팅 대로 진행
DROP : 패킷을 거부하는 것으로 더 이상 어떤 처리도 수행되지 않고 버림
LOG : 패킷을 syslog 에 전달하여 기록.
REJECT : 패킷을 버리고 동시에 적당한 응답 패킷을 전달
RETURN : 호출 사슬 내에서 패킷 처리를 계속 진행