본문 바로가기
IT/Linux

권한 / 프로세스

by 혁클 2021. 3. 24.

권한

  • 기본 권한 : 소유자 / 소유 그룹 / 기타
  • 특수권한
  • ACL (Access Control List)

 

기본 권한

  • 소유자/소유그룹/기타사용자
  • 권한의 분류 : 읽기(Read), 쓰기(Write), 실행(eXecute)
  • 파일/디렉터리에서 각 권한의 의미
    • 일반 파일
      • 읽기 - 파일의 내용을 볼 수 있는 권한
      • 쓰기 - 파일의 내용을 수정할 수 있는 권한
      • 실행 - 실행파일(Binary), 스크립트(Read+eXecute)
    • 디렉토리 (=개체의 목록을 가지고 있는 파일)
      • 읽기 - 디렉토리 내의 개체 목록을 읽을 수 있는 권한
      • 쓰기 - 해당 디렉토리 내에 개체의 목록을 수정할 수 있는 권한
      • 실행 - 해당 디렉토리에 진입할 수 있는 권한
  • 각 권한에 대한 설정 방법
    • 권한을 설정할 수 있는 주체: 파일의 소유자 + root
    • 권한 변경 명령 : chmod [권한 설정 내용] <대상 개체>\
      • -R 옵션 : 디렉터리에 대한 권한을 지정할 때, 하위 항목도 한꺼번에 지정
      • 권한 부여 방법 : 심볼릭 방식 + 8진수 방식
      • 8진수 방식: 0~7 사이의 숫자를 사용하여 RWX 권한을 한꺼번에 지정
        • 일반적으로 4(r--), 5(r-x), 6(rw-), 7(rwx), 0(---)
        • 소유자/소유 그룹/기타사용자의 권한을 한꺼번에 지정
      • 심볼릭 : 대상-연산자-권한
        • 대상 : u(소유자), g(소유 그룹), o(기타), a(모두)
        • 연산자: +(권한 부여), -(권한 제거), =(권한 지정)
        • 권한: r(읽기), w(쓰기), x(실행)
        • 대상과 권한은 복수 지정 가능
          • u+w : 소유자에게 쓰기 권한 추가
          • ug+w : 소유자, 소유 그룹에게 쓰기 권한 추가
          • o+rw : 기타 사용자를 대상으로 읽기, 쓰기 권한 추가
          • a+x : 모든(소유자/소유 그룹/기타) 대상에게 실행 권한 추가
          • u=rw, g=r, o=- : 소유자는 6, 그룹은 4, 기타는 0 권한 지정

 

소유권 : 파일의 소유자/소유그룹 변경

소유권 변경 명령 : chown / chgrp

  • chown : 소유자, 소유 그룹을 각각 또는 한꺼번에 변경 가능
  • chgrp : 소유그룹 변경이 가능
  • 소유그룹 변경 시 제약사항: 일반 사용자는 자신이 포함된 그룹으로만 변경 가능

 

chown

  • 파일의 소유자/소유권을 한꺼번에 변경 가능
  • chown [소유자]:[소유 그룹] <대상 개체>
    • chown [소유자] <대상 개체>
    • chown :[소유 그룹] <대상 개체>
    • -R : 디렉터리의 소유정보 변경시 디렉토리 내 항목도 모두 변경

 

========================================================

 

umask

  • 유닉스/리눅스에 파일 생성 시 적용되는 권한 설정 : 666
  • 유닉스/리눅스에 디렉터리 생성 시 적용되는 권한 설정 : 777
  • umask : 명령어. 현재 설정된 umask 설정값을 확인
  • 666 => 664 777=> 775

 

사용자 환경설정 파일

  • 공통 환경설정 파일 : /etc/profile
  • 사용자별 환경설정 파일 : ~/. profile
  • 쉘 별 환경설정 파일 : ~/. bashrc

 

=======================================================

 

특수권한

  • SetUID : SetUID가 설정된 실행파일을 실행하고 있는 동안은 실행파일의 소유자의 권한을 사용하도록 설정(/usr/bin/passwd, /usr/bin/su). 설정될 경우, 파일 소유자의 권한의 x 부분에 s로 표기. 실행파일에만 영향을 미침. 디렉터리에는 영향이 없음 
  • SetGID : SetGID가 설정된 실행파일을 실행하고 있는 동안은 실행파일의 소유 그룹의 권한을 사용하도록 설정. 설정될 경우, 파일 소유그룹의 권한의 x 부분에 s로 표기. 디렉터리에도 작용함 - 해당 디렉토리에 생성되는 파일의 소유 그룹을 해당 디렉터리의 소유 그룹으로 지정.
  • StickyBit : 디렉터리에만 영향을 줌. 디렉토리에 쓰기 권한이 있는 사용자라 하더라도 자신이 소유한 파일이 아니면 삭제 불가.

 

특수권한 설정

  • chmod 명령을 사용
  • 심볼릭 방식 / 8진수 방식 모두 사용 가능
  • 심볼릭 방식 : SetUID/SetGID는 s권한으로 부여, StickyBit는 o에 대해서 t권한을 부여
  • 8진수 방식 : 8진수 맨 앞자리를 SetUID(4)+SetGID(2)+StickyBit(1)
    • ex) passwd : rws r-x r-x   -  4755
    • ex) SetUID와 SetGID가 동시에 설정된 파일 - 6755 (4+2)
    • ex) /tmp : rwx rwx rwt    - 1777

 

======================================================

 

프로세스 관리

  • 리눅스에서 파일 형태로 저장된 실행 명령은 프로그램
  • 실제로 호출하여 실행하면 프로세스(Process)라고 부름
  • 프로세스는 메모리에 올라와야 동작이 가능함


