리눅스는 파일들로 운영되는 운영체제이기 때문에 파일의 접근과 이용만 통제해도
사용자의 행동을 제한할 수 있습니다
이번 시간에는 계정 별로 리눅스가 어떻게 권한을 부여하는지 알아봅시다
rwx 란?
파일과 디렉터리에는 3가지 권한이 있습니다
(1) r : read 권한으로 파일을 읽을 수 있는 권한입니다 파일의 내용과 디렉터리의 내용을 보는 것에 해당합니다
(2) w : write 권한으로 파일을 쓸 수 있는 권합니다 파일이라면 데이터를 수정할 수 있는지에 대한 권한이고, 디렉터리라면 디렉터리에 파일 또는 디렉터리를 생성할 수 있는지에 대한 권한입니다
(3) x : execute 권한으로 파일을 실행할 수 있는지에 대한 권한입니다 파일이라면 파일을 실행하는지에 대한 권한이고, 디렉터리면 디렉터리의 접근과 디렉터리 안에 있는 파일에 대한 접근 권한이 x 권한입니다
이제 지난 시간에 확인했던 /etc/passwd의 권한이 어떻게 되어있는지 알아봅시다
우리가 파일 정보 4강에서 파일 정보 보는 방법에 대해 공부했는데, 이 내용을 보는 법을 알아봅시다
권한 정보 영역에는 3가지로 구분해서 읽어야 합니다 이 3가지 영역은 권한(rwx)를 나타냅니다
추가로 소유자와 소유 그룹도 알고 있어야 합니다
(1) 소유자 권한 : 파일에 대한 소유자가 가지고 있는 권한입니다 /etc/passwd 파일의 소유자는 root입니다 이 root는 rw- 권한을 가지고 있습니다 r(read), w(wirte) 권한으로 /etc/passwd 파일을 읽고, 수정이 가능합니다
(2) 소유 그룹 권한 : 특정 그룹의 사용자들에 한해서 적용되는 권한입니다 /etc/passwd 파일의 소유 그룹은 root이고, 이 그룹에 속해있는 사용자들이 가지고 있는 권한입니다 소유 그룹은 r-- 권한을 가지고 있습니다 파일을 읽는 것만 됩니다 만약 root 그룹에 다른 계정이 들어가게 된다면 이 권한으로 파일만 읽을 수 있습니다
(3) 기타 사용자 권한 : 소유자 권한과 소유 그룹 권한에 해당하지 않는 사용자들이 가지고 있는 권한입니다
만약 musa 계정의 사용자가 musa 그룹에 속해있다면 musa 사용자는 root(소유자)도 아니고 그룹도 root 그룹이 아니기 때문에 권한 정보 맨 마지막 r-- 권한으로 읽기만 가능합니다
이제 직접 실습해 봅시다
홈 디렉터리의 vi 명령어를 이용하여 test_permission 파일을 생성하고 안에 내용도 추가해 줍니다
test_permission 파일 권한을 확인하고 kali 계정으로 전환해 봅시다
이 파일에 소유자는 root이고 소유 그룹도 root입니다
kali 계정으로 전환 후 id를 확인해 보니 kali 계정은 소유자와 소유 그룹이 전부 kali로 되어 있습니다
이제 test_permission 파일을 읽어보니 권한이 거부됐다고 나옵니다
이 원인은 디렉터리에 있습니다
ls -l / 명령어를 입력하고 root 디렉터리를 확인해 보면 기타 사용자 권한이 ---라고 표시되어 있습니다 즉 어떤 권한도 없습니다 여기서 중요한 건 x 권한입니다 x 권한은 디렉터리의 경우 디렉터리 내부에 있는 파일에 대한 접근도 이 권한에서 제외됩니다 그래서 root 디렉터리에 있는 파일을 읽을 수 없던 겁니다
하지만 tmp 디렉터리에 권한을 보니 rwt라고 되어있습니다 x가 와야 할 자리에 t가 있네요
이 권한은 특수 권한인데 다음 시간에 다뤄봅시다 일단 여기에는 x 권한, 실행 권한이 있다고 생각하면 됩니다
이제 root 계정으로 돌아와서 실습해 봅시다
우리가 처음 리눅스를 켰을 때 비밀번호를 입력해 주면 됩니다 (화면에 표시가 안돼도 잘 입력되고 있으니 정확하게 입력하면 됩니다)
kali에서 확인했던 tmp 디렉터리의 test_permission 파일을 복사해 줍니다 권한도 위에 사진과 동일합니다
다시 파일을 읽어보니 잘 읽어집니다
tmp 디렉터리의 기타 사용자 권한이 r 권한이기 때문에 읽기만 가능합니다
만약 직접 vi 기능으로 파일을 수정하려고 하면 하단에 readonly라고 표시됩니다
읽기만 가능하다는 뜻이고 이를 무시하고 i를 눌러 파일을 수정한 뒤 저장하는 과정에서 에러가 발생합니다
결국에 수정한 파일을 확인하면 내용이 수정전 상태일 겁니다
이렇게 리눅스에서는 사용자 계정은 3가지 타입(소유자, 소유 그룹, 기타 사용자)로 나누어 각각 권한을 설정하고 있습니다
다음 시간에는 특수 권한에 대해 알아봅시다
[ 참고 사이트 ]