17일차

장민우·2024년 4월 18일

압축


  • compress : Unix시스템에서 사용하는 압축 도구, 압축시 파일명 맨 뒤엔 .z확장자가 추가됨.

  • compress 압축
    $ compress FILE

  • compress 압축 해제
    $ uncompress FILE


  • gzip(GNU Zip) : Linux의 기본 압축 도구로 널리 사용되므로 호환성이 좋은 압축 도구임. 압축시 파일명 맨 뒤엔 .gz확장자가 추가됨.

  • gzip 압축 해제
    $ gunzip GZIP_FILE
    $ gzip -d GZIP_FILE


  • bzip2 : gzip 보다 압축 효율을 개선한 새로운 압축 도구 압축시 파일명 맨 뒤에 .bz2 확장자가 추가됨.

  • bzip2 압축
    $ bzip2 BZIP2_FILE

  • bzip2 압축 해제
    $ bunzip2 BZIP2_FILE
    $ bzip2 -d BZIP2_FILE


  • xz : 가장 최근에 개발된 압축 도구로 기존의 gzip, bzip2 압축 도구보다 압축율이 높은 압축 도구 Solid 압축 방식을 사용함. 압축시 파일명 맨 뒤에 .xz 확장자가 추가됨.

  • xz 압축
    $ xz File

  • xz 압축 해제
    $ unxz XZ_FILE
    $ xz -d XZ_FILE


아카이브 및 압축

  • tar(Tape Archive)

  • tar 압축 명령
    - Z : compress 방식으로 아카이브 및 압축

    • z : GZip 방식으로 아카이브 및 압축
    • j : bzip2 방식으로 아카이브 및 압축
    • J : xz 방식으로 아카이브 및 압축
  • gzip 방식으로 아카이브 및 압축 동시에 실행하는 예시

    • gzip 아카이브 압축 파일 생성
      $ tar zcf TAR_FILE FILE...
      $ tar zcvf TAR_FILE FILE...
      v : 작업 과정을 자세히 출력 (verbose)
    • gzip 아카이브 압축 파일 목록 확인
      $ tar ztf TAR_FILE
      $ tar ztvf TAR_FILE
    • gzip 아카이브 압축 파일 추출 (Extract)
      $ tar zxf TAR_FILE
      $ tar zxvf TAR_FILE
      특정 디렉터리에 아카이브 파일 추출
      $ tar zxvf TAR_FILE -C DESTINATION_PATH

사용자 및 그룹관리


  • 사용자 : 시스템을 사용하는 대상을 식별하기 위한 엔티티
    반드시 1개 이상의 그룹에 속해야 함.

  • 그룹 : 사용자 계정을 묶어서 관리하기 위한 단위

/etc/passwd - 시스템에 등록된 사용자 정보를 저장.
/etc/shadow - 사용자의 패스워드를 해시패시워드 형태로 저장.
/etc/group - 그룹에 대한 정보를 저장.

  • /etc/passwd 구조
    USER:x:UID:GID:GECOS:HOME:SHELL
필드설명
USER사용자의 이름을 나타낸다. 사용자의이름은 시스템에서 유일해야 하며 사용자로 로그인 할 때 사용.
x(place holder)사용자의 패스워드를 저장하는 필드. 현재 이 필드는 사용되지 않으며, 현재 패스워드에 대한 정보는 /etc/shadow 파일에 해시 패스워드 형태로 저장.
UID시스템에서 사용자를 식별하는 번호. 0번은 root 사용자를 의미하며 1000번 미만은 시스템 사용자 계정으로 예약되어 있고 일반 사용자는 1000번부터 부여된다.
GID시스템에서 그룹을 식별하는 번호. 사용자와 머ㅏ찬가지로 0번은 root그룹이며 1000번 미만은 시스템 그룹으로 예약되어있고 1000번 이상부터는 일반 그룹에게 부여됨.
GECOSGECOS(General Electrics Comprehensive Operation)라는 형식의 주석 필드. 사용자의 계정에 대한 주석을 기재할 수 있음.
HOME사용자의 홈 디렉토리를 절대경로로 나타냄.
SHELL사용자가 기본으로 사용할 쉘을 나타냄.

