리눅스의 사용권한을 공부하기 위해서 일단 터미널을 실행시켜 보겠습니다,
그리고 터미널의 아무 디렉토리 안에서 폴더와 파일 두가지를 생성하겠습니다.
mkdir linux
nano helloworld.js
자, 이렇게 하면 해당 디렉토리 안에 linux 라는 폴더와 helloworld.js 라는 파일이 생성되었습니다.
그리고 나서 해당 디렉토리 안에서 ls -l 을 적고 엔터를 눌러봅시다.
이런 목록이 뜨죠? 이제 여기서 맨 왼쪽에 나와있는 표현을 살펴보겠습니다.
파일상태인 helloworld.js 는 -rw-r--r-- 로 표현되어 있고
폴더상태인 linux 는 drwxr-xr-x 로 표현되어 있습니다.
일단 이 표현은 총 네개의 단락으로 나뉘어져 있습니다.
첫번째는 해당자료가 폴더인지 아닌지를 구별하는 역할을 하고,
두번째부터 네번째는 각각 사용자, 그룹, 다른사용자가 이용가능한 권한을 나타냅니다. 순서대로 보겠습니다.
명령어 chmod 로 폴더나 파일의 읽기, 쓰기, 실행권한을 변경할 수 있습니다.
폴더나 파일의 소유자가 같을경우에 chmod 로 폴더나 파일의 권한을 변경할 수 있습니다.
만약 OS에 로그인한 사용자와, 폴더나 파일의 소유자가 다를경우에는 관리자 권한을 획득하는 명령어인
sudo 를 이용해 폴더나 파일의 권한을 변경할 수 있습니다.
명령어 chmod 로 권한을 변경하는 방식은 두가지가 있습니다.
Symbolic method 는 엑세스클래스, 연산자, 엑세스타입 으로 구분합니다.
/* 예시 */
chmod g-r filename # removes read permission from group
chmod g+r filename # adds read permission to group
chmod g-w filename # removes write permission from group
chmod g+w filename # adds write permission to group
chmod g-x filename # removes execute permission from group
chmod g+x filename # adds execute permission to group
chmod o-r filename # removes read permission from other
chmod o+r filename # adds read permission to other
chmod o-w filename # removes write permission from other
chmod o+w filename # adds write permission to other
chmod o-x filename # removes execute permission from other
chmod o+x filename # adds execute permission to other
chmod u+x filename # adds execute permission to user
Absolute from 은 숫자 7까지 나타내는 3 bits 의 합으로 표기합니다.
사용자, 그룹, 또는 다른 사용자나 그룹마다 rwx 가 나타나고, 각 영역의 boolean 값으로 표기할 수 있습니다.
만약, user는 rwx를, group 과 other은 r-- 로 권한을 변경하려고 한다면, 위 표에 나와있는 숫자의 합을
user, group, other 순으로 입력하여 사용합니다.
# u=rwx (4 + 2 + 1 = 7), go=r (4 + 0 + 0 = 4)
chmod 744 helloworld.js # -rwxr--r--
참고사이트: https://kb.iu.edu/d/abdb