이런 문구 어디서 많이 봤을 것이다. 위의 예시는 파일에 대한 읽기 권한만을 가지고 있을 때 나오는 문구다. 파일을 수정하기 위해서는 쓰기 권한을 획득해야 한다.
이처럼 파일을 작업하기 위해 사용할 수 있는 권한의 종류에는 3가지가 있다.
바탕화면에 linux라는 폴더와 hello world 라는 파일을 만든 후 ls -l을 통해 현재 디렉토리 ( 바탕화면 ) 의 모든 파일들을 확인해본다.
가장 좌측에 나와있는 -rw... , dr... 들은 권한들의 나열을 의미한다.
같은 권한이 3번 반복되는데 그것은 사용자와 그룹, 나머지에 대한 권한을 표시하기 때문이다.
사용자 같은 경우에는 pc에 등록되어있는 os 계정 사용자, 그룹 같은 경우는 해당 pc가 묶여있는 팀이 될 수 있다.
r은 read, w는 write, x는 execution으로 파일 같은 경우 소유자만 읽기 쓰기가 가능하고 이외의 경우는 읽기 만 가능함을 확인할 수 있다.
폴더의 경우 가장 좌측에 d의 의미는 directory이고 파일의 경우에는 not directory의 의미로 -를 표시한다.
폴더의 소유자는 실행 권한을 갖고 있음을 알 수 있는데 실행은 접근 권한을 의미한다.
실행 권한이 없다면 cd 명령어를 통한 폴더 내부로의 접근이 불가하다. 아래는 cd 명령어를 통해 홈에서 바탕화면 그리고 폴더로 진입한 모습이다.
OS에 로그인한 사용자와, 폴더나 파일의 소유자가 같을 경우에 명령어 chmod 로 폴더나 파일의 권한을 변경할 수 있고
만약 OS에 로그인한 사용자와, 폴더나 파일의 소유자가 다를 경우에는 관리자 권한을 획득하는 명령어 sudo 를 이용해 폴더나 파일의 권한을 변경할 수 있다.
액세스 권한의 주체, 연산자, 권한 순으로 작성하면 된다.
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
------------[커맨드] symbolic method 사용 예시
chmod a=rw helloworld.js # -rw-rw-rw-
chmod u= helloworld.js # ----rw-rw-
chmod a+rx helloworld.js # -r-xrwxrwx
chmod go-wx helloworld.js # -r-xr--r--
chmod a= helloworld.js # ----------
chmod u+rwx helloworld.js # -rwx------
-----[커맨드] chmod 명령어와 symbolic method로 helloworld.js 파일의 권한을 변경합니다.
Absolute form에서는 다음과 같이 사용될 수 있다.
# u=rwx (4 + 2 + 1 = 7), go=r (4 + 0 + 0 = 4)
chmod 744 helloworld.js # -rwxr--r--
[커맨드] chmod 명령어와 Absolute form으로 helloworld.js 파일의 권한을 변경합니다.