728x90

centos 파일형식 .rpm

rpm 확인 -qa( | grep [특정파일])
-ql [패키지명
-q : 질의
-a : 모든 패키지
설치 -ivh [패키지 파일명] -i : 설치옵션
-v : 자세한 정보 출력 옵션
-h : 설치 진행과정 도식 옵션
제거 -evh [패키지 파일명]  -e : 삭제 옵션
업데이트 -Uvh [패키지 파일명] -U : 업데이트 옵션

소스 코드를 이용한 관리

./configure 컴퓨터의 환경 설정 파일

  • 소스 코드 파일을 컴퓨터의 환경에 맞게 컴파일을 할 수 있게 환경을 설정해준다.

make

  • 환경설정 파일로 컴파일을 수행한다.
  • 소스 코드 파일을 실행파일로 만드는 과정

make install

  • 설치한 파일을 올바른 위치에 가져다 놓는 과정을 거친다.

인터넷 저장소를 이용한 관리

레파지토리

설치

  • yum install [패키지명] (* : 관련 패키지 모두를 설치한다) : 의존성이 있는 파일을 설치한다.

삭제

  • yum erase [패키지명]

업그레이드

  • yum upgrade [패키지명]

로그

운영 체제나 다른 소프트웨어가 실행 중에 발생하는 이벤트나 각기 다른 사용자의 통신 소프트웨어 간의 메시지를 기록한 파일 로그를 기록하는 행위는 로깅이라고 한다.

시스템 로그 /var/log/messages 시스템 전반적인 로그
보안 로그 /var/log/secure Inetd에 의한 로그
메일 로그 /var/log/maillog 메일 로그
크론 로그 /var/log/cron 작업 스케줄링 로그
부팅 로그 /var/log/boot.log 시스템 부팅시의 로그
Dmesg 로그 /var/log/dmesg 부팅시에 기록되는 로그
Utmp 로그 /var/run/utmp 현재 시스템에 로그인한 각 사용자의 상태를 출력
Wtmp 로그 /var/log/wtmp 로그인, 로그아웃, 시스템의 재부팅에 대한 정보
Last 로그 /var/log/lastlog 계정 사용자들이 마지막으로 로그인한 정보
아나콘다 /var/log/anaconda 리눅스 설치시 installer 과정에 대한 로그
su 로그 /var/log/sulog su 명령어를 통한 로그인시 정보 기록
Pacct 로그 /var/account/pacct 로그인한 모든 사용자의 실행한 프로그램 정보 기록
Btmp 로그 /var/log/btmp 실패한 로그인 시도를 기록

/etc/rsyslog.conf

형식

  • [Facility].[Level] [Action]

Facility

  • kern : 커널이 발생한 메시지
  • user : 사용자 프로세스
  • mail : mail 시스템 관련 서비스
  • daemon : telnetd, ftpd, httpd과 관련된 서비스
  • auth : 로그인과 같은 인증 관련 서비스
  • syslog : syslog 관련 서비스
  • cron : 예약 작업 관련 서비스, crond, atd
  • * : 모든 서비스를 의미

Level

  • emerge(블루스크린, 커널, 패닉) : 일반적으로 모든 사용자에게 전달되는 패닉 상황
  • alert : 시스템 DB에 손상 등 즉시 수정해야 되는 상황
  • crit : 하드 장치 오류 등 중대한 상황에 대한 경고
  • err : 하등 장치 이외의 오류
  • warning : 경고 메시지, 무시해도 됨
  • notice : 특별한 처리가 필요할 수 있는 비 오류 상황
  • info : 정보 메시지
  • debug : 프로그램 개발 또는 테스트할 때 사용
  • none : 로그로 기록 X

NFS

NFS란?

  • 네트워크 파일 시스템
  • 서버에서 공유한 디렉터리를 마치 로컬 시스템의 장치처럼 이용할 수 있게 개발된 파일 시스템
  • 전통적인 유닉스 환경에서는 오랫동안 네트워크에서 자료를 공유하는 방법으로 사용
  • NFS 서버가 디렉터리를 공유하면 NFS 클라이언트가 공유한 디렉터리를 마운트 해서 사용

/etc/exports

  • 공유할 디렉터리 지정 파일
  • [공유해주고 싶은 특정 디렉터리] [이 디렉터리를 이용할 수 있는 네트워크 대역 설정] [(이용하는 사람의 권한)]
  • 다양한 공유 설정 옵션
rw 파일 시스템을 읽고 쓰기가 가능하도록 공유
ro 파일 시스템을 읽기 전용으로 공유
subtree_check 시스템 보안 유지를 위해 하위 디렉터리를 검사하는 옵션
no_subtree_check 시스템 성능을 고려하여 하위 디렉터리를 검사를 하지 않는 옵션
root_squash 시스템 보안을 위해 공유 디렉터리에 대한 사용자의 루트 권한을 제한
no_root_squash 공유 디렉터리에 대한 사용자의 루트 권한을 허용
all_squash 모든 사용자 권한을 익명 사용자 권한, nobody:nogroup으로 지정

/etc/sysconfig/nfs

  • 포트 설정 파일

마운트

  • 원격지의 파일 시스템
  • mount [IP주소]: [폴더] [폴더]

nfsnobody

  • NFS 클라이언트의 권한
728x90
728x90

데이터 백업과 복구의 개념

  • 언제 발생할지 모르는 사고를 대비해 반드시 해야 할 작업이 ‘백업’
  • 기존의 폴더 또는 파일을 다른 안전한 장소에 보관하는 것
  • Windows Server에서는 자체적으로 백업 기능을 제공
  • 백업은 별도의 하드디스크나 다른 컴퓨터의 공유 폴더에 하는 것이 필수
  • 최근에는 서버와 멀리 떨어진 원격지에도 백업(클라우드)
  • 복구는 삭제된 일부 폴더만 복구할 수도 있고, 볼륨 전체를 복구할 수도 있다.

백업의 종류

전체 백업

  • 데이터 전체를 백업하는 것
  • 시간이 오래 걸리고 백업할 때마다 중복된 데이터도 백업하기 때문에 디스크 공간이 많이 필요
  • 가장 최근에 전체 백업을 복구하면 가장 최근의 데이터로 복구됨

증분 백업

  • 이전에 수행한 백업으로부터 변경된 데이터만을 백업하는 것
  • 데이터의 중복이 없고 용량을 많이 차지하지 않는다.
  • 복구할 때는 전체 백업부터 증분 백업한 데이터를 순서대로 복구해야 최신 데이터를 복구할 수 있다.

차분 백업

  • 이전에 수행한 전체 백업을 기준으로 변경된 데이터만 백업하는 것
  • 전체 백업을 복구하고 가장 최근에 차분 백업을 복구하면 가장 최근의 데이터로 복구됨

tar를 이용한 전체 백업

  • tar zcvpf [아카이브 이름] - -exclude=[예외] /
  • exclude 옵션을 이용하여 백업 파일이 저장되는 경로는 제외한 나머지 / 전체를 백업한다.

tar를 이용한 증분 백업

  • tar zcvpf [아카이브 이름] -g [리스트 파일 이름] [경로]
  • -g 옵션을 이용하면 리스트를 만들어 백업 정보를 따로 저장해준다.
  • -p 옵션을 이용하면 기존의 파일 시스템의 권한 정보를 그대로 유지한다.

tar를 이용한 복구

  • tar zxcpf [아카이브 이름] -C [복구할 경로] -g [리스트 파일 이름]
  • -C 옵션을 이용해서 아카이브 및 압축을 해제하면 특정 경로는 지정해서 해당 경로에 풀 수 있다.

dump를 이용한 백업

  • dump [옵션]f [백업 장치] [백업 대상]
  • 0 : 전체 백업
  • -1 ~ 9 : 증분 or 차분 백업(자신보다 낮은 레벨 중 가장 가까운 레벨의 내용과 비교해서 변환 내용만 백업)
  • -파일 시스템 단위로 백업

restore를 이용한 복구

  • restore -rvf [백업 파일 or 장치]
  • 작업 경로를 복구하길 원하는 경로로 이동 후 명령어 실행
  • 복구 명령어를 실행하면 작업 디렉터리에 restoresymtable 파일이 생성
  • 해당 파일은 증분 복구와 복구 사이의 진행 정보 등이 저장되어 있음
  • 따라서 증분 백업을 모두 복구하기 전에 삭제 x
  • 복구가 끝나면 모두 삭제

dd를 이용한 백업

  • dd if=[백업할 장치] of=[저장할 위치] [bs=[크기] count=[숫자]]
  • 블록 크기와 카운트를 지정하지 않으면 디스크 장치 단위로 백업 및 복구
  • 블록 크기와 카운트를 지정하면 해당 용량만큼만 백업 및 복구 또는 복사

네트워크 설정

 

  • 리눅스에서는 ifconfig 윈도우에서는 ipconfig
  • ifconfig [장치명] [IP주소] netmask [서브넷 마스크]

route 명령어

route add default gw [GW 주소]

dhclient [장치명]

  • /etc/sysconfig/network-script/ifcfg-ens33 파일로 설정
  • ifcfg-ens33 파일에 BOOTPROTO=dhcp로 바꾼다.  static으로 설정하면 ip 주소를 수동으로 할당하고 dhcp로 설정하면 dhcp가 자동으로 할당
  • ONBOOT=yes로 바꾼다. 부팅될 때 또는 서비스가 실행될 때 이 파일을 적용시킨다.
  • BOOTPROTO를 static으로 바꾸면 파일에 IPADDR=[주소] NETMASK=[서브넷] GATEWAY=[주소] DNS1=[주소]를 추가로 설정해야 된다.
728x90
728x90

단일 작업 스케줄링

at [시간]

  • at > 실행할 명령어 Ctrl + D(종료)
  • at -l : 작업 조회할 때
  • at -r [작업 번호] : 작업 삭제할 때

반복 작업 스케줄링

작업 예약할 때

  • crontab -e

명령어 실행하면 편집기가 실행되고 편집기를 이용하여 내용을 작성

요일 명령어
0 ~ 59 0 ~ 23 1 ~ 31 1 ~ 12 0 ~ 6  

작업 삭제할 때

  • crontab -r 
  • 문서 들어가서 내용 삭제해도 된다.

스케줄링 접근제어

블랙리스트 방식

  • at.deny, cron.deny
  • 우선 모두 허용하고 리스트에 있는 특정 사용자들만 거부하는 방식

화이트리스트 방식

  • at.allow, cron.allow
  • 우선 모두를 거부하고 리스트에 있는 특정 사용자들만 허용하는 방식
  • 작업 스케줄링 접근제어 파일은 관리자가 따로 생성해주어야 한다.

블랙리스트와 화이트리스트 모두 사용하는 경우 화이트리스트 방식이 우선시된다.

728x90
728x90

디스크 추가부터 사용하기까지 과정

ex4의 파일 시스템 구조

mkfs [이름]

  • 파일 시스템 생성

마운트

특정 디렉터리와 특정 장치를 연결한다.

mount [옵션] [장치] [마운트 포인트]

[옵션]

  • -t : 특정 파일시스템의 종류를 지정

[장치]

  • 마운트 포인트와 연결할 장치를 지정, 일반적으로 파일 시스템을 생성한 파티션이 온다.

[마운트 포인트]

  • 특정 디렉터리를 지정, 해당 디렉터리로 접근 시 지정한 장치로 이동됨

마운트 해지

umount [장치] or [마운트 포인트]

 

/etc/fstab

자동 마운트 설정 파일, 재부팅하면 mount 설정한 정보들이 다 지워진다.

 

슈퍼블록 복구 명령어

fsck -b [백업 블록 번호] [복구할 장치]

ex) fsck -b 8193 -fy /dev/sdf1

