리눅스 배포판마다 조금씩 다르므로, 본 포스팅에서는 데비안 계열을 기본으로 합니다.(필요시 코멘트 달았음)

 

1. /etc/passwd 설명

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin

 

":" 을 구분자로 7개의 필드로 이루어져 있으며, 각 필드는 아래와 같은 데이터를 지님

{유저이름}:{암호화된패스워드}:{numeric uid}:{numeric gid}:{use name or comment}:{home directory}:{login shell}

  • 암호화된패스워드: x 로 숨겨져있으며, 실제 값은 /etc/shadow 파일에 존재한다.
  • numeric uid:
    • 0: root
    • 1~999: system account(데비안 계열인 경우)
    • 1000~60000: local user(사용자 계정)
    • 60000~65535: system account
  • numeric gid: 기본적으로 user 마다 개인그룹이 생성되며, numeric uid 와 동일한 숫자를 가짐
  • login shell: nologin 인 경우 시스템 계정으로, 로그인이 차단된 계정이다.

 

2. /etc/shadow 설명

root:*:20007:0:99999:7:::
daemon:*:20007:0:99999:7:::
bin:*:20007:0:99999:7:::

 

2번째 필드가 패스워드를 의미하며, *, ! 가 들어있는 경우는 login lock 걸린 유저임.(로그인 불가)

 

3. /etc/group 설명

root:x:0:
daemon:x:1:
bin:x:2:
sample:x:3:test1,test2,test3

 

 

":" 을 구분자로 4개의 필드로 이루어져 있으며, 각 필드는 아래와 같은 데이터를 지님

{그룹명}:{그룹패스워드}:{gid}:{본 그룹을 추가그룹으로 가지는 유저들}

 

4. 계정 추가

useradd[ options] {유저명}

 

자주 사용하는 옵션 설명

  • -u: uid 지정
  • -g: gid 지정. 지정하지 않으면 1000번부터 auto increment 로 uid 가 할당됨
  • -c: 코멘트 작성
  • -d: home directory 지정
  • -e: 로그인 가능한 최대 날짜 지정
  • -G: 추가그룹 지정. 여러개 지정시 "," 로 구분자 사용
  • -m: home directory 자동 생성(레드헷 계열에서는 옵션을 지정하지 않아도 자동생성됨)
  • -o: uid 중복가능하도록 함
  • -p: 패스워드 지정. 지정 안할시 로그인 불가능 유저로 생성됨
  • -r: 시스템 계정임을 명시
  • -s: login shell 지정. 기본값 /bin/sh

 

5. 패스워드 지정

passwd {유저명}

 

패스워드를 지정하면 로그인 가능한 계정이 된다.

/etc/shadow 파일에 암호화된 패스워드가 추가된다.

 

6. 계정 정보 변경

usermod[ options] {유저명}

 

기본적으로 useradd 와 동일한 옵션을 가지며, 아래 옵션이 추가적으로 존재한다.

  • -a: 추가그룹 추가(새로 지정이 아닌 추가임. -G 옵션과 항상 같이 쓴다.)
  • -l: 유저명 수정
  • -L: 계정 잠그기. /etc/shadow 의 패스워드 앞에 "!" 문자가 추가된다.
  • -U: 계정 잠금 풀기

 

7. 계정 삭제

userdel[ options] {유저명}

 

  • -r: 메일 사서함과 home directory 까지 지우기

 

8. 그룹 추가

groupadd[ options] {그룹명}

 

  • -g: gid 지정

 

9. 그룹 변경

groupmod[ options] {그룹명}

 

  • -g: gid 변경

 

10. 그룹 삭제

groupdel {그룹명}

 

추가그룹만 삭제 가능하며, 해당 그룹을 추가그룹으로 가지고 있던 계정에게서 해당 추가그룹이 삭제된다.

 

블로그 이미지

망원동똑똑이

프로그래밍 지식을 자유롭게 모아두는 곳입니다.

,

파일을 압축할 때는 한개의 파일씩 압축할 수 있다.

그러므로, 여러개의 파일 또는 여러개의 파일이 포함된 디렉토리를 압축하고자 할 때는, 먼저 한개의 파일로 합쳐야 한다.

이때, 한개의 파일로 합치는 작업을 archiving 이라고 하고, 압축하는 작업을 compression 이라고 한다.

 

1. 파일 및 디렉토리 archiving 하기

  • 명령어: tar -cf {결과파일명}.tar {대상파일명1}[ {대상파일명2} [...{대상파일명n}]]
  • 설명: 여러개의 디렉토리나 파일을 하나의 파일로 합치는 명령어로, 파일 권한이나 생성, 수정 날짜 모두 유지된다.
  • 예시:
    log_1.log log_2.log 파일을 log.2025-03-01.tar 으로 합치기.
tar -cvf log.2025-03-01.tar log_1.log log_2.log


