리눅스는 파일들로 운영되는 운영체제이다. 이 파일의 접근, 이용만 통제해도 사용자의 행동을 제한할 수 있다. 파일, 디렉토리에는rwx라는 3가지 권한이 있다.
read 권한으로 파일을 읽을 수 있는지에 대한 권한이다. 파일 내용을 확인하는 것, 디렉토리의 내용(어떤 파일이 있는지)을 확인하는 것에 해당한다.write 권한으로 파일을 쓸 수 있는지에 대한 권한이다. 파일이라면 이 파일의 데이터를 수정할 수 있는지에 대한 권한이고, 디렉토리라면 해당 디렉토리에 파일 또는 디렉토리를 생성할 수 있는지에 대한 권한이다.execute 권한으로 해당 파일을 실행할 수 있는지에 대한 권한이다. 파일이라면 해당 파일을 실행할 수 있는지에 대한 권한이며, 디렉토리라면 해당 디렉토리에 접근과 디렉토리 안에 있는 파일에 대한 접근 권한을 뜻한다. 권한 설명을 위해 ls -l /etc/passwd 명령어를 입력했다고 가정하여 간단한 예시를 들어보았다.
// ls -l /etc/passwd
-rw-r--r-- 1 root root 3306 Apr 19 11:44 /etc/passwd
1. rw- // 소유자 권한
2. r-- // 그룹 권환
3. r-- // 기타 사용자 권한
권한 정보 영역에는 3가지로 구분해서 읽어야한다. 각 3가지 영역은 3가지의 권한(rwx)을 나타낸다.
ddochi 라는 계정의 사용자가 ddochi 라는 그룹에 있다고 가정을 한다면, 이 ddochi 사용자는 해당 소유자,그룹이 아니라는 것이다. setuid : setuid가 설정되어 있다면, 해당 파일을 실행했을 때 파일의 소유자 권한으로 실행이 된다.
setgid : 개념은 setuid와 같다. setgid가 설정된 파일은 실행이 될 때 사용자의 그룹이 해당 파일의 소유 그룹으로 바뀌어 실행이 된다. 위치는 그룹 권한을 설정하는 위치에 표시되며, setuid와 같은 방식으로 설정된다.
sticky bit : 스티키 비트는 디렉토리에 설정 되는데, 주 목적은 공유 디렉토리를 설정할 때 사용된다. 특징으로는 이 권한이 설정되면, 누구나 마음껏 해당 디렉토리에 파일을 생성할 수 있다. 그러나 다른 사람이 만든 파일, 디렉토리는 수정하거나 삭제할 수 없다는게 특징이다.
스티키 비트는 디렉토리 영역에 표시되는데, setuid, setgid는 s로 표현되었다면 스티키 비트는 t로 표시가 된다.
// 권한 변경 명령어
chmod (변경할 권한) (변경할 파일,디렉토리)
권한 추가: + 권한 제거: -
소유자: u 소유 그룹: g 기타 사용자: o
# 숫자 정보로 표현한다면
r # 4 (읽기)
w # 2 (쓰기)
x # 1 (실행)