이때까지 출제된 기출문제들을 풀어보고 나온 문제들 위주로 개념들을 정리해보았습니다.
무조건적으로 외우고 알아두어야 하는 내용들입니다. (꼭 외우지 않아도 되지만 외워두면 편함)
조금씩 빠진 내용(추가적으로 외우면 좋은 것들), 매 회차마다 출제되는 신 유형들은 따로 포스팅하겠습니다.
useradd -p : 사용자 암호를 추가시 지정
useradd -d : 홈 디렉터리 지정
useradd -g : 1차 그룹 지정
useradd -G : 2차 그룹 지정
useradd -c : 주석
useradd -s : 사용할 쉘 지정
useradd -D : /etc/default/useradd 정보
useradd -m : 사용자 추가시 홈 디렉터리 생성 (-k 옵션과 같이 사용)
useradd -k : /etc/skel (skeldir 지정)
useradd -f : 패스워드를 만기일을 날짜 수로 지정
useradd -e : 만료일 지정(YYYY-MM-DD)
useradd -u : uid 값 지정
useradd -L : 계정 잠금
useradd -U : 계정 잠금 해제
---------------------------------------------------------
usermod -d : 홈 디렉터리 변경 (-m 옵션을 같이 사용하면 홈 디렉터리의 파일, 디렉터리도 같이 옮김)
usermod -m : 기존에 사용하던 파일 및 디렉터리를 사용(-d 옵션과 같이 사용)
usermod -g : 1차 그룹 변경
usermod -G : 2차 그룹 변경
usermod -s : 사용할 쉘 변경
usermod -u : uid값 변경
usermod -e : 만료일 변경
usermod -f : 비번이 만기되고 실제 계정이 lock 될 때까지의 유예 기간
usermod -l : 사용자 아이디 변경
usermod -L : 계정 잠금
usermod -U : 계정 잠금 해제
---------------------------------------------------------
userdir -r : 사용자 홈 디렉터리, 메일까지 삭제
---------------------------------------------------------
passwd -S : 사용자에 대한 패스워드 정보를 알려줌
passwd -l : 패스워드 일시적 잠금
passwd -u : 패스워드 일시적 잠금 해제
passwd -d : 패스워드 삭제 (패스워드 없이 로그인 가능)
passwd -n : 패스워드 변경 후 최소 날짜
passwd -x : 패스워드 유효기간
passwd -w : 패스워드 만료전 경고날짜
passwd -i : 패스워드 만료된 후 실제 계정이 로그인이 불가능하기까지의 유예기간
passwd -e : 다음 로그인 시 반드시 패스워드 변경
(passwd 명령어는 만기일(yyyy-mm-dd) 형식으로 지정하는 옵션 없음)
---------------------------------------------------------
chage -l : 사용자에 대한 패스워드 정보 보여줌
chage -d : /etc/shadow의 3번째 필드(패스워드 바꾼날 수정)
chage -m : 최소 날짜 수
chage -M : 최대 날짜 수
chage -I (i의 대문자) : 패스워드 만료된 후 lock 될 때까지의 유예 기간
chage -E : 만료일(YYYY-MM-DD)
chage -W : 만료 전 경고 날짜
---------------------------------------------------------
groupadd -g : 그룹 gid 지정
groupadd -r : 0-499까지 gid를 자동 지정
groupadd -n : 그룹 이름 변경
groupmod(위 옵션과 같음. 위에서 지정한걸 변경)
---------------------------------------------------------
visudo : visudo 명령어를 이용해 /etc/sudoers를 편집
---------------------------------------------------------
●사용자 추가 시 www이라는 디렉터리를 기본적으로 제공하려고 한다
(/etc/skel)
●사용자 추가 시 생성되는 홈 디렉터리의 기본 위치를 /user 디렉터리 내에 생성되도록 변경한다
(/etc/default/useradd)
●사용자에게 부여되는 uid, 패스워드 암호화 알고리즘 등등
(/etc/login.defs)
---------------------------------------------------------
/etc/passwd, /etc/shadow 관리 명령어
(pwconv)
/etc/passwd, /etc/shadow 무결성
(pwck)
/etc/group, /etc/gshadow 관리 명령어
(gpasswd)
/etc/group, /etc/gshadow 무결성
(grpck)
---------------------------------------------------------
chown -R : 하위 디렉터리 포함, 내부 디렉터리 모두 포함해서 소유권 및 소유그룹 변경
chown -R jamong.jamong 1.txt
또는
chown -R jamong:jamong 1.txt
(1.txt 파일의 소유자는 jamong 소유 그룹은 jamong로 설정한다.)
---------------------------------------------------------
umask -S : umask 값을 표기한다
---------------------------------------------------------
lsattr : 속성 확인
chattr : 속성 부여
속성 연상자(+, - ,=)
+i : 삭제 불가능
+a : 내용만 수정 가능
예) chattr +i 1.txt
chattr +a 1.txt
옵션 해제
예) chattr -i 1.txt
chattr -a 1.txt
관리자 권한으로 옵션 해제
예) sudo chattr -i 1.txt
---------------------------------------------------------
fdisk -p : 현재 디스크 정보를 보여줌
fdisk -d : 파티션 삭제
fdisk -n : 파티션 생성
fdisk -t : 파티션 속성 변경
fdisk -w : 변경된 내용을 저장하고 종료
fdisk -q : 변경된 내용을 저장하지 않고 종료
fdisk -l : 파티션 테이블 정보 출력
fdisk -v : fdisk version 출력
fdisk -s partition : 특정 파티션 크기 출력 (단위는 block)
---------------------------------------------------------
mke2fs -j : 저널리 파일 시스템인 ext3로 만든다
예) mke2fs -j /dev/sdb1 : /dev/sdb1 장치의 파일 시스템을 ext3로 생성한다
mek2fs -b block_size : 블록 사이즈 지정 옵션 (1024, 2048, 4096)
mke2fs -t : 파일 시스템 지정
예) mke2fs -t ext4 /dev/sdb1
또는
mkfs.ext4 /dev/sdb1
블록사이즈 정보 확인
(dumpe2fs)
---------------------------------------------------------
mount -f : 실제 시스템을 호출하지 않고 마운트 할 수 있는 점검
mount -t : 마운트 할 파티션의 파일 시스템 형식을 지정한다
예) mount -t ext4 ....
---------------------------------------------------------
fsck -N : 실행하지 않고 단지 어떤 것이 실행되어지는지만 보여줌
fsck -V : 자세한 출력(실행되는 각 파일시스템용 명령어 포함)
fsck -v : 버전 정보
fsck -y : 감지된 파일 시스템 오류를 자동적으로 수정하도록 한다
---------------------------------------------------------
fstab (/etc/fstab)
[파일시스템 장치 명] [마운트 포인트] [파일 시스템 종류] [옵션(defaults,usrquota)] [dump 작동 유무(0 또는 1)] [fsck 작동 유무(0 또는 1)]
---------------------------------------------------------
chmod 3070 /project
/project 라는 디렉터리를 해당 그룹에 속한 사용자들만 접근하고, 파일을 생성/삭제 할 수 있도록, 그룹 소유권을 자동지정, 공유 하도록 한다.
---------------------------------------------------------
pgrep -u : 프로세스 pid 출력
pgrep -u ihduser : ihduser 사용자가 실행한 프로세스의 pid 값을 출력
ls -l /proc/14153/exe : pid가 14153인 프로세스를 실행한 명령어의 절대 경로를 출력한다.
---------------------------------------------------------
crontab -l : 설정된 내용 출력
crontab -e : 작성하거나 수정
crontab -r : crontab 내용 삭제
사용자 명을 붙힐 시 -u 옵션을 붙힘
예) crontab -l -u jaymon
..
..
*(분) *(시간) *(일) *(월) *(요일)
매분 test.sh 실행
* * * * * /home/script/test.sh
매주 금요일 오전 5시 45분 test.sh 실행
45 5 * * 5 /home/script/test.sh
매일 매시간 0분, 20분, 40분에 test.sh 실행
0,20,40 * * * * /home/script/test.sh
매일 1시 0분 부터 30분까지 매분 test.sh를 실행
0-30 1 * * * /home/script/test.sh
매 10분마다 test.sh 실행
*/10 * * * * /home/script/test.sh
5일에서 6일까지 2시, 3시, 4시에 매 10분마다 test.sh 실행
*/10 2,3,4 5-6 * * /home/script/test.sh
---------------------------------------------------------
rpm -qa | grep sendmail : 시스템에 설치 된 모든 패키지 중에 mail이라는 문자열이 들어있는 패키지를 출력한다.
rpm -qi : 패키지에 대한 자세한 정보 출력
rpm -qp : 깔려있지 않은 패키지의 정보 알 수 있음( 정확히는 rpm -qip)
rpm -ql sendmail : sendmail 패키지가 설치한 파일 목록을 출력한다.
rpm -qc sendmail : sendmail 패키지 관련 환경설정 파일이나 실행 데몬 스크립트를 출력한다.
rpm -qf 패키지 명 : 특정 패키지에 대해 검색
rpm --rebuilddb : 데이터베이스 다시 작성(db 업데이트)
rpm -Va : 시스템에 설치 된 모든 패키지를 검증
rpm -ivh : i는 설치, v는 설치중 메세지 출력, h는 #표시하며 설치
rpm -Uvh : U는 설치된 패키지 업그레이드, v는 설치중 메세지 출력, h는 #표시하며 설치
rpmbuild : rpm 소스파일인 .src .rpm 패키지 파일로 만드는 모드
사용 예)
rpmbuild --rebuild
---------------------------------------------------------
gcc -o [실행파일 이름] : 실행파일 생성
gcc -c : 오브젝트 파일 생성
---------------------------------------------------------
모듈 관련 명령어 (/lib/modules/커널 버전/kernel)
lsmod : 리눅스 커널에 적재된 모듈 정보 출력
insmod : 커널에 모듈을 적재하는 명령어 (의존성 x)
rmmod : 커널에서 모듈을 제거하는 명령어 (의존성 x)
modprobe : 모듈을 적재하거나 제거할 수 있음
옵션
-ㅣ : 사용 가능한 모듈 정보 출력
-r : 모듈 제거할 때 사용하는 옵션 (의존성 o)
-c : 모듈 관련 환경 설정 파일 내용 전부 출력
modinfo : 모듈 정보 보여줌
depmod : 의존성 검사, 갱신, 생성
의존성 파일
/lib/modules/커널 버전/modules.dep
부팅시 자동으로 로드되게 설정하는 파일
/etc/modprobe.conf
---------------------------------------------------------
make mrproper : 커널의 소스를 초기상 태로 되돌리는 명령어
make config : x윈도 형식, 텍스트 문답 방식 (menuconfig(메뉴 기반 커서 이용), xconfig)
make bzImage : 커널에 이미지 생성(bzip 생성)
make modules : 모듈 컴파일
make modules_install : 컴파일된 모듈을 설치
---------------------------------------------------------
●프린트 관련 명령어
BSD 계열
Ipr, Ipq, Iprm, Ipc
System V 계열
Ip, Ipstat, cancel
Ipr -# 2 : BSD계열 프린터 2매 출력
Ip -n 2 : System V 계열 프린터 2매 출력
/etc/printcat
(프린터 설정에 관련된 파일이 저장된 곳)
---------------------------------------------------------
rsyslogd 데몬의 환경 설정 파일
(/etc/rsyslog.conf)
-------------------------------
facility 종류
cron : cron, at
authpriv : ssh, telnet(인증)
daemon : telnet, ftp
kern : 커널이 발생한 메시지
Ipr : 프린터 유형
mail : 메일
syslog : syslog
user : 사용자 프로세스
* : 모든 facility를 의미
-------------------------------
priority 종류
info : 통계, 기본 정보 메시지
crit : 문제가 생기는 단계
emerg : 위험한 상황
warn : 경고 (warning 이상)
-------------------------------
cron 및 mail 관련 모든 기록은 /var/log/cronmail 파일에 기록한다
cron,mail.* /var/log/cronmail
ssh와 같은 인증 관련 모든 기록은 root 사용자의 터미널로 전송한다.
authpriv.* root
모든 facility에서 발생되는 crit 수준 이상의 메세지를 /var/log/critical 파일에 기록한다
*.crit /var/log/critical
모든 facility에서 발생되는 crit 수준의 메세지만 /var/log/critical 파일에 기록한다
*.=crit /var/log/critical
메일 관련 모든 기록은 /var/log/maillog 파일에 기록하는데 info 수준의 로그는 제외한다.
mail.*;mail.!=info /var/log/maillog
ssh와 같은 인증 관련 모든 메시지는 tcp 기반으로 192.168.12.22 호스트에게 전달하여 기록한다.
authpriv.* @@192.168.12.22
---------------------------------------------------------
/etc/logrotate.conf
weekly : 로그 파일을 일주일마다 로테이트 한다.
daily : 로그 파일을 하루 주기로 로테이트 한다
monthly : 로그 파일을 월 주기로 로테이트 한다
rotate 4 : 최대 4번까지 rotate함 4주동안 백업한 로그 유지
create : 로테이트를 한 후, 비어 있는 로그 파일을 생성하도록 설정
(create [허가권] [소유권] [소유그룹])
/var/log/wtmp : 로그 파일 명을 명시하면 별도로 지정 가능하다
---------------------------------------------------------
/var/log/messages
대부분의 로그가 이 파일에 쌓임(root만 접근 가능)
/var/log/secure
인증과 관련된 접속 프로토콜 telnet, ssh, tcp_wrappers, xinetd (시스템에 로그인한 정보)
/var/log/dmseg
시스템이 부팅할 때 출려되었던 로그를 기록
/var/log/boot.log
부팅 시 동작하는 데몬들의 동작 성공 여부
/var/log/maillog
sendmail, dovecot 등 데몬 시작 시간을 확인
/var/log/lastlog
각 사용자의 마지막 정보가 기록되는 파일이다
바이너리 파일도 lastlog라는 명령어로 확인한다
lastlog -t : 특정 기록 확인
lastlog -u jaymon : jaymon의 마지막 기록 확인
/var/log/wtmp
사용자 기록, 시스템을 재부팅한 기록 등의 로그가 쌓이는 파일 last 라는 명령을 씀
last -f : 특정 파일 출력
/var/log/btmp
로그인 접속이 실패한 경우
lastb 라는 명령을 통해 확인 가능
lastbt -f : 특정 파일 출력
---------------------------------------------------------
인증키를 이용한 ssh 서버 접속 : ssh-keygen
ssh를 이용하여 파일 복사 : scp
---------------------------------------------------------
dd if=dev/sda1 of=/dev/sdb1 bs=1K
블록 사이즈 1KB 단위로 하여 /dev/sda1을 /dev/sdb1으로 백업한다
(만약 if로 특정되는 말이 없으면 if=/dev/zero)
dd if=dev/sda1 of=/dev/sdb1 bs=1M
블록 사이즈 1MB 단위로 하여 /dev/sda1을 /dev/sdb1으로 백업한다
dd if=/dev/zero of=/swap_file bs=1K count=1024000
count = 크기 지정 (예 1gb로 지정해라 = 1024000)
bs = 블록 크기 지정
---------------------------------------------------------
cpio
-c : ascii 형태로 헤더 정보를 읽고 ㅆ느다
-i : 아카이브에서 파일 추출
-o : 아카이브 생성
-v : 진행 과정을 자세하게 출력
-d : 필요한 경우 디렉터리 생성
예) find /home | cpio -ocv > config.bak
find /home | cpio -icv < config.bak
---------------------------------------------------------
dump
-f : 지정한 파일명으로 백업 파일 생성
-0 : 전체 백업
-1~9 : 부분 백업
---------------------------------------------------------
tar -Jxvf
x : 압축 해제
v : 과정
f : 저장
J : xz 확장자 전용
tar -g : 증북 백업을 위한 옵션
---------------------------------------------------------
restore
-i : 대화형으로 복원 수행
-f : 장치 이름 지정
-r : 백업 대상 전체를 복원
---------------------------------------------------------
rsync
-a : 아카이브 모드
-v : 진행 과정을 자세하게 출력
-z : 동기화 파일 압축
--delete
---------------------------------------------------------
bash 프로세스에 설정된 NI 값을 -10만큼 감소시켜 우선순위를 높인다
(nice --10)
PID가 1222인 프로세스의 NI 값을 10으로 지정한다
(renice 10)
범위 : -20~19
---------------------------------------------------------
httpd.conf (/etc/httpd/conf/httpd.conf)
웹 사용자 생성
htpasswd -c '관련 파일'
아파치 환경 설정 파일의 문법적 오류가 있는 여부 점검
service httpd configtest
도메인명:포트번호
ServerName 도메인명:포트번호
웹 문서가 위치하는 디렉터리의 경로
DocumentRoot "경로"
웹 디렉터리 접근 시에 인식되는 인덱스 파일 순서
DirectoryIndex 확장자1 확장자2 확장자3
일반 사용자의 웹 디렉터리를 www으로 지정한다
UserDir www
서버 설치 파일
ServerRoot "경로"
ErrorDocument
허가 거부 : 403
인증 안됨 : 401
존재하지 않음 : 404
/usr/local/apache/error 디렉터리를 /error 디렉터리로 경로를 단축하는 설정을 한다
Alias /error/ "/usr/local/apache/error"
하나의 ip 주소를 가지고 2개의 도메인을 설정
NameVirtualHost 192.168.5.12:80
<Directory "/www/ihd/admin">
Order Deny,Allow
Deny from all
Allow from 192.168.22.0
</Directory>
접근을 통제할 디렉터리는 /www/ihd/admin 이다
192.168.22.0 네트워크 대역의 주소를 갖는 클라이언트 접속만 허용한다.
Order Deny,Allow일 경우 Allow 먼저
Order Allow,Deny일 경우 Deny 먼저
---------------------------------------------------------
NIS 서버 관련 명령어
service ypserv start
service ypxfrd start
service yppasswdd start
도메인명 등록 : nisdomainname
NIS 도메인 등록
/etc/sysconfig/network
내용 : NISDOMAIN=ihd.or.kr
NIS 환경 설정 파일
/etc/yp.conf
---------------------------------------------------------
OpenLDAP 관련 파일
/etc/openldap/slapd.conf
---------------------------------------------------------
NFS 관련 명령어(mount)
mount -t nfs
mount.nfs
NFS 관련 파일
/etc/exports (환경 설정)
/etc/fstab
showmount -e : 클라이언트에서 nfs 정보
exportfs -v : 서버에서 nfs 정보
--/etc/exports--
서버 형식
/nfs_share 192.168.5.0/24(rw,no_root_squash 또는 root_squash)
클라이언트
ihd_nfs:/nfsdata /data nfs
---------------------------------------------------------
/etc/vsftpd/ftpusers
접근 거부될 사용자 목록
---------------------------------------------------------
/etc/samba/smb.conf
윈도우 운영체제에서 이름으로 접근할 때의 명칭은 ihd_com으로 지정한다
netbios name = ihd_com
공유 그룹 명은 ihd 로 지정한다
workgroup = ihd
서버에 대한 설명은 ihd server로 지정한다
server string = ihd server
접근할 수 있는 호스트는 192.168.5.0 네트워크에 대역에 속한 모든 호스트들과 로컬시스템으로 제한한다.
hosts allow = 192.168.5. 127.
윈도우에 접근 할 때 보이는 폴더 이름을 ww로 설정
[www]
사용자들 접근 허용
valid users = 사용자1 사용자2
파일 생성 및 삭제 권한 부여
writable = yes
또는
write list = user1 user2
---------------------------------------------------------
센드메일 관련 명령어
-------------
m4 명령어로 생성
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
access 파일 변경된 내용 저장
makemap hash /etc/mail/access < /etc/mail/access
형식
From:spam.com DISCARD
-------------
virtusertable 파일 변경된 내용 저장
makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
형식
webmaster@ihd.or.kr Jaymon
@ihd.or.kr ihdadmin
-------------
/etc/aliases
형식
webmaster: ihduser, kaituser
admin::include:/etc/mail_admin
변경된 내용 저장
sendmail -bi
메일 서버에서 사용하는 도메인 등록
/etc/mail/local-host/names
메일 송수신 시 이 파일을 해석하여 실행한다.
/etc/mail/sendmail.cf
모든 호스트에 대해서 smtp를 리스닝 하도록 설정
/etc/mail/snedmail.mc
---------------------------------------------------------
/etc/named.conf
allow-query {192.168.0.1; 192.168.10.0/24;};
forward only; 또는 first; (first=해당 서버가 그 질의에 대한 응답을 하지 않을 경우에만 질의에 응답하도록 설정한다.
only=해당 서버가 그에 대한 응답이 없을경우 그 질의에 대한 응답을 하지 않도록 설정한다)
forwarders {192.168.0.1;};
리버스 도메인 설정(예 192.168.10.1)
"10.168.192.in-addr.arpa"
---------------------------------------------------------
/var/named
ns.admin.com. master.admin.com.
IN MX 10 ihd.or.kr. (메일 ihd.or.kr 도메인 등록)
www IN A 192.168.0.5 (www 192.168.0.5 A 레코드로 등록)
www1 IN CNAME www (별칭 도메인 등록)
---------------------------------------------------------
kvm 가상화 서비스의 설치 및 구동 순서
service libvirtd start
virt-manager
---------------------------------------------------------
/etc/hosts.allow 또는 /etc/hosts.deny
ALL: localhost, .ihd.or.kr
in.telnetd: 192.168.5.13
sshd: 192.168.5.
in.fingerd: 192.168.5.0/255.255.255.0
---------------------------------------------------------
/etc/xinetd.conf
disable = no
wait = no (요청을 받은 후 즉시 다음 요청 처리(no)
user = root (실행할 사용자 권한 설정)
server = /usr/sbin/in.telnetd (서비스 실행파일 경로)
log_type = FILE /var/log/xinetd.log (로그를 기록할 파일 경로)
no_access = 10.0.0.0/8 (접속거부 ip 대역)
only_from = 192.168.10.0/24 (접속 허용 ip 대역)
cps = 10 30 (들어오는 접속 수 제한. 지정한 접속 수 초과할 시 지정한 시간 동안 서비스 비활성)
instances = 5 (동시에 작동할 수 있는 최대 개수)
access_times = 08:00-17:00 18:00 20:30 (접속 허용 시간대)
per_source = 10
---------------------------------------------------------
/etc/dhcpd.conf
subnet netmask (서브넷, 넷마스크)
range (할당 범위)
range dynamic-bootp (할당 범위)
option routers (게이트웨이 주소)
option subnet-mask (서브넷 마스크)
option nis-domain (nis 도메인)
option domain-name (도메인 이름)
option domain-name-servers (네임 서버)
fixed-address (고정 ip)
hardware-ethernet (mac 주소)
option broadcast-address (브로드 캐스트 주소 지정)
---------------------------------------------------------
ntp 관련 명령어
service ntpd start
service ntpd stop
service ntpd restart
/etc/ntp.conf
restrict = ntp 서버에 접근할 클라이언트를 제한할 때 지정한다.
---------------------------------------------------------
iptables-save > firewall.sh
iptables-restore < firewall.sh
service iptables save
service iptables stop
service iptables start
iptables 관련 파일
(/etc/sysconfig/iptables)
들어오는 모든 패킷을 거부하고, 192.168.12.22로부터 들어오는 패킷에 대해서만 허가하기
iptables -P INPUT DROP
iptables -A INPUT -s 192.168.12.22 -j ACCEPT
들어오는 모든 패킷을 허가하고 192.168.1.18로부터 들어오는 모든 패킷에 대해서 거부하기
iptables -P INPUT ACCEPT
iptables -A INPUT -s 192.168.1.18 -j DROP
공인 ip 주소 하나로 다수의 컴퓨터가 인터넷 접속이 가능하게 하는 경우
(SNAT)
하나의 공인 IP 주소로 다수의 서버를 운영하는 경우(포트 포워딩)
(DNAT)
etho 장치를 통해 나가는 패킷에 203.247.50.3번 주소를 부여한다.
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 203.247.50.3
목적지 주소 203.247.50.3의 80번 포트인 경우에 192.168.1.11의 80번 포트로 연결한다
iptables -t nat -A PREROUTING -p tcp -d 203.247.50.3 --dport 80 -j DNAT --to 192.168.1.11:80
-F(전체 초기화)
-D(특정 삭제)
REJECT : 적절한 응답. 거절
댓글