7강 006.UNIX/Linux기본학습_05(신규)/(1권)p23~29
디렉터리 관리
가) 파일의 종류
- 일반파일
- 디렉터리
- 특수파일
① 파이프 (이름있는 파이프, 이름없는 파이프)
② 소켓
③ 주변장치
- 블록단위 : 테이프, 디스크
- 문자단위 : 테이프, 디스크, 터미널
나) 디렉터리 내용 출력
- ls 명령어로 디렉터리와 파일 목록을 보여줄 수 있다
- 디렉터리에는 파일명과 inode number 정보만 갖고 있음
- 숨김파일을 보려면 -a 옵션, 아이노드 넘버를 보려면 -i 옵션, 파일종류 기호를 추가하려면 -F
파일종류
- 일반파일
d 디렉터리
c 문자 장치 파일
l 심볼릭링크
p 이름있는 파이프
s 유닉스 도메인 소켓
접근권한
소유자User : 파일 소유자의 접근권한
소유그룹Group : 파일 소유그룹의 접근권한
기타Others : 소유자와 소유그룹에 속하지 않는 모든 사용자의 접근 권한
접근권한 종류
r(4) : 파일의 내용 조회, 디렉터리 파일목록 조회
w(2) : 파일 수정, 디렉터리내 파일이나 디렉터리를 생성, 삭제
x(1) : 파일 실행, 디렉터리내로 이동
-(0) : 권한 없을때
디렉터리 이동 : cd
새로운 디렉터리 생성 : mkdir
디렉터리 삭제 : rmdir
파일 권한 관리
가) 파일 접근권한 변경
chmod 명령어 사용
1) 기호
대상: u, g, o, a(대상을명시하지않을때 기본으로 a)
연산자: +, -, =
권한: r, w, x, s, t
2) 숫자(8진수)
읽기(r) : 4
쓰기(w) : 2
실행(x) : 1
set-uid(s) : 4000
set-gid(s) : 2000
sticky-bit(t) : 1000
나) 파일 소유자, 소유그룹 변경
소유자 변경 : chown
소유그룹 변경 : chgrp
* 슈퍼유저 root만이 변경 가능
접근권한 마스크 설정umask
- 파일 또는 디렉터리 생성 시 접근권한을 설정하기 위해 사용되는 값. 제거할 접근권한 정보가 설정됨
- umask 002 : others에 w 권한 제거
- umask 022 : group, others에 w 권한 제거
- umask 027 : group에 w 권한 제거, others에 rwx 권한 제거
- 파일의 기본 접근권한은 666, 디렉터리 기본 접근권한은 777
- 권장설정 : umask 022 이상
8강 007.UNIX/Linux기본학습_06(신규)/(1권)p30~36
파일검색 find
-name 파일명 지정
-type 파일종류 ( f 일반파일 )
-user 소유자명
-group 소유그룹명
-perm 접근권한 지정
-atime 접근시간
-ctime 속성 변경 시간
-mtime 수정시간
-exec 검색파일에 대한 추가명령실행
경로는 절대경로, 상대경로로 지정 가능
논리연산
-a 또는 AND (생략 가능)
-o 또는 OR
! 또는 NOT
find . type f \( -user root -o -group dev )\ -print
=> 현재 디렉터리 기준으로 소유자가 root이거나 소유그룹이 dev인 일반파일을 출력한다
=> 소괄호() 사용시 \ 백슬래시를 붙여야 한다
-nouser : 소유자가 존재하지 않을때
-nogroup : 소유그룹이 존재하지 않을때
find 어쩌구 조건들 -exec ls -al {} \;
=> 검색하여 나온 결과를 ls -al을 적용하여 출력한다
-mtime n : 마지막 파일 내용 수정 시간
-atime n : 마지막 파일 접근 시간
-ctime n : 마지막 속성 변경 시간
n은 일단위이며
+는 초과, -는 미만, 기호가 없으면 정확히 n일을 의미한다
-mtime +2는 2일 초과, -2는 2일 미만, 2는 2일이다
ex)
find / -type f -mtime -10 > /tmp/result.out
=> 최근 10일이내 변경된 파일을 검색한 후 결과를 result.out 파일로 저장한다
-perm 600 : 파일권한이 정확히 600인 파일 검색
-perm -600 : 파일권한에 600을 포함하는 파일 검색 ex) 특수권한 set-uid가 설정된 4600 파일
World writable 파일 : 모든 사용자에게 쓰기가 허용된 파일
-perm -2 로 검색하여 chmod o-w 를 이용해 권한을 제거한다
-size -6M : 6메가 미만, +6M 6메가 초과, 6M : 정확히 6M
9강 008.UNIX/Linux기본학습_07(신규)/(1권)p37~41
프로세스 응용
프로세스 개요
- User Area : 스택, 힙, 데이터, 코드 영역
- Kernel Area : PCB(프로세스 제어 블록), FDT(파일 디스크립터), System open-file table, Active vnode table
- 프로세스가 생성되면 커널은 프로세스 제어 블록PCB을 생성 (프로세스번호PID, 프로그램 카운터PC, 레지스터 저장 영역, 프로세스 상태, 메모리 정보 등을 담음)
- 프로세스별로 오픈한 파일을 관리하기 위해 파일 디스크립터 테이블FDT가 생성됨
상태전이도
생성New => 준비Ready => Dispatch => 실행Running => Timer runout => 준비 Ready
생성New => 준비Ready => Dispatch => 실행Running => 종료Terminated
생성New => 준비Ready => Dispatch => 실행Running => Blocking system call => 대기Block => Wake up => 준비 Ready
실행Running중에는 Kernal mode와 User mode를 반복한다
입출력함수는 느리므로 실행중에 Blocking system call 된다
System open-file table
- open mode
- offset
- reference count
Active vnode table
- 여러 파일시스템의 inode정보를 갖고 있어 중계자 역할을 함
fork() : 부모 프로세스와 똑같은 자식 프로세스를 생성하는 함수. 생성한 자식프로세스 pid를 반환한다
getpid() : 현재 프로세스의 pid, getppid() : 부모 프로세스의 pid
모든 프로세스는 부모 프로세스를 가진다
init 프로세스 : 부팅후 최초로 생성되는 프로세스. pid 1. 시스템 런레벨에 따른 시스템 초기화, 초기 프로세스 기동 실행. 대리모 프로세스(부모 프로세스가 먼저 종료되면 대신하여 자식 프로세스의 대리모가 됨)
kill -9 pid : SIGKILL 프로세스 강제 종료 (= kill -KILL pid)
프로세스 종료시 자신의 종료상태정보를 부모프로세스에 반환해야 정상적으로 소멸된다
커널오류 또는 부모프로세스가 종료한 자식프로세스에 대한 처리오류 등으로 인해 소멸되지 못하고 남아있는 상태를 좀비 프로세스라고 함
ps -f 했을때 좀비 프로세스는 명령어 이름에 defunct 가 표시된다
ps -ef 또는 -l | grep defunct 로 좀비프로세스만 검색가능
* 좀비 프로세스의 부모프로세스를 제거하거나, 시스템을 재기동하여 커널 정보를 초기화하여 삭제할 수 있다. kill 시그널로 삭제할 수 없다.
10강 009.UNIX/Linux기본학습_08(신규)/(1권)p42~46
프로그램 실행 과정
1) a.out 실행
2) fork() 호출을 통해 복사본(자식 프로세스) 생성. 터미널 제어권이 복사본 프로세스로 넘어감
3) exec() 호출을 통해 프로세스 실행 이미지 전이
4) a.out 복사본 프로세스 종료 및 터미널 제어권 쉘로 반환
PID = 현재 프로세스 ID
PPID = 현재 프로세스의 부모 프로세스 ID
* 부모프로세스와 자식프로세스는 하나의 PGID 그룹으로 묶이게 된다 (터미널 제어권 단위가 PGID로 구분)
* PGID는 프로세스 그룹의 가장 최초에 생성된 PID
터미널에 대한 제어권을 가지고 동작하는 모드 = 포그라운드 모드
터미널에 대한 제어권 없이 동작하는 모드 = 백그라운드 모드 (& 로 실행시)
프로세스 정보 확인
ps 명령어
옵션 :
-e : 모든프로세스
-f : UID, PID, PPID, STIME, TTY, TIME(CPU 사용시간), CMD 필드형식
-l : S(프로세스상태), UID, PID, PPID, C, PRI, NI, ADDR, SZ, WCHAN, TTY, TIME, CMD 필드형식
프로세스간 통신(시그널)
-l : 시스템에서 지원하는 시그널 목록 출력
SIGKILL : 9번, 무시하거나 임의로 처리할 수 없는 관리 목적의 시그널. 강제종료
SIGSTOP : 19번, 무시하거나 임의로 처리할 수 없는 관리 목적의 시그널. 무조건 정지시킨다.
11강 010.UNIX/Linux기본학습_09(신규)/(1권)p47~55
유닉스/리눅스 시스템의 런 레벨 : 시스템 운영 수준(실행 단계, 모드)
런레벨
0 : Half, 시스템 중지
1 : Single user mode, 단일 사용자 모드, 네트워크x, 시스템 관리 목적
2 : Multiuser, 네트워크를 사용하지 않는 다중 사용자 모드
3 : Full multiuser mode, 네트워크를 지원하는 CLI 다중 사용자 모드
4 : Unused 사용안함
5 : X11, X-Windows GUI 환경을 사용하는 다중 사용자 모드
6 : reboot, 재부팅
init 프로세스는 /etc/inittab 파일에 정의된 런레벨에 따라 스크립트를 실행하여 시스템 초기 환경을 구성한다
시스템 부팅 과정
1) 바이오스 과정
2) 부트 프로그램 과정
3) 커널 과정
4) init 프로세스 과정
시스템 종료
shutdown 명령은 시스템을 안전하게 종료할 때 사용
사용자 및 그룹 관리
1) 사용자 계정 추가 useradd
-u uid 설정
-g 기본그룹 id 설정
-G 보조그룹 id 설정
-c 코멘트 설정
-d 홈 디렉터리 설정
-s 로그인 쉘 설정
useradd 명령어는 root만 사용가능
-o 옵션은 중복 UID를 허용하는 옵션으로 root 권한 탈취하기 위해 악용될 수 있다
사용자 계정 정보 변경
usermod
usermod 명령어는 root만 사용가능
-o 옵션은 중복 UID를 허용하는 옵션으로 root 권한 탈취하기 위해 악용될 수 있다
사용자 계정 정보 삭제
userdel
-r 옵션 : 홈 디렉터리와 메일함도 함께 삭제
그룹추가
groupadd
-g 그룹을 새로 생성
그룹정보변경
groupmod
-g 그룹id 변경
-n 그룹이름 변경
그룹정보삭제
groupdel
파일시스템 관리
1) 파일시스템 여유 공간 크기 관리
df 명령어 (disk free)로 시스템에 마운트된 모든 파일시스템 여유공간의 크기를 확인가능
(마운트 : 파일시스템을 시스템에게 접근할 수 있도록 특정 디렉터리에 연결하는 과정. mount, umount)
옵션
-h 사람이 보기 쉬운 단위로 출력
/경로 해당 경로가 속한 파일시스템의 여유 공간 크기 출력
디렉터리별 파일시스템 사용량 관리
du 명령어
디렉터리의 크기를 확인할 때 사용
-a 지정한 폴더의 하위 폴더와 파일들의 크기까지 포함하여 확인
-s 지정한 폴더의 크기만 확인 (하위폴더 x)
12강 011.UNIX/Linux기본학습_10(신규)/(1권)p56~60
작업스케줄관리
cron 서비스
- 정기적 작업 스케줄링 서비스
- 작업 등록 파일, crontab 명령, cron 데몬 프로세스(crond) 로 구성
작업등록파일 : /etc/crontab 파일
관리자가 설정하는 작업 등록 파일. 모든 사용자에 대해 설정가능
root 소유의 640이하 권한 설정 권장
분 시 일 월 요일 계정명 <실행할 작업파일 절대경로, 명령어>
ex)
10 23 30 7 * root /tmp/start.sh
=> 7월 30일 23시 10분에 root 계정으로 /tmp/start.sh 실행
10 23 * * 0-6 root /tmp/start.sh
=> 매일 23시 10분에 root 계정으로 /tmp/start.sh 실행
*/5 * * * * root /tmp/start.sh
=> 매 5분마다 실행
* 1,3,5 * * * root /tmp/start.sh
=> 매일 1시 3시 5시에 실행
* 8-10 * * * root /tmp/start.sh
=> 매일 8시 9시 10시에 실행
*는 모든값 -는 범위지정 , 는 값을 구분 /는 간격을 지정 #은 주석처리
요일은 0 일요일부터 시작하며 7도 일요일로 인식한다
/var/spool/cron/<사용자 계정명 파일>
개별 사용자의 crontab 명령을 이용하여 등록하는 파일
crontab
옵션
-u 관리자가 특정 사용자의 작업등록. -e는 편집 -l은 출력(조회) -r은 삭제 (edit list remove)
ex) crontab -u user1 -e
일반사용자는 -e -l -r만 사용한다
ex) crontab -e
일반사용자는 자신의 crontab만 수정할 수 있으므로
분 시 일 월 요일 <실행할 작업파일 절대경로, 명령어>
계정명이 생략된다.
* 8-10 * * * root /tmp/start.sh 1> /dev/null 2>&1
=> 표준 출력과 에러를 가상의 인터페이스 쓰레기통으로 버린다
crontab 명령 접근제어
/etc/cron.allow : 허용할 사용자 설정
/etc/cron.deny : 차단할 사용자 설정
두 파일이 모두 설정된 경우 cron.allow 파일을 우선하여 적용된다 (cron.deny 아예 적용 되지 않음)
'(실기) 정보보안기사&산업기사' 카테고리의 다른 글
2022 기출문제 정리 (19~21회) (0) | 2024.08.05 |
---|---|
보안기사 실기 신규강의 3 (0) | 2024.08.05 |
보안기사 실기 신규강의1 (0) | 2024.07.31 |
정보보안법규 4 (0) | 2024.04.19 |
정보보안 법규 1~3 (0) | 2024.04.18 |