root 사용자가 홈 디렉터리에서 touch sample.txt 명령으로 빈 파일을 만들고 ls -l 명령을 실행하면 다음과 같이 나타난다.
파일 유형
디렉터리 : 'd'
일반적인 파일 : '-'
그 외에 b(블록 디바이스), c(문자 디바이스), l(링크) 등이 있다.
파일 허가권
rw-, r--, r-- 3개씩 끊어서 인식하면 된다.
r | w | x |
read | write | execute |
4 | 2 | 1 |
첫번째 rw- 는 소유자의 파일 접근 권한, 두번째 r--는 그룹의 파일 접근 권한, 세번째 r--는 그 외 사용자의 파일 접근 권한이다.
아래 표는 sample.txt의 파일 허가권을 표현한 것이다.
소유자 (User) | 그룹 (Group) | 그 외 사용자 (Other) | ||||||
r | w | - | r | - | - | r | - | - |
4 | 2 | 0 | 4 | 0 | 0 | 4 | 0 | 0 |
6 | 4 | 4 |
👩🏻💻 ex) 파일 허가권이 754 라면?
--> rwxr-xr--
소유자 : 읽고, 쓰고, 실행 가능
그룹 : 읽고/실행 가능
그 외 사용자 : 읽기만 가능
※ 디렉터리는 해당 디렉터리로 이동하려면 실행 권한 (x)이 있어야 한다.
chmod 명령어
root 사용자 또는 해당 파일의 소유자만 실행 가능
chmod 777 sample.txt | sample.txt 파일은 모든 사용자가 읽고, 쓰고, 실행할 수 있는 파일이 됨 |
chmod u+x 파일이름 | 소유자에게 실행권한을 허가하라는 의미 (user+execute) |
chmod u-wx | 사용자에게 쓰기와 실행권한을 제거 |
g+rx | 그룹에게 읽기와 실행 권한 허가 |
o+rwx | 그외 사용자에게 읽기/쓰기/실행 권한 허가 |
파일 소유권
파일을 소유한 사용자와 그룹을 의미한다.
sample.txt 파일은 root 라는 이름의 사용자가 소유자이며, 그룹도 root로 되어있다.
chown
파일의 소유권을 바꾸는 명령어
chown 새로운사용자이름(.새로운그룹이름)
chown ubuntu sample.txt | sample.txt 파일의 소유자를 centos 사용자로 바꿈 |
chown ubuntu.ubuntu sample.txt | 파일의 그룹도 ubuntu로 바꿈 |
chgrp ubuntu sample.txt | 그룹만 centos 그룹으로 변경 |
파일의 소유권 및 허가권 확실히 이해하기
👩🏻💻 step0 - 연습용 파일 생성
nano test 명령으로 위와 같은 내용을 작성한 뒤 저장한다.
ls -l test 명령을 입력하면 파일 허가권을 확인할 수 있다. root 사용자는 이 파일을 읽고 쓸 수 있지만, 실행은 할 수 없다. root 그룹과 그 외 사용자는 읽기만 가능하다.
👩🏻💻 step1 - 파일 속성 변경
whoami 명령어는 현재 사용자가 누구인지 알려준다.
./test 명령어로 현재 디렉터리의 test 파일을 실행하면, 허가가 거부되었다는 메시지가 나온다. root의 실행 권한이 rw-이므로 실행할 수 없기 때문이다.
chmod 755 test 명령으로 test 파일을 실행할 수 있도록 변경한다.
ls -l test 명령을 입력해보면 파일 허가권이 rwxr-xr-x로 바뀐 것을 확인할 수 있다.
./test 명령으로 다시 실행시켜 보면, 첫째 줄은 명령이 아니므로 오류가 발생했고 둘째 줄 'ls /var'는 실행되어 /var 디렉터리의 내용이 출력되었다.
실행 코드가 없는 파일이 실행되도록 변경하는 것에 주의!
👩🏻💻 step2 - 소유권 변경
chown ubuntu test 명령으로 test 파일의 소유권을 ubuntu 사용자로 변경한다.
chgrp ubuntu test 명령으로 그룹도 ubuntu 그룹으로 변경한다.
사용자와 그룹을 한꺼번에 바꾸려면 chown ubuntu.ubuntu test
test 파일의 소유권을 ubuntu 에 넘겨주었는데도 접근이 거부되었다.
ls -ld /root 명령으로 /root 디렉터리의 속성을 확인했을 때, 'rwx------'로 되어있기 때문이다.
따라서 위처럼 test 파일을 /home/ubuntu 에 옮겨준 다음 허가권을 변경해야한다.
ubuntu 사용자가 test의 소유권을 root에게 넘겨주고자 하면 '명령을 허용하지 않음'이라는 메시지가 나온다. 바이러스 파일일 위험이 있기 때문이다.
chown 명령어는 root 사용자만 실행할 수 있다.
exit 명령으로 다시 root 사용자로 돌아온다.
'우분투 리눅스' 카테고리의 다른 글
4장 서버 구축 시 알아야 할 필수 개념과 명령어 (7) - 프로그램 설치를 위한 dpkg (0) | 2022.02.12 |
---|---|
4장 서버 구축 시 알아야 할 필수 개념과 명령어 (6) - 링크 (0) | 2022.02.12 |
4장 서버 구축 시 알아야 할 필수 개념과 명령어 (4) - 사용자 및 그룹 관련 명령어 (0) | 2022.02.11 |
4장 서버 구축 시 알아야 할 필수 개념과 명령어 (3) - 리눅스 기본 명령어 (0) | 2022.02.11 |
4장 서버 구축 시 알아야 할 필수 개념과 명령어 (1) - 리눅스 운영 (가상 콘솔, 런레벨, 에디터) (0) | 2022.02.11 |