728x90
728x90

리눅스의 전통적인 부팅 과정

부팅 메뉴 파일

  • /boot/grub2/grub.cfg

커널 이미지 파일

  • vmlinuz

부팅할 때 나오는 메시지

  • /var/log/boot.log

런레벨

시스템의 상태를 나타내는 값

0 halt(시스템 종료)::Run-level 을 0으로 변경하면 시스템 종료
1 Single User Mode::시스템 복원 모드::기본적으로 “관리자 권한”을 획득(주로 파일 시스템 점검, 패스워드 분실 했을 때 또는 복구 할 때 사용)
2 Multi User Mode without NFS(Network File System :: 공우 파일)(네트워크를 사용하지 않는 텍스트 유저 모드)
3 Full Multi User Mode(거의 모든 자원 사용 가능한 텍스트 유저 모드)
4 Unused(사용 X)
5 level 3와 비슷하나 x윈도우가 실행된 그래픽 유저 모드
6 Reboot(시스템 재부팅) :: Run-level을 6으로 변경하면 시스템 재부팅
  • 런 레벨은 숫자 또는 문자로 표현된 시스템의 상태
  • 런 레벨은 서비스와 사용자가 사용할 수 있는 자원들에 대해 정의하고 있음

런레벨 관련 명령어

  • who -r : 현재 및 이전 런레벨을 확인하는 명령어
  • init [런레벨] : 런 스크립트를 실행시키는 명령어

