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


시험종목 : 제1602회 리눅스마스터 1급 2차
시험일자 : 2016. 11. 12.(토) 14:00 ~ 15:40(100분)

1602 1급2차 기출문제

바로가기 >> 리눅스마스터 기출문제 목록

정답
① usermod
② -L ( lock)
③ -e 2017-11-20
④ -f 7
(③번과 ④번은 정답 순서 바뀌어도 무관)

usermod
사용자 계정 관리
사용자의 Shell, 홈 디렉터리, 그룹, UID, GID 등을 변경하는 명령어로 사용자 관련하여 대부분의 정보를 변경할 수 있다.
usermod -e : 만기 일자를 지정하거나 변경. YYYY-MM-DD 또는 MM/DD/YY 형태로 지정한다.
usermod -f : 패스워드 만기일이 지난 후 패스워드에 Lock 을 설정할 유예기간을 지정한다.

사용자를 삭제하지 않고 로그인을 막는 방법
/etc/shadow 파일에서 암호 부분에 ‘ * ‘와 같은 문자를 삽입
또는 usermod L 사용자계정


① mkdir

② fdisk (parted)
③ mkfs.ext4 또는 mkfs -t ext4 또는 mke2fs t ext4
④ /etc/fstab

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

*해당 문제에서는 마운트포인터를 먼저 생성하였음

mkdir : 디렉터리 생성 명령어

fdisk
디스크 파티션을 확인하고 추가/삭제하는 명령으로 설정 후에는 반드시 재부팅을 해야 한다.
옵션
-l : 현재 디스크의 파티션 테이블 정보를 출력
-s partition : 특정 파티션의 크기를 출력. 단위는 block.
-v : fdisk의 버전을 출력한다.

fdisk 명령을 실행하면 텍스트 기반의 특정 명령어를 입력해야 파티션을 설정할 수 있다.
fidisk 실행 시 주요 명령
p : 현재 디스크 정보를 출력한다.
d : 파티션을 삭제한다.
n : 파티션을 새롭게 생성한다.
t : 파티션의 속성을 변경한다.(= 파티션의 시스템 id 를 변경한다.)
w : 변경된 파티션의 정보를 저장하고 종료한다.
q : 변경된 파티션의 정보를 저장하지 않고 종료한다.

mkfs
새로운 파일 시스템을 만드는 명령으로 root만 사용 가능하다.
-l 파일명 : 지정된 파일명으로부터 배드블록(Bad Block)목록 읽기
-t : 파일 시스템의 유형을 지정하는 옵션
-c : 배드 블록(bad block)을 체크한 후 파일 시스템을 구축한다.
-v : 작업상태와 결과를 상세히 출력한다.
-V : 자세한 정보 보기

mount 마운트
-t fs_type : 파일시스템의 유형을 지정하는 옵션
-o : 마운트할 때 추가 설정을 적용할때 사용하는 옵션으로 다수의 조건을 적용할 때는 콤마로 구분한다.

-o 의 주요항목
-o ro : 읽기 전용으로 마운트한다.
-o rw : 읽기/쓰기 모드로 마운트한다. (기본값)
-o remount : 해당 파티션을 다시 마운트한다. 파티션 정보를 바꾸었을 때 사용한다.
-o loop : loop 디바이스로 마운트할 때 사용.

정답
① uptime
② meminfo
③ cmdline
④ loadavg

/proc
가상 파일 시스템으로 시스템에서 운영되고 있는 다양한 프로세스의 상태 정보, 하드웨어 정보, 기타 시스템 정보 등을 담고 있다.

