실습 환경은 CentOS 7 버전입니다.
VMware에 Linux를 부팅시키고 putty를 이용하여 접속하였습니다.
'#> [명령어]' // [주석]
[]안의 부분만 보시면 됩니다.
'#'은 관리자, '$'는 유저입니다.
※경고!※
별 대수롭지 않을수도 있지만 민감한 내용이 있습니다.
아래의 실습은 반드시 본인이 설치한 리눅스에서 실습하시길 바랍니다.
공부 목적으로만 이용해주시고 어디가서 잘못써먹으면
정보보호 관련 법에 걸립니다.
---------------------------------------------------------------------------
리눅스의 권한 체계에 관해 살펴 보겠습니다.
리눅스에서 가장 많이 사용하는 명령어 중 하나인 ls 명령어를 사용하다 보면
위와 같이 나오는 것을 보실 수 있습니다.
맨 위의 파일 기준으로 순서대로 살펴보면 다음과 같습니다.
-rw-r--r-- = 접근 권한
1 = 링크 수
root = 소유자
root = 소유 그룹
7 = byte
Jan 9 09:34 = 변경 날짜
file2 = 이름
상세하게 살펴 보겠습니다.
접근권한은 소유자, 그룹, 다른 사용자로 구분되게 접근이 가능하고,
각 접근하는 대상에 대해 r(읽기), w(쓰기), x(실행) 권한이 부여됩니다.
'-rw-r--r--'의 10자리의 각 의미는
첫 번째 : 이 부분은 파일의 유형을 나타냅니다.
- : 일반 파일
d : 디렉터리
l : 심볼릭 링크 파일
위 3개가 가장 많이 보일 것입니다.
이 다음부터는 세 자리씩 끊어서 보면 됩니다.
처음 세자리(rw-) : 소유자 권한
다음 세자리(r--) : 소유 그룹 권한
다음 세자리(r--) : 다른 사용자 권한
이 권한들은 각각 r, w, x로 표현이 됩니다.
위의 '-rw-r--r--'를 자세히 살펴보면
rw- : 소유자 권한으로 읽기와 쓰기가 가능하고 실행이 불가합니다.
r-- : 소유 그룹 권한으로 읽기만 가능합니다.
r-- : 다른 사용자 권한으로 읽기만 가능합니다.
※'-'는 권한이 없음을 표현합니다.※
간단히 정리하면 다음과 같습니다.
ex) -rw-rwx---x일때 다음과 같이 나눌 수 있습니다.
- | rw- | rwx | --x |
'-' = 일반파일 'd' = 디렉터리 'l' = 심볼릭 링크 파일 |
읽기(r) o 쓰기(w) o 실행(x) x |
읽기(r) o 쓰기(w) o 실행(x) o |
읽기(r) x 쓰기(w) x 실행(x) o |
소유자 권한 | 소유 그룹 권한 | 다른 사용자 권한 | |
'-'는 권한이 없는 것입니다. |
-----------------추가----------------
디렉터리의 권한이 'drwxr-x---', 디렉터리안의 파일의 권한이 '-rw-rw----'이고
디렉터리와 파일의 소유주는 a이고 a와 같은 그룹 b가 있을 때
사용자 b는 디렉터리 안에서 파일이나 디렉터리를 생성할 수 없습니다.
이유는 디렉터리 그룹 권한에 쓰기가 없기 때문입니다.
실습 중 약간의 의문이 들어 테스트를 해보았습니다.
의문 : shadow 파일은 아무 권한이 없는데 왜 보는게 가능할까?
테스트 과정
1. 실행 파일 하나를 root가 아닌 일반 계정에 하나 만듭니다.
2. 각 권한(소유자, 그룹, 다른 사용자)마다 실행 여부를 테스트 합니다.
3. 일반 파일과 실행 파일에 대해서 진행
테스트용 계정으로는 관리자(root), test 그룹(test, testgroup), 일반 계정(tset0188)입니다.
기준은 test 계정입니다.
간단하게 'Hello world'를 출력하는 실행 파일을 만들었습니다.
'$> vi a.c'
<a.c 파일의 코드>
include <stdio.h>
int main(void) {
printf("Hello world\n\n");
return 0; }
'$> gcc a.c -o aaa' // gcc가 안된다면 '#> yum install gcc'하면 됩니다.
위 명령어를 실행하면 aaa 실행 파일이 생깁니다.
'$> ./aaa' // 이렇게 하면 파일이 실행됩니다.
aaa파일의 소유자는 test, 소유 그룹은 test입니다.
결과 : a.c에 대해 파일의 권한을 어떻게 설정해도 root는 볼 수 있었습니다.
다음은 실행 파일에 대해 궁금해서 테스트 해보았습니다.
1. aaa 파일의 권한이 '----------' 일 때 | 전부 권한 X, 실행 결과 전부 X |
2. aaa 파일의 권한이 '---------x' 일 때 | 다른 사용자들은 실행 가능할 때, 실행 결과 : 소유자만 X |
3. aaa 파일의 권한이 '------x---' 일 때 | 소유 그룹이 실행 가능할 때, 실행 결과 : 소유 그룹 O, root O, 다른 사용자 X |
4. aaa 파일의 권한이 '---x------' 일 때 | 소유자가 실행 가능할 때, 실행 결과 : 소유자 O, root O, 나머지 X |
이 결과 소유자와 root가 비슷한 결과를 나타내는 것을 볼 수 있습니다.
긴 글 읽어주셔서 감사합니다.
오류나 틀린부분이 있으시면 댓글로 남겨주시면 감사하겠습니다.
여러분들과 같이 공부하는 공간이 되었으면 좋겠습니다.
'Linux > CentOS 7' 카테고리의 다른 글
[CentOS 7]유저 기본 패스워드 지정을 통한 쉘 스크립트 기초 2 (0) | 2021.02.07 |
---|---|
[CentOS 7]유저 자동 생성을 통한 쉘 스크립트 기초 (0) | 2021.01.21 |
[CentOS 7] Linux passwd 파일과 shadow 파일 (0) | 2021.01.18 |
[CentOS 7] Linux 네트워크 연결 방법 (정적, static) (0) | 2021.01.11 |
[CentOS 7] Linux 외부에서 FTP 접속하기 (포트포워딩) (0) | 2021.01.11 |
댓글