시스템 부팅 관련 명령어

  • shutdown : rc 스크립트를 실행, init 명령어와 비슷한 기능을 수행, init과는 다르게 로그인 중인 모든 사용자에게 종료 시기를 알려준다.
  • shutdown -r : 재부팅
  • shutdown -h : 종료
  • shutdown -t : 시간 지정
  • halt, poweroff : rc0 스크립트들을 실행하지 않으므로 해당 프로세스가 있으면 문제가 발생할 수도 있다.
  • reboot : 기본적으로 시스템을 런레벨 3으로 설정하면서 시스템을 즉시 종료시킨다. rc0 스크립트들을 실행하지 않으므로 해당 프로세스가 있으면 문제가 발생할 수도 있다.

systemd

  • 리눅스를 부팅하면 커널이 가장 먼저 실행시키는 프로세스
  • 기존의 리눅스는 가장 먼저 init 프로세스를 실행하고 init 프로세스가 필요한 다른 프로세스를 실행
  • 기존의 init 프로세스는 단계적으로 런 레벨을 올려가며 해당 런 레벨의 rc스크립트를 차례대로 실행
  • 하지만 init은 아주 오래전 리눅스에서부터 사용하던 아주 오래된 프로세스였고 이에 계속해서 기능이 추가되면서 프로그램들이 복잡해지다 보니 효율 또한 떨어지게 됐다.
  • 이에 systemd는 init의 단점을 보안하며 기존 리눅스의 의존성을 해치지 않도록 개발되었다.
  • systemd는 가능한 한 병렬로 시작 프로그램들을 실행시키는 것만으로 부팅 속도를 끌어올리고, 프로그램 실행을 위한 파일로는 쉘 스크립트가 아니라 service라는 systemd 만의 unit을 통해 체계적이면서 가독성이 좋도록 계발되었다.
  • systemd는 단지 init 뿐만 아니라 다른 프로그램들의 기능마저 대체
  • 네임서버 주소를 설정하는 resolv.conf의 자리를 systemd-resolved가 대체, DHCP 서버에서 IP를 받아와서 네트워크 인터페이스에 설정하는 dhcpcd의 자리를 systemd-network가 대체
  • systemd는 전체 시스템을 시작하고 관리하는 데 유닛이라 부르는 구성 요소를 사용
  • systemd는 관리 대상의 이름을 ‘서비스 이름, 유닛 종류'의 형태로 관리
  • 유닛은 같은 이름과 종류로 구성된 설정 파일과 동일한 이름을 사용