2. archiving 된 파일 내용 확인하기

  • 명령어: tar -tvf {대상파일명}.tar
  • 설명: 합쳐진 tar 파일의 내용을 출력한다.
  • 예시:
tar -tvf log.2025-03-01.tar

 

3. archiving 된 파일 복구하기

  • 명령어: tar -xvf {대상파일명}.tar
  • 설명: 합쳐진 tar 파일의 내용을 합치기 이전으로 복구한다.
  • 예시:
tar -xvf log.2025-03-01.tar

 

4. 파일 compression 하기

파일 compression 에는 gzip, bzip2, xz, zip 유틸리티 중 하나가 사용된다.

gzip, bzip2, xz 는 파일 단위로만 압축 가능하다.(따라서, 여러개의 파일을 압축하고자 할 때는 archiving 을 먼저 해줘야 한다.)

 

  • gzip 명령어: gzip {대상파일명}
    => {대상파일명}.gz 으로 압축됨.
    => 원본파일이 삭제됨.
    => 파일 단위로만 압축 가능함.

 

  • bzip2 명령어: bzip2 {대상파일명}
    => {대상파일명}.bz2 으로 압축됨.
    => 원본파일이 삭제됨.
    => 파일 단위로만 압축 가능함.

 

  • xz 명령어: xz {대상파일명}
    => {대상파일명}.xz 으로 압축됨.
    => 원본파일이 삭제됨.
    => 파일 단위로만 압축 가능함.

 

  • zip 명령어: zip {압축파일명}.zip {대상파일명}
    => {대상파일명}.zip 으로 압축됨.
    => 원본파일 유지됨.
    => 디렉토리 압축 가능함.(-r 옵션 필요)

 

5. compression 된 파일 내용 확인

gzip, bzip2, xz, zip으로 compression 된 압축파일의 내용을 압축을 풀지 않고도 확인할 수 있다.

 

  • zcat 명령어: zcat {대상파일명}.gz
    => gzip 압축파일 내용 확인

 

  • bzcat 명령어: bzcat {대상파일명}.bz2
    => bzip2 압축파일 내용 확인

 

  • xzcat 명령어: xzcat {대상파일명}.xz
    => xz 압축파일 내용 확인

 

  • unzip 명령어: unzip -l {대상파일명}.zip
    => zip 압축파일 내용 확인

 

6. compression 된 파일 압축 풀기

gzip, bzip2, xz, zip 로 compression 된 압축파일을 푼다.

 

  • gunzip 명령어: gunzip {대상파일명}.gz
    => gzip -d {대상파일명}.gz 와 동일
    => 압축파일이 삭제됨.

 

  • bunzip2 명령어: bunzip2 {대상파일명}.bz2
    => bzip2 -d {대상파일명}.bz2 와 동일
    => 압축파일이 삭제됨.

 

  • unxz 명령어: unxz {대상파일명}.xz
    => xz -d {대상파일명}.xz 와 동일
    => 압축파일이 삭제됨.

 

  • unzip 명령어: unzip {대상파일명}.zip
    => zip -d {대상파일명}.zip 와 동일
    => 압축파일 유지됨.

 

요약

  압축 명령어 압축파일 확장자 원복파일 삭제 여부 압축파일 내용보기 명령어 압축풀기 명령어 압축파일 삭제 여부 디렉토리 압축가능 여부
gzip gzip {대상파일} gz O zcat {대상파일}.gz gunzip {대상파일}.gz

gzip -d {대상파일}.gz
O X
bzip2 bzip2 {대상파일} bz2 O bzcat {대상파일}.bz2 bunzip2 {대상파일}.bz2

bzip2 -d {대상파일}.bz2
O x
xz xz {대상파일} xz O xzcat {대상파일}.xz unxz {대상파일}.xz

xz -d {대상파일}.xz
O X
zip zip[ -r] {압축파일}.zip {대상파일 or 디렉토리} zip X unzip -l {대상파일}.zip unzip {대상파일}.zip

zip -d {대상파일}.zip
X O

 

7. archiving + compression

tar 커맨드의 옵션을 주어 archiving 과 compression 을 한번에 할 수 있다.

  • tar + gzip 커맨드: tar -czvf {압축파일명}.tar.gz {대상디렉토리명}
  • tar + bzip2 커맨드: tar -cjvf {압축파일명}.tar.bz2 {대상디렉토리명}
  • tar + xz 커맨드: tar -cJvf {압축파일명}.tar.xz {대상디렉토리명}

 

8. decompression + unarchiving

tar 커맨드의 옵션을 주어 decompression 과 unarchiving 을 한번에 할 수 있다.

  • tar + gzip 커맨드: tar -xzvf {대상파일명}.tar.gz
  • tar + bzip2 커맨드: tar -xjvf {대상파일명}.tar.bz2
  • tar + xz 커맨드: tar -xJvf {대상파일명}.tar.xz
블로그 이미지

망원동똑똑이

프로그래밍 지식을 자유롭게 모아두는 곳입니다.

,