Achivement Goals
사용 권한과 소유자에 대해 이해하고, 사용 권한을 변경할 수 있다.
파일의 소유자와 파일에 적용된 사용 권한 확인코드 : ls -l
파일사용 권한 변경코드 : chmod
리눅스의 사용자 권한 확인코드 및 변경코드를 파악해보기 위해서
임의의 폴더/파일을 CLI(터미널) 을 이용해서 만들었다.
1. mkdir 폴더명
2. nano 파일명.js
파일은 Control + x + y + Enter 를 순차적으로 누르면 저장이 되면서
바탕화면에 사진과 같이 나타난다.
파일의 소유자와 파일에 적용된 사용 권한 확인코드로, 터미널에 해당 코드를 작성할 경우 다음과 같이 나온다.
나같은 경우 데스크탑에서 ls -l을 쳐봤다.
맨 왼쪽부터 살펴보면
drwxr-xr-x 또는 -rw-r--r-- 라고 작성된 부분이 보인다.
이는 각 폴더 또는 파일의 권한정보에 대해 특정코드로 구분해 놓은것이다.
규칙
1. 폴더는 d(directory), 파일은 - 로 시작.
2. r : read permission - 읽기권한
3. w : write permission - 쓰기권한
4. x : execute permission - 실행권한
5. 사용자(소유자,파일을 만든사람) / 그룹(프로젝트 시 여러사람들의 권한관리) / 다른사용자(=== global한 권한) 순으로 읽힌다.
이 조합을 해석해 본다면
d : 폴더
rwx : 소유자는 읽기 / 쓰기 / 실행 권한 모두 있다.
r-x : 그룹은 읽기 / 실행 권한만 있다.
r-x : 다른 사용자는 읽기 / 실행 권한만 있다.
권한을 변경하는 명령어로, os에 로그인한 사용자와 폴더 또는 파일을 만든 사용자가 일치할 경우 터미널에 chmod 명령어를 작성한 후 변경할 사항을 입력하면 된다.
만약 로그인한 사용자와 일치하지 않는다면 "sudo" 명령어를 입력하면 된다.
권한을 변경하는 방법은 크게 두가지가 있다.
더하기,빼기,할당(=) 과 같은 기호를 이용해서 변경하는 방식
액세스 클래스, 연산자, 액세스 타입으로 구분하여 작성한다.
u(사용자) / g(그룹) / o(다른사용자) / a(모두)
총 네가지로 나눈 타입
연산자 +(add access) / -(remove access) / = (set exact access)
r(read) / w(write) / x(execute)
현재 -rw-r--r-- 권한의 linuxFile.js 를 symbolic method 로 권한변경을 해보겠다.
현재는 사용자(읽기/쓰기) , 그룹&다른사용자(읽기) 권한뿐이다.
그룹(g)와 다른사용자(o)에게 쓰기(w)권한을 더해주었다.(+)
권한이 -rw-rw-rw- 로 변경된것을 볼 수 있다.
rwx를 3 bit로 해석하여, 숫자 3자리로 권한을 표기해서 변경하는 방식
read : 4
write : 2
excute : 1
각 권한에 맞는 숫자를 더하여 chmod 명령어와 함께 사용자 / 그룹 / 다른사용자 순으로 작성해주면 된다.
예를들어
모든 권한을 준다면 4+2+1 = 7 이 될 수 있으며
읽기권한을 제외한 나머지 권한만 준다면
4 + 1 = 5 가 될 수 있다.
이전에 -rw-rw-rw- 였언 linuxFile.js 에 모든 권한을 부여하도록
777 코드를 넣어봤다.
-rwxrwxrwx => 모든 권한이 부여되었다.
반대로 사용자를 제외한 나머지에게 읽기전용파일만 되도록 해보았다.
-rwx-w--w- : 사용자부분(rwx)을 제외한 나머지 부분은 w만 있는 읽기전용파일이 되었다.