유닛 기능 예

service 데몬의 시작, 종료, 재시작 담당 atd.service
socket 소켓을 관리하는 유닛 dbus.socket
device 리눅스의 여러 장치들을 관리 dev-sda.device
mount 마운트 포인트 관리 boot.mount
automount 자동 마운트 포인트 관리 proc-sys-fs-binfmt_misc.automount

systemd를 제어하는 명령어

systemctl [옵션] [명령] [유닛 이름]

옵션

  • -a : 상태와 관계없이 유닛 전체를 출력한다.
  • -t [유닛의 종류] : 지정한 종류의 유닛만 출력한다.

명령

  • start : 유닛을 실행한다.
  • stop : 유닛을 정지한다.
  • reload : 유닛의 설정 파일을 다시 읽어온다.
  • restart : 유닛을 재시작한다.
  • status : 유닛의 현재 상태를 확인한다.
  • enable : 부팅 시 유닛을 자동으로 시작되도록 설정한다.
  • disable : 부팅 시 유닛이 자동으로 시작되지 않도록 설정한다.
728x90
728x90

패스워드 관련 파일 및 명령어

패스워드 정책

  • 대소문자, 숫자, 특수문자를 혼용하여 8글자 이상의 패스워드를 사용
  • 동일 문자를 연속 4회 이상 사용 금지
  • 패스워드 히스토리를 관리해 2 ~ 3개 이상 동일 패스워드를 사용 금지
  • 패스워드 변경 주기를 설정(패스워드 유효기간을 90일 이하로 설정)
  • 사전에 나오는 쉬운 단어나 이름은 패스워드로 사용하지 못하도록 설정
  • 기본 설정된 패스워드는 사용되지 못하도록 설정
  • 초기 부여된 패스워드는 사용자 최초 접속 시 변경하도록 설정

