리눅스는 불특정 다수가 들어와 사용하는 멀티유저시스템이다.
멀티유저시스템의 문제는 여러 사용자가 서버에 들어와 자료를 열람하거나 변조,수정,삭제를 할 우려가 있다.
이런 문제를 해결하기 위해 리눅스에는 권한을 제안하거나 부여하는 기능이 추가 되었다.
우선 어떤 형태로 운영이 되는지 알아보자.
디렉토리에서 ls -al 명령어를 사용하면 현재의 위치의 파일들을 자세히 보여준다.
myfile을 기준으로 살펴보자
퍼미션 종류에는 3가지가, 사용자도 3가지가 있다.
위 이미지의 myfile 이미지를 기준으로 보자.
퍼미션의 종류는 3가지 ( r w x )개 이지만 위 이미지를 보면 총 9개가 표시되어 있다. 3자리씩 끊어보면 좀 더 명확하게 알 수 있다.
따라서 해당퍼미션은 소유 그룹 공개 모두 r 읽고 w 쓰고 x 실행이 가능하다는 표시이다.
만약 퍼미션의 정보가 아래와 같으면 어떨까?
해석해 보자면 소유자는 r 읽고 w 쓰고 x 실행이 가능하지만 그룹과 공개 사용자는 r읽고 x 실행밖에 시키지 못한다는 내용이 된다.
이 때 '-'의 기호는 해당 퍼미션은 없다는 뜻이다.
파일이 생성될 때 기본적인 퍼미션이 부여된다. 기본적으로 부여된 퍼미션을 변경하기 위해서는 가장 자주 사용되는 명령어들을 정리해 보겠다.
chmod [변경될 퍼미션 값][변경할 파일]
여기서 퍼미션 값을 지정해 줘야하는데 퍼미션 값은 아래와 같다
- 각 퍼미션 기호를 숫자로 변환한다
r = 4
w = 2
x = 1- 변환한 숫자를 합산한다
ex) 쓰기:4 읽기:0 실행:1 = 5
rwxrw-rw- -> 4+2+1 | 4+0+1 | 4+0+1 = 755
-R 옵션을 사용하면 myfile 하위의 디렉토리의 모든 파일의 퍼미션이 변경된다
위의 권한이 chmod -R 777 blockchain 으로 소유자 그룹 공개 모두 읽기 쓰기 실행을 할수 있게 변환 해주면
모든 blockchain디렉토리의 모든 파일의 권한이 변경된 것을 확인 할 수 있다.
chown [변경할 소유자][변경할 파일]
파일의 소유자를 양도 해야할 경우 소유자를 변경할 수 있다.
해당 명령어로 소유자 뿐만 아니라 소유 그룹도 변경 할 수 있다.
소유자가 root에서 happy로 변경된 것을 확인 할수 있다.