프로세스 관리 명령어

  • ps : 기본적인 프로세스 목록 확인 도구
    • 자주 사용하는 옵션
      • ps -ef : -e 현재 쉘에서 실행되는 프로세스 이외의 시스템 프로세스 조회, -f : 상세정보 조회
      • ps aux : 프로세스 별 자원 사용량 등을 상세하게 조회
  • pstree : 프로세스의 부모-자시 트리구조에 따라 표시
  • kill : 프로세스에 지정한 시그널을 전송. 프로세스의 PID로 선택
    • kill -[시그널 번호/시그널 이름] <대상 프로세스의 PID>
    • kill -l : 사용할 수 있는 각 시그널 별 번호 및 이름 확인
    • 주요 시그널
      • 9 : SIGKILL. 강제성이 있음
      • 15: SIGTERM. 강제성은 없음
  • pkill : 프로세스에 지정한 시그널을 전송. 프로세스의 이름으로 선택

 

포그라운드/백그라운드 (Foreground/Background)

  • 포그라운드 : 쉘에서 프로세스 실행 시, 프로세스가 실행되는 동안 사용자의 입/출력/에러가 프로세스에 연결되어 있는 상태
  • 백그라운드 : 쉘에서 프로세스 실행 시, 사용자의 입/출력/에러를 실행되는 프로세스에 연결하지 않고 쉘에 연결한 상태
  • 백그라운드 명령 실행 방식 : 명령어 제일 마지막에 ‘&’ 기호 추가
  • 현재 실행 중인 백그라운드 작업 목록 확인 : jobs
  • 작업을 포그라운드로 전환 : fg
    • 특정 작업을 포그라운드 전환할 경우 : fg %[작업 번호]
  • 포그라운드 작업을 백그라운드로 전환 : Ctrl + z (백그라운드에서 STOP 상태로 전환)
  • 백그라운드에서 STOP 상태인 작업을 재개 : bg

 

==============================================================

 

Redhat 자격증 

리눅스

  • RHCSA(Redhat Certified System Administrator) 기본 리눅스 관리
  • RHCE(Redhat Certified Engineer) 과거: 리눅스 서비스 관련 내용 → 현재: Ansible

 

==========================================================

 

ACL (Access Control List)

  • 기본 권한만으로는 다양한 대상에 대한 구체적인 권한을 설정할 수 없음 (소유자, 소유 그룹, 기타 사용자)
  • 다양한 대상을 지정하여 권한을 설정할 수 있음
    • 특정 사용자
    • 특정 그룹

ACL 관련 명령어

  • ACL이 설정된 파일은 ‘ls -l’ 명령어 사용 시 파일의 권한 뒷부분의 ‘.’ 기호가 ‘+’로 바뀜
  • getfacl <대상> : 대상에 설정된 ACL 정보를 확인
  • setfacl <ACL옵션> <대상> : 대상에 ACL 정보를 입력
    • 옵션
      • -m : 설정할 ACL 정보 입력/수정
        • 분류: u(user), g(group), m(mask)
        • 대상: 특정 대상의 이름/UID/GID, 마스크는 이 부분 비움 (m::)
        • 권한: r, w, x, -(---)
      • -x : 특정 ACL 항목 제거. 항목 삭제 시 권한 부분은 명시할 필요 없음
      • -b: ACL 전체 삭제
  • ACL mask 
    • ACL 설정 시 마스크 항목이 자동으로 생성. 
    • setfacl로 설정한 사용자에게 권한이 적용되도록 mask 값이 자동 설정. 
    • mask는 소유자를 제외한 나머지 전부에게 적용
    • ACL의 마스크 값의 종류: 일반 파일(rw, r,-) 디렉터리(rwx, rx,-)
    • 마스크가 현재 설정되어있는 ACL의 권한보다 적을 경우 effective(실효 권한)을 따로 표기해줌

 

기본 권한이 적용되는 순서

  1. 파일의 소유자인가? Y → 소유자 권한 사용
  2. 파일의 소유 그룹인가? Y → 소유그룹 권한 사용
  3. 기타 사용자 권한 사용

 

ACL권한이 적용되는 순서

  1. 파일의 소유자인가? Y → 소유자 권한 사용
  2. 파일에 이 사용자에 대한 ACL이 설정되어 있는가? Y → 해당 ACL 사용
  3. 파일의 소유그룹인가? Y → 소유그룹 권한 사용
  4. 파일에 이 사용자의 그룹에 대한 ACL이 설정되어 있는가? Y → 해당 ACL 사용
  5. 기타 사용자의 권한 사용

 

Default ACL

  • 디렉터리에 설정되는 ACL
  • 디렉토리 내에 생성되는 파일들에 기본적으로 적용되는 ACL
  • 상속되는 특징이 있음 → 하위 디렉토리에 디폴트 ACL 그대로 추가됨
  • Default ACL 은 ACL과 다름: 디렉토리 자체의 ACL을 별도로 설정하고, 디폴트 ACL설정
  • 설정 방법
    • 기존 acl 설정 방법과 동일
    • 분류 앞에 d: 추가
      • ex) setfacl -m d:u:encore:rw dirA
    • 삭제 방법 동일 : -x d:u:encore
    • 디폴트 ACL만 전부 삭제 : -k

*이 포스팅은 엔코아 플레이 데이터 수업 내용을 참고로 합니다.



'IT > Linux' 카테고리의 다른 글

systemd  (0) 2021.03.29
저장소 관리(LVM,RAID)  (0) 2021.03.27
저장소 관리 (파티션,파일 시스템,스왑)  (0) 2021.03.25
리눅스 사용자 관리  (0) 2021.03.23
리눅스 기본 명령어  (0) 2021.03.22

댓글