패스워드 정책 설정 파일

  • /etc/security/pwquality.conf

패스워드 기본값 설정 파일

  • /etc/login.defs

패스워드 관련 명령어

passwd [사용자명]

  • 해당 사용자의 패스워드를 변경
  • 사용자 명을 입력하지 않으면 현재 사용자의 패스워드로 변경
  • -n : 패스워드 변경 후 최소 사용 기간
  • -x : 패스워드 변경 후 최대 사용 기간
  • -w : 패스워드 만기일 이전에 사용자에게 경고 메시지를 전달할 날짜 지정
  • -f : 최초 로그인 시에 강제로 패스워드를 변경하도록 설정
  • -d : shadow 파일의 패스워드 필드 값을 제거, passwd 입력 없이 로그인 가능
  • -l : 해당 사용자의 상태를 locking으로 변경
  • -s : 해당 사용자의 현재 패스워드 설정 조회

접근 제어

su [-] [사용자 명]

  • 다른 사용자로 로그인할 때 사용한다.
  • -(dash)의 유무
  • su -root : 입력한 사용자의 사용자 초기화 파일 적용
  • su root : 현재 사용자의 환경을 유지, 사용자 초기화 파일 적용 x

who : 접속 정보

who am i : 현재 터미널에 대한 접속 정보

whoami : 로그인 명

last : /var/log/wtmp 파일을 참조해서 로그인했던 정보를 출력해주는 명령어, 자신의 시스템에 접속한 정보를 확인할 수 있다. (IP 확인 가능)

 

PAM(pluggable Authentication Modules)

  • 시스템에 공통적인 인증 방법을 제공
  • 어떤 보안 인증 기능을 추가할 때 모듈로 만들어서 쉽게 보안 설정 내용들을 교체 또는 추가 제거가 가능하다.
  • 모듈의 종류는 다양하며 각각 모듈의 기능을 정확히 파악하는 것이 중요
  • 프로그램이 사용자 인증이 필요하면 PAM라이브러리를 호출
  • PAM 라이브러리가 호출되면 호출한 응용프로그램의 설정 파일을 검사, 설정 파일의 내용에 맞는 PAM 모듈을 적용
  • 설정 파일이 없으면, 기본 설정 파일을 사용
  • 설정 파일은 사용자 인증을 검사하기 위해 필요한 유형(형식)을 가짐

/etc/pam.d 디렉토리 : PAM을 적용한 프로그램이나 서비스의 설정 내용을 저장해둔 파일들이 모여 있는 디렉터리

/usr/lib64 경로로 들어가면 모듈의 종류를 확인할 수 있다.

자주 사용하는 모듈

  • pam_permit.so, pam_deny.so : 항상 성공/실패를 return으로 접근, 접근을 허용/거부(가장 일반적인 모듈)
  • pam_warn : 호출한 사용자 및 호스트 정보를 messages 로그를 남김
  • pam_access : 계정 또는 IP주소를 이용해서 시스템 접근을 허용/거부
  • pam_pwcheck : /etc/login.defs 파일을 참조하여 암호를 확인하는 명령어
  • pam_security : /etc/security 파일을 참조하여 터미널 장치가 root로 접근할 수 있는지 없는지 판단
  • pam_time : 시간, 쉘 등을 설정할 수 있는 모듈
  • pam_wheel : su 서비스에 사용함, su를 이용한 root 접근을 막을 수 있음
728x90
728x90

사용자 관리 관련 파일

/etc/passwd

user:x:1000:1000:user:/home/user:/bin/bash

: 으로 필드를 구분한다.

user x 1000 1000 user /home/user /bin/bash
로그인명 사용x UID GID 주석(설명) 사용자 홈 디렉터리 로그인 쉘

로그인명

  • 각 사용자는 유일한 이름을 가지고 있어야 함(중복 허용 x)
  • 첫 문자는 영문자 (.-_시스템에 따라 사용 가능)

사용 x

  • (본 사용 목적 : 패스워드를 저장 부분) 현재 사용 x
  • etc/shadow 파일에 따로 저장

