이 사이트를 주로 참고했다.
리눅스 터미널에서 폴더나 파일의 사용권한을 확인하고 싶으면 확인하고 싶은 폴더나 파일이 있는 장소로 cd를 이용해서 이동한 뒤 아래처럼 'ls -l' 이나 줄임말인 'll'을 터미널에 입렵하면 사용 권한을 확인할 수 있다.
ls -l
ll
터미널에 사용권한을 확인하는 명령어를 입력하면 가장 좌측에 위에있는 그림처럼 10자리의 문자가 나올 것이다.
4 부분으로 나눌 수 있는데
1 번 째 : 첫 번째 자리에 들어있는 숫자는 폴더인지 파일인지를 알려준다.
" - " 이라고 되어있으면 파일이다.
" d " d는 directory로 폴더라는 것을 알려주는 것이다.
" l " l은 링크라는 표시다.
2 ~ 4 번 째 : owner / user
파일의 소유자의 권한을 나타낸다.
5 ~ 7 번 째 : group
파일의 소유자가 속한 그룹의 권한을 나타낸다.
8 ~ 10 번 째 : other
파일에 대한 액세스 권한이 있는 다른 user를 나타낸다. 파일을 만든 user가 아니면 모두 other이다.
위에 있는 그림의
-rwxr--r--
은 파일이고 owner에게는 읽기, 쓰기, 실행 권한이 모두 있고, group과 other에게는 읽기 권한만 있다는 것을 뜻한다.
명령어 chmod는 OS에 로그인한 사용자와 폴더 or 파일의 owner가 같을경우 권한을 변경할 수 있다. 만약 다를 경우 관리자 권한을 받는 명령어 "sudo"를 통해 관리자 권한을 일시적으로 받아서 변경할 수 있다.
chmod로 권한을 변경할 때는 두 가지 방법으로 할 수 있다.
Access class | Operator | Access Type |
---|---|---|
u (user === owner) | +(add access) | r (read) |
g (group) | - (remove access) | w (write) |
o (other) | = (set exact access) | x (execute) |
a (all: u, g, and o) |
예시를 써보자면
chmod u+r filename # 이렇게 작성하면 user(owner)에게 읽기 권한을 주는 것이다.
chmod g-x filename # group의 실행 권한을 없애는 것이다.
이런 방식도 있지만 한 번에 여러 개의 권한을 변경 할 수도 있다. (아래 예시는 위에서 부터 순서대로 실행한다고 가정한다)
chmod a=rwx filename # filename 이라는 파일의 권한이 -rwxrwxrwx 로 변경된다.
chmod ug-rx filename # filename 이라는 파일의 권한이 --w--w-rwx 로 변경된다.
chmod a= filename # filename 이라는 파일의 권한이 ---------- 로 변경된다.
chmod g=wx filename # filename 이라는 파일의 권한이 -----wx--- 로 변경된다.
chmod u+rwx filename # filename 이라는 파일의 권한이 -rwx-wx--- 로 변경된다.
만약 읽기와 실행 권한을 주고 싶으면 읽기 권한의 4와 실행 권한의 1을 합쳐서 5를 주면 되는 것이다.
숫자는 순서대로 owner, group, other의 권한 순이다.
예시를 써보자면
chmod 731 filename # filename 이라는 파일의 권한이 -rwx-wx--x 로 변경된다.
chmod 600 filename # filename 이라는 파일의 권한이 -rw------- 로 변경된다.
chmod 371 filename # filename 이라는 파일의 권한이 --wxrwx--x 로 변경된다.
개인적으로 Absolute form이 적응 하면 더 쉽다는 생각이 든다.