mkdir linux
nano helloworld.js
cat console.log("Hello World")
위 코드처럼 터미널에서 linux라는 폴더와 helloworld.js라는 파일을 만들고 내용으로 console.log("Hello World")를 입력해준뒤 ls -l 명령어를 입력해 결과를 보면 아래 그림과 같은 결과를 볼 수 있다.
여기서 보면 -rw-r--r-- 또는 drwxr-xr-x와 같은 내용이 있는 것을 확인할 수 있다. 이것에 대한 설명은 아래 그림과 같다.
d는 directory(폴더)인지 아닌지를 나타내고, r은 읽기 권한, w는 쓰기 권한, x는 실행 권한을 의미한다.
user(owner): user는 파일의 소유자입니다. 기본적으로 파일을 만든 사람이 소유자가 됩니다. 따라서 user를 소유자라고 하기도 합니다.
group: group에는 여러 user가 포함될 수 있습니다. 그룹에 속한 모든 user는 파일에 대한 동일한 group 액세스 권한을 갖습니다. 많은 사람이 파일에 액세스해야 하는 프로젝트가 있다고 가정합니다. 각 user에게 일일이 권한을 할당하는 대신에 모든 user를 group에 추가하고, 파일에 group 권한을 할당할 수 있습니다.
other: 파일에 대한 액세스 권한이 있는 다른 user입니다. 파일을 만들지 않은 다른 모든 user를 의미합니다. 따라서 other 권한을 설정하면, 해당 권한을 global 권한 설정이라고 볼 수도 있습니다.
명령어 chmod는 폴더나 파일의 읽기, 쓰기, 실행 권한을 변경할 수 있다. OS에 로그인한 사용자와, 폴더나 파일의 소유자가 같을 경우에 명령어 chmod 로 폴더나 파일의 권한을 변경할 수 있다. 만약 OS에 로그인한 사용자와, 폴더나 파일의 소유자가 다를 경우에는 관리자 권한을 획득하는 명령어 sudo 를 이용해 폴더나 파일의 권한을 변경할 수 있다.
chmod 로 권한을 변경하는 방식은 두 가지가 있다.
Symbolic method는 더하기(+), 빼기(-), 할당(=)과 액세서 유형을 표기해서 변경하는 방법이다.
Access class | Operator | Access Type |
---|---|---|
u (user) | + (add access) | r (read) |
g (group) | - (remove access) | w (write) |
o (other) | = (set exact access) | x (execute) |
a (all: u, g, and o) |
// symbolic method 사용 예시
chmod g-r filename // group에서 읽기권한 삭제
chmod g+r filename // group에 읽기권한 추가
chmod g-w filename // group에서 쓰기권한 삭제
chmod g+w filename // group에 쓰기권한 추가
chmod g-x filename // group에서 실행권한 삭제
chmod g+x filename // group에 실행권한 추가
chmod o-r filename // other에서 읽기권한 삭제
chmod o+r filename // other에 읽기권한 추가
chmod o-w filename // other에서 쓰기권한 삭제
chmod o+w filename // other에 쓰기권한 추가
chmod o-x filename // other에서 실행권한 삭제
chmod o+x filename // other에 실행권한 추가
chmod u+x filename // user에 실행권한 추가
------------------------------------------------------------------------------------------------
// chmod 명령어와 symbolic method로 helloworld.js 파일의 권한을 변경
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------
Absolute form은 rwx를 3 bit로 해석하여, 숫자 3자리로 권한을 표기해서 변경하는 방법이다.
Permission | Number |
---|---|
Read (r) | 4 |
Write (w) | 2 |
Execute (x) | 1 |