Study/리눅스

리눅스 9일차(보안)

됵이 2022. 7. 17. 19:57

[l,d,-] /rw-rw-r/1/root/root/7/7월10 17:51 /bin->usr/bin

파일유형 / 허가권 / 링크수 / 소유자 / 소유그룹 / 파일 크기 / 변경일시 / 파일명

 

파일유형의 종류

d : 디렉토리

b : 블록 디바이스 파일 (하드 드라이브나 CD-ROM과 같이 블록 단위의 데이터를 처리하는 디바이스

c : 문자 디바이스 파일

l : 심볼릭 링크 파일

p : 명명된 파이프

s : 유닉스 도메인

- : 일반 파일

 

허가권 

각파일에 읽기 / 쓰기 / 실행 의 권리를 사용자 / 그룹 / 다른 사용자로 나눠서 관리 한다. 

  • user : 파일을 만든(생성) 소유주
  • group : 파일을 만든 소유주가 속한 그룹
  • other : 기타 사용자

  • rwx : 파일 소유자가 읽기/쓰기/실행 권한을 모두 가지고 있다.
  • rw : 파일 소유그룹에게 읽기 쓰기 권한만 있다.
  • r : 소유자와 소유그룹 외에 다른 사용자들은 읽기 원한만 있다.
  • r(4)
    • 파일 : 파일에 대한 읽기 권한 열기 , 읽기 허용
    • 디렉터리 : 디렉터리 내의 파일을 나열할 수 있게 허용
  • w(2)
    • 파일 : 파일에 대한 쓰기 권한 쓰기/잘라내기 허용
      • 이름 변경이나 파일 삭제 허용은 하지 않는다. => 파일 삭제나 이름 변경은 디렉터리 속성에 의해 결정된다. 
    • 디렉터리 : 디렉터리 내의 파일을들 생성 , 삭제 , 이름변경이 가능하도록 허용
  • x(1)
    • 파일 : 파일에 대한 실행 권한
    • 디렉터리 : 디렉터리 내에서 탐색을 위해 이동할 수 있도록 허용(cd 명령어를 통해 진입 할 수 있도록)

 

소유권 & 허가권 변경 방법

허가권 변경 (chmod 퍼미션 숫자)

ex) chmod 777 test.txt => test.txt 파일에 대한 권한을 전부 부여하겠다

 

허가권 변경 chmod  기호

  • 읽기 : r
  • 쓰기 : w
  • 실행 : x
  • 권한 추가 : +
  • 권한 삭제 : -
  • 기존의 permition을 삭제하고 덮어쓰는 것 : =
  • 사용자 허가권 : u
  • 그룹 허가권 : g
  • 다른 사용자 허가권 : o
  • 모두 : a

허가권 변경 chmod  옵션

  • -R : 특정 디렉터리 내의 파일과 디렉터리에 대해 재귀적으로 허가권 변경
  • -C : 변경된 파일이나 디렉터리에 대한 자세한 정보를 출력
  • -f : 대부분의 에러 메시지 출력을 제한 
  • -- : 모드 대신 파일에 지정한 모드를 사용

사용자 및 그룹 소유권 변경 (chown)

  • 파일이나 디렉터리의 사용자 및 그룹의 소유권을 변경
  • 소유권 변경은 오직 root 사용자만 가능하다. 
  • chown 옵션 owner :그룹 파일

※옵션은 chmod와 동일

ex)

chown root test.txt => test.txt. 파일의 소유자를 root로 지정한다.

sudo chown userA:groupA fileA.txt => 사용자는 userA 그룹은 groupA로 파일(fileA.txt)의 소유자를 변경

sudo chown -R userA:groupA dirA =>dirA안에 모든 파일과 디렉터리에 대해서 사용자는 userA 그룹은 groupA로 소유자를 변경한다.

 

그룹 소유권만 변경 (chgrp)

파일이나 디렉터리의 그룹 소유권만 변경

ex)

chgrp groupA best.txt => best.txt 파일에 대한 소유 그룹을 groupA로 지정

chgrp -R groupA bestdir => bestdir 디렉터리에 있는 모든 파일과 dir에 대해 그룹을 groupA 로 지정

 

기본 허가권 변경(umask)

  • 파일이나 디렉터리를 생성할때 자동으로 기본 허가권을 부여하게 되는데 umask는 이를 변경하는 명령어
  • 파일의 기본 최대 권한 : 666(rw-rw-rw-)
    • 설정된 값 0022(root) : 앞에 0은 무시하고 666-022 => 644 이므로 (rw-r--r--)
    • 사용자 계정은 0002 이다.
  • 디렉터리의 기본 최대 권한 : 777(rwxrwxrwx)

특수 권한 (UID,GID,sticky-bit)

  • SetUID
    • 사용자의 권한이 있어야만 실행을 할 수 있는 파일의 경우 그 권한을 일시적으로 일반 사용자들에게 부여 하기 위해 사용한다
    • 숫자 방식 : chmod 4750 best.txt
    • 문자 방식 : chmod u=srwx,g=r,o=r best.sh
  • SetGID
    • 그룹의 권한이 있어야만 실행을 할 수 있는 경우 그 권한을 일시적으로 일반 사용자들에게도 부여하여 파일을 실행 할 수 있게 한다.
    • 숫자 방식 : chmod 2750 best.txt
    • 문자 방식 : chmod u=rwx,g=sr,o=r best.sh
  • sticky-bit (디렉터리에만 설정 가능)
    • 공유 디렉터리에서 파일을 생성한 사람(소유주)이 삭제할 수 있도록 설정하는 비트
    • 숫자 방식 : chmod o+t dir1
    • 문자 방식 : chmod 1777 dir1
  • sudo
    • 일반 사용자가 root의 권한을 가질 수 있다.

※-i 옵션 root로 바로 이동 가능

sudo -i