[Linux] 9. 퍼미션과 슈퍼 사용자
이 글은 '모두의 리눅스'라는 책을 이용해 공부한 내용을 개인적으로 정리한 내용입니다. 잘못된 내용이나 책과 다르게 진행하는 부분이 있을 수 있다는 점 유의하시면서 읽어주시길 바랍니다.
1. 파일의 소유자와 소유 그룹
리눅스의 모든 파일에는 소유자가 있다. 파일의 소유자는 해당 파일에 대한 접근 권한을 자유롭게 설정할 수 있다. ls에 -l 옵션을 주면 소유자를 확인할 수 있다.
2. 퍼미션
1) 파일의 퍼미션
리눅스의 각 파일에는 '누구에게 권한을 허가할지'에 대한 정보를 가지고 있고 이를 퍼미션이라고 한다.
ls -al 에서 볼 수 있었던 왼쪽에 이 표시들이 퍼미션에 관한 것들이다. r은 읽기, w는 쓰기 x는 실행 권한을 나타낸다.
파일타입 | 파일 모드 | ||
유형 | 소유자권한 | 소유그룹 | 기타사용자 |
d | rwx | rwx | rwx |
만약 권한이 없다면 - 표시로 표현한다.
etc/crontab의 소유자 권한을 살펴보자.
-rw-r--r-- : 소유자는 읽기 쓰기가 가능하고 소유그룹과 기타 사용자는 읽기만 가능하다는 것을 알 수 있다.
2) 디렉터리의 퍼미션
디렉터리의 퍼미션은 d 옵션을 부여해서 사용 가능하다.
디렉터리의 퍼미션도 r, w, x로 나타낼 수 있지만 각각이 의미하는 바가 파일과 다르다는 점에 주의해야한다.
r | 읽기 : 디렉터리에 포함된 파일 리스트 취득 가능 |
w | 쓰기 : 디렉터리 하위에 파일 및 디렉터리 작성 및 삭제 가능 |
x | 실행 : 디렉터리로 이동 가능 |
디렉터리에 권한이 있다면 디렉터리 안에 파일을 읽고 쓸 수 있다. 중요한점은 파일 삭제 여부는 파일의 퍼미션이 아닌 디렉터리의 퍼미션에 의해 이루어진다는 점이다.
3) 파일 모드 변경 : chmod 명령어
파일이나 디렉터리의 퍼미션을 지정하기 위해서는 chmod 명령어를 사용하면 된다. chmod 명령어는 슈퍼 사용자만 사용할 수 있으며 기호모드와 수치모드가 있다.
3-1 ) 기호모드
chmod [ugoa] [+-=] [rwx] <file name>
ugoa는 누구에게 퍼미션을 부여할지를 의미한다.
- u : 소유자,
- g : 소유그룹,
- o : 기타사용자,
- a : 모든 사람
사용자를 지정하지 않으면 a로 간주한다.
+-=는 퍼미션을 허용할 것인지 금지할 것인지 표현한다.
- + : 퍼미션 추가
- - : 퍼미션 삭제
- = : 지정된 퍼미션과 동일함
마지막으로 rwx는 읽기 쓰기 실행을 의미한다.
chmod go-w file.txt
위 명령어는 file.txt에 g(소유그룹), o (기타사용자)가 가지고 있는 w(읽기 권한)을 -(삭제) 시키는 명령어이다.
3-2 ) 수치 모드
chmod <8진수의 수치> <file name>
수치 모드는 기존 퍼미션을 새로운 퍼미션으로 덮어쓴다.
- r : 4
- w : 2
- x : 1
만약 755 를 부여한다면 rwx(7)r-x(5)r-x(5) 를 의미한다.
3. 슈퍼 사용자
관리자 권한을 슈퍼사용자라고 말하며 root 라는 이름을 가지기 때문에 root 사용자라고도 부른다. 권한이 매우 강력하기 때문에 시스템 설정 파일을 변경시킬 수도 있다. 그렇기 때문에 필요한 상황에서만 조작하는 것이 좋다.
1) su : 사용자 전환
이미 초반에 su 명령어를 입력하면 슈퍼사용자의 권한을 얻을 수 있다는 사실을 배웠다.
2022.08.09 - [Tool/Linux] - [Linux] 1장. 리눅스 설치하기
sudo su - 를 입력하면 슈퍼사용자로 들어갈 수 있고, exit 명령어로 일반사용자로 돌아갈 수 있다.
2) sudo 명령어 : 다른 사용자가 되어 명령어를 실행
일반 사용자로 로그인 한 상태에서 슈퍼 사용자만 실행할 수 있는 명령어를 실행하기 위해 임시적으로 실행할 수 있는 명령어이다.
cat etc/shadow는 일반사용자가 실행할 수 없지만 앞에 sudo를 붙이니 실행이 되었다.
단, 이 sudo 명령어도 모든 사람이 실행할 수 있는 것은 아니다. 그 목록을 확인하고 싶을 때는 sudo cat/etc/sudoers를 확인해보면 된다.
3) sudoers 파일 편집
etc/sudoers 파일을 직접 텍스트에디터로 편집하는 것은 위험하기 때문에 visudo를 이용해 수정을 한다.
요즘은 su 보다 sudo를 더 많이 사용하는 추세라고 한다. 그래서 모든 사용자에게 sudo 권한을 주는 리눅스 배포판도 증가하고 있는 추세이다.
'Linux' 카테고리의 다른 글
[Linux] 11. 표준 입출력과 파이프라인 (0) | 2022.08.24 |
---|---|
[Linux] 10. 프로세스와 잡 (0) | 2022.08.23 |
[Linux] 8.배시 설정 (0) | 2022.08.14 |
[Linux] 7. 텍스트 에디터 (0) | 2022.08.13 |
[Linux] 6. 파일 검색 및 명령어 사용법 (0) | 2022.08.13 |