[Linux] 9장 퍼미션과 슈퍼 사용자

aramjs·2023년 10월 23일

Linux

목록 보기
6/14
post-thumbnail

9.1 파일의 소유자와 소유 그룹

  • - rw- -rw- r-- user1 user1

    • 유형, owner, group, others, 소유자, 소유그룹

    • 모든 파일에는 소유자가 있다. 소유자는 접근 권한을 자유롭게 설정할 수 있다.

    • 소유자 / 소유 그룹 을 나타낸다. 그룹 안에는 여러 사용자가 있다.

    • 그룹 : 사용자들을 묶은 그룹이다.

      예) 시스템 관리를 수행하는 wheel이라는 그룹을 만들어 여러 사용자를 해당 그룹에 소속시켜 간단하게 관리.

    • 한 사용자는 여러 그룹에 소속될 수 있다.

      최소한 한 그룹에는 속해있다.

    • 사용자를 처음 만들 때 특별히 소속될 그룹을 정하지 않으면 사용자 이름과 동일한 그룹에 소속된다.

  • groups : 현재 사용자가 어떤 그룹에 속하는지 보여준다.

  • whoami : 현재 로그인 사용자가 누군지 알려준다.


9.2 파일의 퍼미션

각 파일에 누구에게 어떤 권한을 허가할 지에 대한 정보가 설정되어있다.
9글자로 3등분 한다.

파일의 퍼미션

  • rwx r-x r-x

    • owner group others 권한을 나타낸다.

    • read, write, execute

    • 소유자 : 읽기 실행 쓰기 가능

    • 그룹 : 읽고 실행만 가능. 쓰기 불가능. 수정 불가능.

    • other : 읽고 실행만 가능. 쓰기 불가능. 수정 불가능.

    • 실행은 모두 가능하다.

  • inode라는 공간이 각 파일마다 생긴다. 그 inode에 정보가 다 들어 있다.

  • /etc/crontab 을 명령하여 실행하면 허가 거부가 뜬다. 실행이 불가능 하기 때문이다.

  • 쓰기가 불가한 파일을 수정하면 저장할 수 없다. 저장하지 않고 나가야 한다.

디렉터리의 퍼미션

  • d rwx rwx r-x : 디렉토리의 rwx와 파일의 rwx의 의미가 다르다.

    • ls -l directory : 디렉 내부를 보여준다.

    • ls -ld : 디렉토리 자체의 정보를 확인할 수 있다. (ls의 d옵션)

  • r : 디렉터리에 포함된 파일 리스트 취득 가능
  • w : 디렉터리 **하위에 파일 및 디렉터리 작성 및 삭제 가능.
  • x : 디렉터리로 이동 가능
  • ls -ld dir2
    d -wx -wx --x 인 경우
    ls dir2 명령을 내리면, 허가 거부가 뜬다. read권한이 없기 때문에 확인할 수 없다.
  • chmod u-r dir2 : dir2의 owner의 r권한을 없애라.

  • chmod u-w dir2 : dir2의 쓰기 권한을 없애라.

dir2 내부에서 touch f2.txt 를 하면 허가 거부가 난다.

rm f2.txt 도 허가 거부가 난다.

  • 삭제도 w권한이 있어야 가능하다.
  • 파일을 지울 수 있는지 여부가 디렉터리의 퍼미션에 의해 결정된다는 점에 주의해야 한다.
  • 파일을 지우지 못 하게 하려면 디렉터리의 w권한을 없애야 한다.
  • 파일의 w권한이 없어도 파일은 삭제가 가능하다.

  • 디렉터리의 x권한이 없다면 cd가 불가능하다.

다른 사용자가 볼 수 있게 하려면 보통 rwx r-x r-x라고 설정한다.

  • 소유자는 모든 권한, 나머지는 cd로 읽을 수 있다. 파일 생성,삭제는 불가능하다.
  • rwx --- --- : 다른 사용자가 해당 디렉의 내용을 일절 볼 수 없다.

