리눅스의 권한 🛠️
권한이란?
리눅스에서 존재하는 파일이나 데이터, 자원에 대하여 사용자나 프로그램이 어떤 일을 할 수 있는 지 제한, 지정하는 개념을 권한이라고 한다.
결국은 사용자나 프로그램은 권한에 따라 할 수 있는 작업, 할 수 없는 작업 구분
관리자는 적절하게 권한을 부여하거나 권한을 회수하여 특정 사용자가 잘못된 권한을 갖지 않도록 잘 조절해야 한다 (권한 관리)
1. 소유권(Ownership) 🏠
소유권은 특정 자원(파일이나 디렉터리)의 주인이 누구인지 결정하는 권한이다.
자원을 생성한 사람은 기본적으로 그 자원의 소유자가 되며, 그 사람이 속한 그룹은 소유 그룹이 된다.
소유권은 3가지로 나뉜다:
- 소유자: 해당 자원의 주인 (계정) -> user -> u
- 소유그룹: 주인은 아니지만, 자원을 관리하는 역할을 하는 그룹 -> group -> g
- 나머지 사용자: 소유자도 아니고, 소유그룹도 아닌 모든 계정 -> other -> o
기본 구성:
- 파일이나 디렉터리를 생성한 사용자는 소유자가 되며,
- 그 사용자가 속한 기본 그룹은 소유그룹이 된다.
소유권 확인 명령어
- ls -l 파일명 → 파일 소유권 확인 🧐
- ls -ld 디렉터리명 → 디렉터리 소유권 확인
소유권 변경 명령어
- chown 계정명:그룹명 파일명
예시) chown root:root hello.txt- 소유자만 변경: chown root hello.txt
- 소유그룹만 변경: chown :root hello.txt
- 특정 디렉터리 하위 모든 파일의 소유권 변경:
chown -R root:root /root/dir1
2. 허가권(Permission) 📂
허가권은 파일이나 디렉터리에서 무엇을 할 수 있는지를 결정하는 권한이다.
즉, 파일을 읽을 수 있는지, 쓸 수 있는지, 실행할 수 있는지가 정해지는 것이다. 🙌
허가권의 종류:
- 읽기 권한(r): 파일을 읽을 수 있는 권한 📖
- 쓰기 권한(w): 파일을 수정하거나 삭제할 수 있는 권한 ✍️
- 실행 권한(x): 파일을 실행할 수 있는 권한 ▶️
허가권 구성:
- 소유자의 권한 (rwx)
- 소유그룹의 권한 (rwx)
- 나머지 사용자의 권한 (rwx)
예시:
- rwxrwxrwx: 모든 사용자가 모든 권한을 가짐 👥
- rwxrw-r--: 소유자는 모든 권한, 소유그룹은 읽기/쓰기, 나머지 사용자는 읽기 권한만 있음 👍
- rw-r--r--: 소유자는 읽기/쓰기, 나머지 사용자는 읽기만 가능 👀
허가권 확인 명령어
- ls -l 파일명
- ls -ld 디렉터리명
리눅스 권한을 확인하는 방법 🤔
- 사용자가 파일에 접근하면, uid(사용자 ID)와 파일 소유자의 uid를 비교한다.
- uid가 같으면 소유자 권한을 부여한다.
- uid가 다르면 소유그룹의 gid와 사용자의 gid를 비교한다.
- gid가 같으면 소유그룹 권한을 부여한다.
- gid가 다르면 나머지 사용자 권한을 부여한다.
허가권 변경 명령어: chmod 🔄
1. 절대모드(Absolute Mode)
- 기존 권한과 관계없이 숫자로 권한을 설정할 수 있다.
- r → 4, w → 2, x → 1
- 숫자 합산으로 권한을 설정:
- rwx = 7, rw- = 6, r-- = 4, --- = 0
- chmod 755 파일명: 소유자는 모든 권한, 소유그룹과 나머지 사용자는 읽기/실행 권한만 부여한다 📄
- chmod 644 파일명: 소유자는 읽기/쓰기 권한, 소유그룹과 나머지 사용자는 읽기 권한만 부여한다 📝
2. 상대모드(Relative Mode)
- 기존 권한에서 추가하거나 회수할 수 있다.
- 권한 추가: +
- 권한 회수: -
- 소유권: u(소유자), g(소유그룹), o(나머지 사용자)
- u+x: 소유자에게 실행 권한을 추가한다 🎬
- g+r: 소유그룹에게 읽기 권한을 추가한다 📖
- o-w: 나머지 사용자에게 쓰기 권한을 회수한다 ✂️
-상대모드 :기존 설정 신경 씀
절대모드: 기존 설정 상관없음
절대경로,상대경로가 우위가 없듯이 이것도 어떤게 더 좋은지는 없음
기본 권한 설정: umask ⛔
- umask는 파일이나 디렉터리 생성 시 기본 권한을 설정하는 값이다.
- 기본적으로 파일은 644, 디렉터리는 755 권한이 부여된다.
umask 값 확인 명령어
- umask: 현재 기본 권한을 확인할 수 있다! 🧐
umask 값 변경
- umask 033: 새로 생성되는 파일은 633, 디렉터리는 744 권한을 갖게 된다! 🔧
특수 권한(Special Permissions) 💡
리눅스에서 특수한 상황에 권한을 설정하는 방법이다.
1. setuid 🎭
- 실행 파일을 실행할 때 소유자의 권한을 부여받는 특수 권한이다.
- 예시: passwd 명령어는 일반 사용자도 패스워드를 변경할 수 있게 해준다. (setuid 덕분이다) 🔑
2. setgid 🛠️
- 실행 파일이나 디렉터리를 소유 그룹의 권한으로 실행하게 해준다.
- 예시: 파일을 실행할 때 소유 그룹의 권한으로 실행하도록 설정할 수 있다.
3. Sticky Bit 🧩
- 디렉터리에만 설정 가능하다. 해당 디렉터리 하위 파일을 삭제할 수 있는 권한은 소유자만 갖고 있다.
- 예시: 여러 사용자가 공유하는 디렉터리에서 다른 사용자의 파일을 삭제하지 못하도록 설정한다 🔒
'Linux' 카테고리의 다른 글
find 명령어를 사용하여 다양한 조건에 맞는 파일이나 디렉터리를 찾는 방법 (0) | 2025.04.16 |
---|---|
리눅스 파일 다운로드,패키지 관리 프로그램 (RPM, DNF) (0) | 2025.04.16 |
리눅스의 확장 권한, 파일 속성, 프로세스 관리, 백그라운드 실행 방식 (0) | 2025.04.16 |
DNS 이름 해석 구조부터 Zone 파일 구성까지 정리 (0) | 2025.04.16 |
DNS 서버 종류 & 영역 전송 정리 (0) | 2025.04.16 |