UID

  • 로그인명은 중복이 x, 그러나 UID는 중복이 가능
  • 시스템이 사용자를 식별하는 번호
  • (root의 권한을 가질 수도 있음)
  • 일반 사용자는 1000번 이상 사용
  • 일반적으로 1000보다 작은 UID는 예약 UID

GID

  • 해당 사용자가 속해있는 주 그룹의 GID

주석

  • 일반적으로 사용자 전체의 이름을 써준다. 또는 연락처, 부서 등 로그인명만으로 사용자의 구분이 힘들 때 자세한 설명을 쓰는 부분

사용자의 홈 디렉터리

  • 사용자의 홈 디렉터리
  • ~을 사용했을 때 참조하는 부분

로그인 쉘

  • 사용자가 로그인할 때 실행되는 쉘을 지정

계정 정보

root

  • 시스템에서 모든 권한을 가지고 있는 최고 권한 사용자
  • 시스템 내의 보호되는 파일이나 퍼미션 등의 제한 사항에 대해 대부분 영향을 받지 않는다.

bin

  • 시스템의 구동 중인 바이너리 파일을 관리하기 위한 계정

daemon

  • 백그라운드 프로세스에 대한 작업을 제어하기 위한 시스템 계정

adm

  • 시스템 로깅이나 특정 작업을 관리하는 시스템 계정

ip

  • 프린트를 위한 계정

gdm

  • Gnome Display관리 서비스 계정

/etc/shadow

name:encrypted_password:last_password_change:minimum:maximum:warning:inactivity:expiration

name : user 이름

encrypted_password

  • $id$salt$hashed
  • 암호화에도 $로 구분이 된다.
  • $id: 해싱 알고리즘(어떤 알고리즘을 사용했는지)
  • $1$: MD5
  • $2a$: Blowfish
  • $2y$: Eksblowfish
  • $5$: SHA-256
  • $6$: SHA-512
  • $salt: 해싱에 사용된 솔트(salt) 값
  • $hashed: 해싱된 비밀번호 값
  • *LK* : 해당 사용자는 로그인할 수 없는 lock이 걸린 사용자
  • window의 암호 저장 파일 경로 : C:Windows/System32/config/SAM

last_password_change : 패스워드 바꾼 날짜 1970/1/1일 기준으로 날짜까지 count

minimum : password 변경 후 최소 사용 기간

maximum : 최대 사용 기간

warning : 패스워드 만기일(expiration)부터 며칠 전부터 경고를 해줘라

inactivity : 얼마 기간 동안 로그인을 안 하면 잠금 계정으로 바꿀지 날짜를 지정해주는 필드

expiration : 패스워드 만기일 시간이 지나면 잠금 계정(locking)이 된다. 관리자가 해제를 해야 로그인을 할 수 있다.

Reserved : 예약 필드, 현재는 사용 안 함

/etc/group

root:x:0:

  • root : 그룹 이름
  • x : 패스워드
  • 0 : GID
  •  : 사용자 목록, 해당 그룹을 보조 그룹으로써 참조하는 사용자들의 로그인명을 작성

사용자 및 그룹 관리 명령어

useradd

useradd [옵션] [아규먼트] [사용자 이름]

  • -u : UID를 지정
  • -g : 주 그룹의 GID 설정
  • -G : 보조 그룹의 GID 설정
  • -d : 홈 디렉터리
  • -m : 홈 디렉터리 지정 시 홈 디렉터리가 존재하지 않는 경우 해당 디렉터리를 자동으로 생성하도록 하는 옵션
  • -s : 로그인 쉘 설정
  • -c : 주석(사용자에 대한 설명)
  • -f : 휴면 계정 전환 날짜 지정
  • -e : 만료일 지정

usermod

usermod [옵션] [아규먼트] [사용자 이름]

  • -u : UID를 지정
  • -g : 주 그룹의 GID를 설정
  • -G : 보조 그룹의 GID를 설정
  • -d : 홈 디렉터리
  • -s : 로그인 쉘 설정
  • -c : 주석(사용자에 대한 설명)
  • -f : 휴먼 계정 전환 날짜 지정
  • -e : 만료일 지정

userdel

userdel [옵션] [사용자 이름]

  • -r : 해당 사용자가 사용하던 홈 디렉터리도 같이 삭제

group 관련 명령어

groupadd

  • -g : 그룹의 GID 지정
  • -o : GID 중복 설정 가능하게 하는 옵션

