books/Linux

[모두의 리눅스] 퍼미션과 슈퍼 사용자

836586697769 2024. 7. 30. 06:27

@notion

퍼미션

$ ls -l: 파일의 소유자 확인

$ ls -l /bin/cat
-rwxr-xr-x. 1 root root 54048 6 10 2014 /bin/cat
  • root: 파일의 소유자
  • -: 파일 타입
    • -: 일반 파일
    • d: 디렉터리
    • l: 심볼릭 링크
  • rwxr-xr-x: 파일모드(소유자 - 소유 그룹 - 그 외 사용자에 대한 퍼미션)
    • r: 읽기
    • w: 쓰기
    • x: 실행
    • -: 권한 없음

 

$ -ld: 디렉터리에 퍼미션 설정

$ ls -ld dir1
drwxrwxr-x 2 ldk ldk 4096 5월 16 18:48 dir1
  • r: 읽기 - 디렉터리에 포함된 파일 리스트 취득 가능
  • w: 쓰기 - 디렉터리 하위에 파일 및 디렉터리 작성 및 삭제 기능
  • x: 실행: 디렉터리로 이동 가능
  • 파일을 지울 수 있는지 여부는 파일이 아니라 디렉터리의 퍼미션에 의해 결정
  • x(실행) 권한이 없는 디렉터리로는 이동 불가

 

$ groups: 현재 본인이 어떤 그룹에 소속되어 있는지 확인

  • 그룹: 사용자들을 묶은 그룹
    • 한 사용자는 여러 그룹에 소속될 수 있으며 어떤 사용자도 최소한 한 그룹에 소속되어 있음
    • 사용자를 처음 만들 때 특별히 소속될 그룹을 지정하지 않으면 사용자 이름과 동일한 그룹에 소속됨
$ groups
ldk wheel # 현재 로그인한 사용자 ldk는 ldk와 wheel이라는 두 그룹에 소속됨

 

$ chmod: 파일 모드 변경

  • 기호 모드: chmod [ugoa] [+-=] [rwx] <파일 이름>
    기호 의미
    u 소유자
    g 소유 그룹
    o 기타 사용자
    a ugo 모두
    기호 의미
    + 퍼미션 추가
    - 퍼미션 금지
    = 지정한 퍼미션과 같게 함
    • 특별히 사용자를 지정하지 않으면 a를 지정한 것으로 간주
$ chmod u+w file.txt # r--r--r-- -> rw-r--r--
$ chmod g-w file.txt # rw-rw-r-- -> rw-r--r--
$ chmod go=r file.txt # rwxrwxrwx -> rwxr--r--
  • 수치 모드: chmod <8진수의 수치> <파일 이름>
    • 기호 모드가 상대적으로 퍼미션을 지정하는 반면, 수치 모드는 퍼미션을 새로운 퍼미션으로 덮어쓰게 됨
    의미 수치
    읽기(r) 4
    쓰기(w) 2
    실행(x) 1
    • e.g. rwxr-xr-x → 755 → 소유자는 읽고 쓰기가 가능하며 다른 사용자는 읽고 실행할 수만 있는 권한

 

슈퍼 사용자

  • 일반 사용자 → 슈퍼 사용자 전환 방법
    • su 명령어
      • 슈퍼 사용자로 전환하면 exit를 하기 전까지는 슈퍼 사용자인 채로 있게 됨
      • 슈퍼 사용자의 암호를 입력
      • 보통 프롬프트가 $에서 #으로 바뀜
    • sudo 명령어
      • 한 명령어만 슈퍼 사용자로 실행하기 위한 명령어로, 지정한 명령어가 끝나면 일반 사용자로 돌아옴
      • 현재 로그인한 사용자의 암호를 입력
      • 모든 사용자가 sudo 명령어를 사용할 수 있으면 슈퍼 사용자와 일반 사용자가 구별되어 있을 이유가 없으므로, 리눅스에서는 어떤 사용자가 sudo 명령어를 사용할 수 있는지 sudo 명령어를 사용할 수 있는 사용자의 목록을 파일을 통해 관리하고 있음