/proc 디렉터리의 주요 정보 파일 및 디렉터리
acpi : 전원관련 정보를 담고 있는 디렉터리
bus : pci 와 같은 bus 정보를 담고 있는 디렉터리
cmdline : 부팅 시에 실행되는 커널 관련 옵션에 대한 정보를 담고 있다.
cpuinfo : CPU에 관한 정보를 담고 있다.
devices : 현재 커널에 설정된 디바이스 드라이버의 리스트 정보를 담고 있다.
dma : 시스템에서 사용중인 DMA 정보를 담고 있다.
filesystems : 커널에 설정된 파일 시스템의 리스트 정보를 담고 있다.
interrupts : 시스템에서 사용중인 인터럽트 정보를 담고 있다.
iomem 메모리 번지별로 할당된 리스트 정보를 담고 있다.
ioports : 시스템에서 사용중인 I/O 주소를 담고 있다.
kcore : 시스템에 장착된 물리적 메모리의 이미지로 실제 하드디스크의 용량을 차지하지 않는다.
loadavg : 최근 1분, 5분, 15분 동안의 평균 부하율을 기록하는 파일이다.
meminfo : 물리적 메모리 및 스왑 메모리 정보가 들어있는 파일이다.
misc : 기타 장치에 대한 정보가 들어 있는 파일이다.
mounts : 시스템에 마운트된 정보가 들어 있는 디렉터리이다.
net : Network 관련 정보 파일이 들어 있는 디렉터리
partitions : 현재 활성화된 파티션 정보를 기록하고 있는 파일이다.
scsi : SCSI 관련 정보를 기록한 파일이 들어 있는 디렉터리이다.
swaps : 스왑 파티션 관련 정보를 기록한다.
sys : 커널과 관련된 정보를 담고 있는 디렉터리로 sysctl 명령으로 제어한다.
sysvipc : SysV IPC 지원 정보인 Messages Queues, Semaphores, Shared Memory 관련 파일을 정보 파일이 들어있는 디렉터리
uptime : 시스템 가동 시간에 대한 정보를 기록한다. uptime 명령어가 참조하는 파일.
version : 커널 버전 정보를 기록한다.
mdstat : RAID 사용시에 관련 정보를 기록한다.

정답
① -qip (옵션의 순서는 무관하다. -q 옵션은 query로 사용 가능)
② -V(대문자 V) 또는 verify
③ rebuilddb

RPM(Red Hat Package Manager)
레드햇사에서 만든 패키지 관리기법으로 프로그램을 .rpm 형태의 파일로 배포하고, rpm 명령을 사용하여 손쉽게 설치 및 갱신, 제거, 검증, 질의 등의 관리를 할 수 있다.

rpm 사용법
rpm 명령의 사용법은 설치 및 갱신, 제거, 질의, 검증, 리빌드모드 등 총 5가지로 나눌 수 있다.

설치 및 갱신모드
새로운 패키지를 설치하거나 갱신할 수 있다.
-i : 새로운 패키지를 설치할 때 사용한다.
rebuilddb : 리눅스 운영중에 rpm 패키지들의 정보를 저장하고 있는 데이터베이스가 손상되었을때 rpm 데이터베이스를 새롭게 생성하는 명령
특정한 패키지 설치 후에 rpm 패키지를 검색했으나 나타나지 않을 때 rpm 데이터베이스를 업데이트할 때 사용하는 명령

제거모드
설치된 패키지를 제거한다. 패키지를 제거 할 때는 -e 옵션을 사용한는데, 다른 패키지에 대한 의존성이 발생할 경우에는 제거되지 않는다. 의존성이 발생한 패키지를 제거하기 위해서는 먼저 의존성 관련 패키지를 제거하거나 nodeps 옵션을 지정해야 한다.
ex) rpm -e httpd nodeps

질의모드
패키지 관련 정보를 알아내기 위해 -q 옵션을 사용한다. -q 옵션만 사용하면 패키지 설치 유무나 간단한 버전정보만 출력한다.
더욱 정확한 정보출력을 위해서 -i, -a, -l, -d 등의 옵션과 연동해서 쓴다.
-q : 질의시 꼭 사용해야 하는 옵션. 패키지를 찾으면 이름과 버전만 표시
-i : 설치된 패키지의 정보를 출력한다. -p 옵션과 같이 사용하면 rpm 패키지 파일에 대한 정보를 알 수 있다.
-p 패키지 파일명 : rpm 패키지의 파일에 대한 정보를 보여준다. 이 옵션을 사용하려면 패키지 파일의 정확한 이름을 입력해야 한다.