사용자 계정 생성


(1) useradd USER
(2) passwd USER

useradd [option] [argument]

  • OPTION
옵션설명
-u UID사용자의 UID를 지정한다.
-U사용자를 생성할 때 사용자와 같은 이름의 그룹을 생성한다.
-g GID사용자의 기본 그룹을 지정한다.
-G GID사용자의 보조 그룹을 지정한다.
-c 주석사용자에 대한 GECOS를 지정한다.
-d 디렉토리사용자의 홈 디렉터리를 지정한다.
-s 쉘사용자의 기본 쉘을 지정한다.
-o사용자를 생성할 때 UID의 중복을 허용한다.
-p 패스워드사용자를 생성할 때 패스워드를 지정한다. 이 옵션을 사용하면 /etc/password 의 두 번째 필드에 패스워드가 저장된다. 현재 사용 x
-rUID가 199부터 999인 시스템 계정을 만들 때 사용한다.
-m사용자의 홈 디렉토리가 존재하지 않을 경우 생성해준다.
-e 만기일사용자 생성 시 /etc/shadow 파일의 EXPIRE 필드 값을 지정한다.
-f 기간사용자 생성 시 /etc/shadow 파일의 INACTIVE 필드 값을 지정한다.
  • 그룹

    • 기본그룹(주 그룹, Primary Group): 사용자가 기본으로 속하는 그룹, 대부분의 경우 사용자가 생성한 파일의 소유그룹은 사용자의 기본 그룹으로 지정됨. 기본 그룹의 경우 사용자 별로 반드시 1개의 그룹에 속해야 함. -g Group 사용자계정

    	<br>
    • 보조그룹(Sulpplementary Group): 주그룹 이외의 그룹, -G 옵션 사용하여 추가
      보조그룹은 사용자가 필수로 속해야 하는 그룹이 아니고 여러개의 보조그룹에 속할 수 있다.

      -G GROUP [OPTION] 사용자계정

보조그룹을 sys설정하고 user04 계정 생성.

/etc/group 안에
sys:x:3:user04은
GROUP:GROUP_PASSWORD:GID:USERS(보조그룹의 구성원)을 나타냄.

  • c 주석

    ※ 큰따옴표 주의.

  • 홈디렉터리 생성
    $vim /etc/logins.defs 에서 CREATE_HOME 옵션을 no로 설정하면


사용자 계정 user08,09의 홈디렉터리가 확인은 되지만.


ls -l /home
실제로는 user08,09의 홈 디렉터리가 만들어지지 않은 것을 알 수 있다.

이럴 경우 -m 옵션을 사용하거나

-m -d 옵션으로 직접설정해줘야 한다.

사용자 계정 변경


$usermod [OPTION]... USER

  • OPTION
옵션설명
-u UIDUID 변경
-g GID기본 그룹(GID) 변경
-G GID보조 그룹 변경
a보조 그룹 추가 가입 (-G 옵션과 함께 사용)
-d HOMEDIRHome Directory 변경
-m변경된 홈 디렉터리로 홈 디렉터리를 이동
-s SHELL사용자의 기본 쉘 지정
  • 예시

  • 예시2 (보조그룹 추가)



사용자 계정 삭제


$userdel [OPTION] ..USER
그냥 userdel을 사용할 경우 홈 디렉터리와 메일함이 남아있기 때문에 -r 옵션을 권장한다.
$userdel -r ..USER
-r : 사용자의 홈 디렉터리, 메일함 등을 함께

그룹

  • 그룹 생성
    $groupadd [OPTION]... GROUP
    -g GID : GID 지정
    -r : System Group의 GID 범위내에서 GID를 임의로 할당
  • 그룹 수정
    $groupmod [OPTION]... GROUP
    -g GID : GID 변경
    -n NEW_GROUP : GROUP 이름을 새로운 이름으로 변경
  • 그룹 삭제
    $groupdel GROUP

0개의 댓글