chmod 명령어 : 파일 모드 변경

파일 모드 변경 : 파일 소유자, 슈퍼 사용자만 가능하다.

+숫자 : 수치 모드

+기호 : 기호 모드

기호 모드

  • 사용법

    chmod [ugoa] [+-=] [rwx] <파일명>

    • chmod u+x dir2 : u에게 x권한을 준다는 의미이다.

    • chmod g+x dir2 : group에게 x권한을 준다는 의미이다.

  • u : 소유자
  • g : 소유 그룹
  • o : other
  • a : ugo 모두

이때 사용자를 지정하지 않으면, a로 간주한다. 생략하면 기타 사용자는 w에 대해서는 다르게 동작한다. +w 라고만 지정하면 others에는 w가 추가되지 않는다.

생략한 경우에는 w,r,x가 다르게 작동한다. 생략하지 않는 편이 좋다.

  • chmod o+w f1.txt : others에 w권한을 주겠다는 의미이다.

  • = : 지정한 퍼미션과 같게 한다.

  • u=rw : 소유자 권한에 rw는 주고 x는 제거하라는 의미이다.

  • u=r : 소유자 권한에 r은 주고 wx는 제거하라는 의미이다.

소유 그룹과 other의 권한을 한꺼번에 지정할 수 있다.

  • go=r : g, o에 r만 주고 다른 건 다 없애겠다는 의미이다.

수치 모드

8진수 숫자를 이용한다.

  • chmod 754 f1.txt

    • 7 --> 이진수로111 --> rwx 권한을 의미한다.

    • 5 --> 이진수로 101 --> r-x 권한을 의미한다.

    • 4 --> 이진수로 100 --> r-- 권한을 의미한다.

  • 755 :

    • owner : rwx

    • group : r-x

    • other : r-x

  • rw- r-- r--

    • 110, 100, 100

    • 6, 4, 4

  • chmod 644 f1.txt 를 통해 변경할 수 있다.


9.3 슈퍼 사용자

  • root 라는 이름을 사용한다.

  • cd root : 허가 거부

    • rwx --- --- 권한을 가진다. root만 들어갈 수 있다.

시스템 설정 파일을 바꾸거나 새로운 애플리케이션을 설치할 수 있다.

파일에 설정된 퍼미션을 무시하고 모든 파일을 읽고 수정하고 삭제할 수 있다.

위험한 명령어도 실행할 수 있으므로 필요한 상황에만 root로 사용하는 것이 좋다.

  • su : 슈퍼 사용자로 전환한다. root 암호를 입력해야 한다.

  • su - : 슈퍼 사용자의 환경으로 초기화하고 실행한다. 붙이는 것이 좋다.

  • exit : 일반 사용자로 전환한다.

  • sudo passwd root : 슈퍼 사용자의 암호를 설정한다.
    암호 설정 후 슈퍼 사용자를 사용해야 한다.

  • sudo : 명령어를 다른 사용자가 되어 실행한다.

    • sudo한 명령어만 슈퍼 사용자로 실행하기 위한 명령어이다.

    • 현재 사용자의 암호를 입력해야 한다.

    • jisu에게 sudo의 권한을 부여하려면 root가 /etc/sudoers 파일에 jisu ALL=(ALL) ALL 을 기재한다.

  • sudo visudo : sudoers 파일 편집

    • /etc/sudoers를 직접 편집하는 것은 위험하다.

    • visudo는 안전하게 편집하기 위한 명령어이다.

    • 슈퍼 권한이 필요하므로 sudo 또는 su를 사용하여 실행한다.

    • 엔터를 누르고 수정하려면 e, 그냥 나가려면 x, 저장후 나가려면 q, 강제 저장 종료하려면 w를 선택한다.

    • jisu ALL=(ALL) ALL 기재하면 jisu사용자가 sudo를 사용할 수 있게 된다.

sudo가 안전하므로 권장된다.

profile
안녕하세요.

0개의 댓글