검증모드
검증모드는 rpm 데이터베이스에 저장되어 있는 패키지의 메타데이터 정보를 이용하여 변경된 정보를 찾아내는 모드이다.
-V( verify) 옵션을 사용하고 파일의 크기, 허가권, 소유권, 파일 형식 등에 대한 변경 정보를 출력한다.
-V : 검증시 사용하는 기본 옵션
-a : 모든 패키지를 검사할 때 사용

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

정답
① depmod
② modules.dep
③ make clean
④ make mrproper

정답
① lpr
② -# 2
(②번과 ③번은 순서 무관)
③ -P lp
④ lpq 또는 lpstat

lpr : 프린터 작업을 요청하는 명령
lpq : 프린터 큐(Queue) 에 있는 작업의 목록을 출력는 명령.프린터 작업상태를 확인할 수 있는 명령어
lprm : 프린터 큐에 대기중인 작업을 삭제하는 명령
lpc : 라인 프린터 컨트롤 프로그램 으로 프린터나 프린터 큐를 제어할 때 사용.
lp : System V 계열에서 사용하는 인쇄 명령으로 BSD 계열의 lpr 명령과 유사하다.
lpstat : 프린터 큐의 상태를 출력 해주는 명령. 프린터 작업 상태를 확인할 수 있는 명령

lpr
프린터 작업을 요청하는 명령
-# 값 : 인쇄할 매수(1-100)를 지정하는 옵션
-m : 작업이 완료되면 관련 정보를 E-mail 로 전송한다.
-P 프린터명 : 기본 설정된 프린터 이외에 다른 프린터를 지정할 때 사용한다.
-T : 타이틀 페이지에 들어갈 타이틀명을 설정한다.
-r : 출력한 뒤에 지정한 파일을 삭제한다.
-l : 필터링 없이 직접 보낸다.

정답
① authpriv.*
② root,ihduser

 

rsyslog
syslog 를 대체하는 시스템 로그 및 커널 메시지 관련 데몬으로 최근 리눅스는 이 로그 데몬을 사용한다.
멀티 스레드를 지원하고 TCP 프로토콜도 지원하다.
아울러 MySQL, Oracle 과 같은 데이터베이스 로그 관리도 가능하다.
rsyslogd 데몬이 동작하면서 로그를 기록하고, 데몬의 동작은 /etc/rc.d/init.d/rsyslog 라는 스크립트를 이용한다.
관련 환경 설정은 /etc/rsyslog.conf 파일을 통해 제어한다.

기본 구성 형식 : facility.priority action

facility 의 종류 : corn, auth, authpriv, kern, lpr, mail, * 등등
priority 의 종류 : none, debug, info, notice, warning, warn, error, err 등
action 의 종류 : file, @host, user, * 등등

ex)
authpriv.* root
인증 관련 로그를 root 사용자의 터미널로 전송

authpriv.* *
인증 관련 로그를 모든 사용자의 터미널로 전송

정답
① last
② reboot
③ lastlog
④ -u ihduser

로그 관련 명령어
last
사용자의 로그인 정보, 재부팅한 정보를 출력해 주는 명령으로 바이너리 파일인 /var/log/wtpm 의 내용을 출력한다.
사용예
last 사용자 : 해당 사용자의 로그인 정보를 출력
last reboot : 시스템이 재부팅된 정보를 출력

lastlog
사용자가 마지막으로 로그인한 정보를 출력해 주는 명령으로 바이너리 파일인 /var/log/lastlog 의 내용을 출력한다.
-u 사용자명 : 특정 사용자에 대한 정보만 출력
-t 날짜 : 오늘부터 지정한 날짜만큼 거슬러 올라가 그 이후에 로그인한 사용자의 정보를 출력
사용예
lastlog : 모든 사용자의 최종 로그 기록을 출력
lastlog -u 사용자 : 해당 사용자의 최종로그 기록을 출력

정답
① visudo
② ihduser
③ ALL

sudo 관련 명령어 및 설정파일
visudo
sudo 의 환경설정 파일인 /etc/sudoers를 편집할 때 사용하는 명령으로 vi 편집기가 실행된다.
sudo 를 설정하기 편집시 사용하는 명령어

sudo
일반사용자가 root 권한 획득을 위해 사용하는 며령으로 /etsudoers 에 설정된 유저가 사용하는 명령이다.

