파일의 접근권한 = 기호모드 -> 권한 기호 표시
= 숫자모드 -> 권한 기호 표시
파일의 접근 권한 보호
리눅스는 파일에 무단으로 접근하는것을 방지하고 보호하는 기능을 제공함. 사용자는 자신의 파일과 디렉터리 중에서 다른 사용자가 접근 유무를 구분하여 접근 권한을 제한함
파일의 속성
번호 | 속성값 | 의미 |
1 | - | 파일의 종류(-: 일반 파일, d : 디렉터리) |
2 | rw-r--r-- | 파일을 읽고 쓰고 실행할 수 있는 접근 권한 표시 |
3 | 1 | 하드 링크의 개수 |
4 | root | 파일 소유자의 로그인 ID |
5 | root | 파일 소유자의 그룹 이름 |
6 | 223 | 파일의 크기(바이트 단위) |
7 | 2월 20 21:17 | 파일이 마지막으로 수정된 날짜 |
8 | /etc/hosts | 파일 명 |
파일의 I node 구조체에 저장되는 데이터 이다.
접근 권한의 종류
읽기 권한, 쓰기 권한, 실행 권한 세가지로 구성됨
권한 | 파일 | 디렉터리 |
읽기 [ r ] | 파일을 읽거나 복사할 수 있다 (디렉터리 안에서 리스트업 가능하다라는 의미) |
ls 명령으로 디렉터리 목록을 볼 수 있다.(ls 명령의 옵션은 실행 권한이 있어야 사용할 수 있다.) |
쓰기 [ w ] | 파일을 수정, 이동,삭제할 수 있다.(디렉터리에 쓰기 권한이 있어야 한다.) | 파일을 생성하거나 삭제할 수 있다. |
실행 [ x ] | 파일을 실행할 수 있다.(셸 스크립트나 실행파일의 경우). | cd 명령을 사용할 수 있다. 파일을 디렉터리로 이동하거나 복사할 수 있다. |
접근권한 표기법
사용자 카테고리 별로 누가 읽고 쓰고 실행할 수 있는지 문자로 표현
읽기 권한은 r, 쓰기 권한은 w, 실행 권한은 x로 표현, 해당 권한이 없다면 '-'로 표기됨.
사용자 카테고리 별로 세 가지 권한의 부여 여부를 rwx 세 문자를 묶어서 표기한다.
접근 권한 | 의미 |
rwxr-xr-x | 소유자는 읽기, 쓰기, 실행 권한을 모두 가지고 있고 그룹과 기타 사용자는 읽기와 실행 권한만 가지고 있다. |
r-xr-xr-x | 소유자, 그룹 기타 사용자 모두 읽기와 쓰기 실행 권한만 가지고 있다. |
rw------- | 소유자만 읽기, 쓰기 권한을 가지고 있고 그룹과 기타 사용자는 아무 권한이 없다. |
rw-rw-rw- | 소유자, 그룹 기타 사용자 모두 읽기와 쓰기 권한을 가지고 있다. |
rwxrwxrwx | 소유자, 그룹, 기타 사용자 모두 읽기 쓰기 실행 권한을 가지고 있다. |
rwx------ | 소유자만 읽기, 쓰기, 실행 권한을 가지고 있고 그룹과 기타 사용자는 아무 권한이 없다. |
r-------- | 소유자만 읽기 권한을 가지고 있다. |
접근 권한의 변경 명령
chmod | |
기능 | 파일이나 디렉터리의 접근 권한을 변경한다. |
형식 | chmod [ 옵션 ] 권한 모드 파일 또는 디렉터리 명 |
옵션 | -R : 하위 디렉터리까지 모두 변경할 수 있다. |
- 기호 모드 : 접근 권한을 변경하기 위해 문자와 기호를 사용하여 권한 표시
- 숫자 모드 : 접근 권한을 변겨하기 위해 숫자를 사용
기호 모드
구분 | 문자/기호 | 의미 |
사용자 카테고리 문자 | u | 파일 소유자 |
g | 소유자가 속한 그룹 | |
o | 소유자와 그룹 이외의 기타 사용자 | |
a | 전체 사용자 | |
연산자 기호 | + | 권한 부여 |
- | 권한 제거 | |
= | 접근 권한 설정 | |
접근 권한 문자 | r | 읽기 권한 |
w | 쓰기 권한 | |
x | 실행 권한 |
접근 설정의 예시
권한 표기 | 의미 |
u+x | 소유자(u)에게 쓰기(w) 권한 부여(+) |
u-x | 소유자(u)에게 쓰기(w) 권한 제거(-) |
g+w | 그룹(g)에 쓰기(w) 권한 부여(+) |
o-r | 기타 사용자(o)의 읽기(r) 권한 제거(-) |
g+wx | 그룹(g)에 쓰기(w)와 실행(x) 권한 부여(+) |
+wx | 모든 사용자에게 쓰기(w)와 실행(x) 권한 부여(+) |
a+rwx | 모든 사용자에게 읽기(r), 쓰기(w), 실행(x) 권한 부여(+) |
숫자로 환산 하기
숫자모드에서는 각 권한이 있고 없고를 0과 1로 표기, 이를 다시 환산하여 숫자로 표현함
카테고리 별로 권한의 조합에 따라 0부터 7로 나타내는것
권한을 숫자로 환산하는 과정
r-x 라고 할 때 권한이 있는 것은 1로, 없는것은0 으로 변환
2진수 1, 0 , 1로 변환
2진수를 각 자릿수 별로 10진수로 환산하면 4, 0, 1이 된다.
세 숫자를 더하면
최종 권한 값은 5가 됨.
777 = rwxrwxrwx
644 = rw-r--r--
기타 사용자에게 실행 권한을 부여
o+x , r--rwxr-x -> 475
기본 접근 권한
리눅스에서는 파일이나 디렉터리를 생성할 때 기본 접근 권한 자동 설정
일반 파일의 경우 소유자는 읽기와 쓰기 권한이 설정되고 그룹과 기타 사용자는 읽기 권한만 설정
디렉터리의 경우 소유자는 읽기, 쓰기, 실행 권한이 설정되고 그룹과 기타 사용자는 읽기, 실행 권한만 설정.
기본 접근권한 확인하고 변경하기
umask | |
기능 | 기본 접근 권한을 출력하거나 변경한다 |
형식 | umask [옵션] [마스크값] |
옵션 | -S : 마스크 값을 문자로 출력한다. |
사용 예 | umask 022 |
마스크 값은 파일이나 디렉터리 생성 시 부여하지 않을 권한을 지정함.
마스크값이 022 인 경우 이는 ----w--w-이고, 그룹과 기타 사용자에게 쓰기 권한은 부여하지 않겠다는 것.
즉, 전체 권한이 777이라고 하면, 022라는 권한을 빼앗겠다 라는것. 위 명령어를 실행하고 난 뒤에는
755라고 할 수 있다.
특수 접근 권한
접근 권한은 원래 4자리
생략된 맨 앞자리는 특수 접근 권한 의미
맨 앞자리 숫자가 0이면 일반적인 접근 권한이지만, 이 숫자가 1, 2, 4 이면 특수 접근 권한이 설정
SetUID : 맨 앞자리가 4 | 4022 |
SetGID : 맨 앞자리가 2 | 2022 |
스티키 비트 (sticky bit) : 맨 앞자리가 1 | 1022 |
SetUID
해당 파일이 실행 되는 동안에는 파일을 실행한 사용자의 권한이 아니라 파일 소유자의 권한으로 실행된다.
SetUID가 설정되면 소유자의 실행 권한에 's'가 표시된다. ( Super 라는 의미 )
SetUID를 이용한 해킹의 위험도 있기 때문에 보안에 신경써야 한다.
SetGID
해당 파일이 실행되는 동안 파일 파일을 실행한 사용자의 권한이 아니라 파일 소유 그룹의 권한으로 실행된다.
sticky bit
디렉터리에 스티키 비트가 설정되어 있으면 이 디렉터리에는 누구나 파일을 생성 가능하다.
파일은 파일을 생성한 계정으로 소유자가 설정되며, 다른 사용자가 생성한 파일은 삭제 불가하다.
'대학교 코딩공부 > 운영체제 실습' 카테고리의 다른 글
운영체제 실습 9주차 프로세스 (0) | 2022.10.26 |
---|---|
운영체제 실습 9주차 리눅스 마스터 2급 시험문제 풀이2020년6월13일 (0) | 2022.10.25 |
운영체제 실습 6주차 [ 쉘 의 기능 ] (0) | 2022.10.05 |
운영체제 실습 5주차 [ 문서 편집 ] (0) | 2022.09.26 |
운영체제 실습 4주차 [ 우분투 명령어 ] (0) | 2022.09.20 |