파일 구조 및 권한

JSG·2024년 4월 17일
0

리눅스 파일 구조

  • ls -l의 결과
  • 맨 앞글자 : 파일 종류 (d : 디렉토리)

파일의 종류


퍼미션(권한)

  • 파일이나 디렉토리에 대한 사용자의 허가정도
  • 사용자는 소유자(user), 그룹소유자(group), 이외 모든 사용자(other)로 구별
    • 각 사용자마다 rwx권한을 표시해주므로, 총 9개의 문자로 이루어져 있다.
      ex) rwxr--r--
  • 실행파일이 아니면 x권한은 의미가 없다.

SUID, SGID

  • 실행 파일에만 적용
  • suid, sgid를 설정한 파일이 실행된 프로세스는 실행한 사용자 소유가 아닌, 파일 소유자나 그룹 소유자의 ID로 실행된다.
  • user, group의 x 자리에 s로 표기한다.
    ex) rwsrwsrwx

Sticky bit

  • 퍼미션과 관계없이 파일을 소유자만 삭제 가능하게 할 때, 디렉토리에 other 권한을 제한한다.
    • other의 x 자리에 t로 표기한다.
      ex) rwxrwxrwt

퍼미션 표기(8진수)

  • rwx 각 권한이 있으면 1, 없으면 0으로 표기하여 세 자리 이진수를 만들고, 8진수로 변환하여 각 사용자의 권한을 한 자리의 8진수로 표현할 수 있다.
    rwx : 111 = 4 + 2 + 1 = 7
    • 예시
      rwxr-xr-x : 755
      rwxr--r-- : 744
  • suid, sgid, sticky bit가 존재할 경우, 맨 앞에 8진수가 1개 추가된다.
    • user 혹은 group에 s가 있거나, other에 t가 있는 경우 순서대로 4, 2, 1로 계산한다.
      • 예시
        rwsrwxrwt : (4 + 0 + 1) + 777 = 5777
        rwxrwsrwx : (0 + 2 + 0) + 777 = 2777

명령어

chmod : 퍼미션 수정

  • 형식1 : chmod [옵션] [퍼미션] [파일]
    chmod 755 a.txt
    chmod -R 755 b.txt
    • 옵션
      • -R : 디렉토리인 경우 하위 디렉토리와 파일까지 수정
  • 형식2 : chmod [[대상][operator][퍼미션]] [파일]
    chmod g+x a.txt 
    chmod g+ws, o-w, o+t a.txt

chgrp : 그룹소유자 변경

  • 형식 : chgrp [-R] [그룹명] [대상]
    chgrp -R ast a.txt

chown : 소유자 변경

  • 형식 : chown [-R] [유저명] [대상]
    chown -R ast07 a.txt
  • 형식 2 : chown [-R] [유저명].[그룹명] [대상]
    • 유저, 그룹 둘다 변경 가능(비표준명령)
    chown -R ast07.ast a.txt

0개의 댓글