/etc/sudoers
sudo의 환경설정 파일로 특정 사용자에게 부여할 root 권한 명령을 지정한다. 이 파일은 보통 visudo 라는 명령을 이용해서 편집한다.
사용예
사용자 ALL=ALL
해당 사용자에게 root 권한과 관련된 모든 명령을 접속한 곳에 상관없이 사용 가능하도록 설정
사용자 ALL=/usr/sbin/useradd, /usr/bin/passwd
해당 사용자에게 root 권한의 useradd 및 passwd 명령을 부여하는데, 접속한 곳에 상관없이 사용가능하도록 설정

정답
rsync -av /data 192.168.0.110:/backup

rsync
네트워크로 연결된 원격지의 파일들을 동기화하는 유틸리티.
옵션
-r : 하위 디렉터리까지 실행
-l : 심볼릭 링크를 그대로 보존
-p : 퍼미션을 그대로 보존
-t : 타임스탬프를 그대로 보존
-g : 그룹 소유권을 그대로 보존
-o : 소유권을 그대로 보존
-D : 디바이스 파일을 그대로 보존
-H : 하드링크를 그대로 보존
-a : -rlptgoD를 한번에 실행할때 사용하는 옵션
-v : 진행상황을 자세히 출력
-u : 업데이트된 내용만 전송
-z : 전송할때 압축

정답
① /etc/exports
② /data/presales *.example.com(rw,no_root_squash)

NFS 서버 설정 옵션
/etc/exports : NFS 서버 환경 설정 파일

설정법
공유할_디렉터리 허가할_호스트(옵션)

옵션
ro : 읽기 전용으로 지정하는 옵션. 기본값
rw : 읽기 및 쓰기가 가능하도록 지정하는 옵션

root_squash : NFS 클라이언트에서 접근하는 root 사용자를 무시하고 서버상의 nobody( 또는 nfsnobody) 로 매핑시키는 옵션으로 기본값이다. client가 root 라도 sever에 nobody로 mapping 함.

no_root_squash : NFS 클라이언트에서 접근하는 root 사용자를 무시하지 않고 root 로 인정한다.
client가 root면 server에도 root로 접근하게 함. 신뢰할 수 있는 사람에게만 허용할 것

all_squash : root 를 포함하여 모든 사용자의 권한을 nobody( 또는 nfsnobody) 로 매핑시킨다.

정답
① /etc/mail/virtusertable
② makemap hash

/etc/mail/virtusertable
하나의 메일 서버에 여러 도메인을 사용하는 환경에서 동일한 메일 계정을 요구할 때 각각의 도메인으로 도착하는 메일을 포워딩할 때 사용하는 파일.
센드메일이 참고하는 파일은 /etc/mail/virtusertable.db 이므로 변경시 makemap hash 명령을 사용해야 한다.
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 으로 전달.

정답
① aliases
② access
③ local-host-names

/etc/aliases
일종의 메일계정을 다른 메일주소나 다른 계정으로 매칭하는 기능을 한다.
특정 계정으로 들어오는 메일을 다른 계정으로 전송되도록 설정하는 파일이다.
보통 동일한 계정으로 들어오는 메일을 여러 사용자에게 전달하는 메일링 리스트가 필요한 경우에 유용하다.

/etc/mail/local-host-names
메일 서버에 사용하는 도메인을 설정하는 파일로 한 줄에 도메인 하나씩 기입하면 된다.
메일서버와 네임서버를 함께 운영한다면 반드시 설정이 필요하다.

/etc/mail/access
메일 서버로 접근하는 호스트나 도메인의 접근을 제어하는 파일.

정답
① /etc/xinetd.conf
② log_type
③ FILE
④ /var/log/xinetd.log

/etc/xinetd.conf
xinetd 데몬의 전체적인 환경설정을 담당하는 파일로 이곳에 설정하면 xinetd 데몬에서 관리하는 전체 서비스에 영향을 준다.