groupmod

  • -g : 그룹의 GID 지정
  • -o : GID 중복 설정 가능하게 하는 옵션

groupdel

  • 그룹을 제거할 때 사용하는 명령어
728x90
728x90

부모 프로세스

다른 프로세스를 생성할 수 있는 프로세스

자식 프로세스

부모 프로세스로부터 만들어지는 프로세스

정상적으로 자식프로세스 종료 후 부모 프로세스 종료

데몬 프로세스

일반적으로 사용자가 실행시키지 않고 커널에 의해 구동, 백그라운드로 동작

특정 서비스를 제공하기 위해 구동

파일 이름 끝에 ‘d’를 붙여서 사용하는 것이 일반적

‘Window’의 서비스와 같은 존재

고아 프로세스

일반적으로 자식 프로세스는 종료되면 부모 프로세스로 되돌아 가는데 부모 프로세스가 먼저 종료된 경우에 자식 프로세스를 고아 프로세스라고 한다.

고아 프로세스는 init 프로세스가 처리해준다.

좀비 프로세스

정상적으로 프로세스를 종료했지만 자원을 반납하지 않은 상태로 계속 남아있는 상태(자원을 점유한 상태에서 동작하지 않는 프로세스)

프로세스 관련 명령어

ps : 윈도우의 작업관리자와 비슷하다.

  • -ef : 좀 더 상세하게 나타내주고 내가 실행하지않은 운영체제가 자동으로 실행해준 프로세스도 나온다.
  • -e : 시스템 상의 모든 프로세스 정보를 출력
  • -f : 상세한 정보를 출력
  • UID : 프로세스 소유자 아이디
  • PID : 프로세스 아이디
  • PPID : 부모 프로세스 아이디
  • C : 스케줄링을 위한 CPU 사용량, 별도 의미 없는 필드
  • STIME : 프로세스 시작 시간
  • TTY : 장치 번호
  • TIME : 프로세스에 대한 누적 실행 시간
  • CMD : 명령 옵션 + 아규먼트

pstree : 프로세스 부모 자식 관계를 트리 형태로 나타난다.

pgrep : PID만 뽑을 수 있다.

프로세스 제어 명령어

시그널 번호 (시그널은 프로세스를 제어하기 위해서 프로세스에게 전달하는 신호값)

1 SIGHUP(Sig Hang Up)
프로세스 종료 없이 프로그램을 새로 초기화
2 SIGINT
Interrupt
Ctrl + c 명령어 실행 중 중단 명령어 
9 SIGKILL
kill 무시할 수 없는 종료(Strongest)
15 SIGTERM
terminate
무시할 수 있는 종료

kill : PID로 프로세스를 제어

pkill : 프로세스 이름으로 제어 :: 이름에 해당하는 프로세스 모두 down가능

아카이브

  • 아카이브는 여러가지 목적이 있지만 전통적으로 사용된 용도는 파일의 저장용도로 사용되었다.
  • 테이프 장치에 파일을 보관하여 백업하거나 여러 파일을 하나의 파일로 묶어서 보관
  • 현재는 파일을 저장할 때뿐 아니라 단순히 여러 파일을 하나의 파일로 묶을 때도 사용
  • 일반적으로 프로그램을 tar 아카이브 후 gzip 압축한 형태로 배포하는 경우가 많다.

아카이브 관련 명령어

tar [기능] [아카이브 파일] [묶을 파일 1] [묶을 파일2] [묶을 파일3] ….

기능

  • c : 새로운 아카이브 파일을 생성
  • x : 아카이브 파일에서 여러 파일을 해제
  • t : 아카이브 파일에서 안의 내용을 조회
  • v : verbose, 명령어 수행과정을 자세히 출력
  • f : 아카이브 장치 지정(파일 또는 백업 장치를 지정)

아카이브 생성

tar cvf fruits.tar banana apple kiwi

아카이브 해제

tar xvf fruits.tar

압축

  압축 해제
zip zip [압축 파일 이름] [압축 파일 이름] … unzip [압축 파일 이름]
gzip gzip [압축 파일 이름] gunzip [압축 파일 이름]
bzip2 bzip2 [압축 파일 이름] bunzip2 [압축 파일 이름]

tar로 묶은 파일을 gzip으로 압축했을 때 한번에 풀려면 tar zxvf [파일 이름]

728x90

+ Recent posts