/etc/xinetd.conf 의 주요 항목
log_type : 어떠한 형태로 로그를 저장할 것인지를 지정
log_on_failure : 접속이 실패했을때 기록될 속성값을 지정하는 항목
log_on_success : 접속이 성공했을때 기록될 속성값을 지정하는 항목
cps : 초당 요청받은 수에 대한 제한을 설정하는 항목
instances : 동시에 서비스할 수 있는 최대 개수를 지정하는 항목. 접속제한을 두지 않으려면 UNLIMITED로 설정
per_source : 특정 IP 주소에서 접속할 수 있는 최대 개수를 지정
only_from : 서비스를 이용할 수 있는 원격 호스트를 설정한다.
no_access : 서비스를 이용할 수 있는 원격 호스트의 주소를 지정한다.
enabled : 사용가능한 서비스의 목록을 지정하는 항목으로 나열된 서비스명만 사용할 수 있다.

log_type
어떠한 형태로 로그를 저장할 것인지를 지정하는데 SYSLOG 와 FILE 두가지 설정이 가능하다.
SYSLOG 는 syslog 에 로그를 위임하는 것이고, FILE 은 직접 별도의 파일로 지정하는 것이다.
사용예
log_type = SYSLOG daemon info
관련 로그를 syslog 에 위임하고 facility 는 daemon, 레벨은 info 로 지정한다.
log_type = FILE /var/log/xinetd.log
관련 로그를 /var/log/xinetd.log 에 기록한다.

정답
① host
② ihd_pc
③ hardware ethernet
④ fixed-address

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

fixed-address
DHCP 서버에서 특정 호스트에게 고정된 IP를 할당하기 위한 설정

host posein_pc {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address 192.168.1.22;
}

정답
① nat
② POSTROUTING
③ -o
④ SNAT

 

NAT(Network Address Translation)의 개요
컴퓨터에서 인터넷을 사용하려면 IP 주소를 부여받아야 하고, 보통 이주소는 공인 IP 라 부른다.
그러나 IP 주소는 폭발적인 인터넷 사용인구의 증가로 인해 부족해지는 현상이 나타났고 부족한 현상을 해결하는
방안 중의 한 기술이 NAT 이다.
NAT 란 말 그대로 네트워크의 주소를 변환하여 주는 역할을 하는 것이다.
즉 한 개의 공인 IP 주소를 가지고 있는데 여러대의 컴퓨터의 인테넷 접속이 필요한 경우에, 공인 IP 주소를 공유하
여 여러대의 컴퓨터가 인터넷 접속이 가능하도록 하는 설정이 대표적인 경우라고 할 수 있다.

iptables 에서 NAT의 분류 및 설정
iptables 에서 NAT 는 SNAT 와 DNAT 로 구분한다.
SNAT 는 공인 IP 주소 하나로 다수의 컴퓨터가 인터넷 접속이 가능하게 하는 경우이고
DNAT 는 하나의 공인 IP 주소로 다수의 서버를 운영하는 경우이다.

SNAT(Source NAT)
SNAT 는 패킷의 소스 주소인 발신지를 변경한다는 의미이다.
방화벽 내부의 사설 IP 주소를 사용하는 컴퓨터가 웹사이트를 방문하기 위해서는 공인 IP 주소가 필요하다.
이때 SNAT 정책을 설정하여 방화벽 통과할 때 공인 IP 주소가 부여되도록 설정한다.
SNAT 는 라우팅 경로가 결정된 이후에 설정된다고 하여 NAT 테이블의 POSTROUTING 사슬에 정책을 설정한다.
설정예
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT to 203.247.50.3
eth0 장치를 통해 나가는 패킷에 203.247.20.3번 주소를 부여한다.

DANT(Destination NAT)
DANT 는 패킷의 도착지 주소를 변경한다는 의미이다.
패킷의 목적지 주소가 먼저 변경되고 그 변경된 주소로 새로운 라우팅 경로를 찾는다.
DNAT 는 라우팅 이전 단계에서 적용된다고 하여 NAT 테이블의 PREROUTING 사슬에 정책을 설정한다.
설정예
# iptables -t nat -A PREROUTING -p tcp -d 203.247.50.3 dport 80 -j DNAT to 192.168.1.11:80
목적지 주소 203.247.50.3의 80번 포트인 경우에 192.168.1.11:80번 포트로 연결한다.

답글 남기기