저번 주 HA가 끝나고 오랜만에 친구들도 만나고, 쉬엄쉬엄 정처기 공부하면서 보냈다. ๑・̑◡・̑๑ 그리고 오늘부터 섹션3가 시작됐다! 데이터베이스 위주로 배운다고 들었는데 저 기억 구석탱이에 있는 SQL 문법들을 끄집어내야할 때가 왔다. 하다보면 기억나겠지..? ㅎㅎ 오늘 강의는 섹션3를 시작하는 첫 날이라 그런지 분량이 많지않았다. Linux 사용권한과 환경 변수에 대해 전반적으로 배웠다.
- 사용 권한이란?
- 폴더와 파일의 권한으로 폴더인지 파일인지 구분하는 방법
- 폴더나 파일의 사용 권한을 변경하는 방법
- 환경변수란?
- PC에 저장된 환경변수 확인하는 방법
- PC에 저장된 환경변수 불러오는 방법
- Node.js에서 환경변수를 영구적용하는 방법
예를 들어, 피피티, 엑셀 등 뷰어에서 읽기 전용으로 파일을 열어본 경험이 있을 것이다. 파일들은 내 마음대로 편집 불가능하고 오직 읽는 것만 가능하다. 이때 이 파일의 권한은 읽고 실행만 허용된 것이다. 사용 권한은 이러한 읽고, 편집하고(쓰고), 실행하는 권한을 의미한다.
Linux에서 사용하는 파일과 폴더에는 사용 권한이 있다. 그 권한은 읽기(read), 쓰기(write), 실행(execute) 3가지의 권한이 있고 소유자의 권한, 그룹의 권한, 다른 사용자의 권한으로 구분하고있다.
터미널에 새로운 디렉토리(폴더)를 만들고, 또 새로운 파일(js)을 만들어보자.
$ mkdir linux // mkdir : 새로운 디렉토리 생성
$ nano helloworld.js // nano : 새로운 파일 생성
helloworld.js
에 console.log("Hello World!");
를 작성하고 저장했다. 그리고 터미널에 ls -l
을 입력해보자.
➜ linux_study ls -l
total 8
-rw-r--r-- 1 eunyuseo staff 30 10 5 09:55 helloworld.js
drwxr-xr-x 3 eunyuseo staff 96 10 5 09:55 linux
터미널 프롬포트에 이렇게 뜰 것이다.
파일 helloworld.js
는 -rw-r--r--
이라고 출력되었고, 폴더 linux
는 drwxr-xr-x
라고 출력되었있다. 맨 앞에 -로 시작하면 파일인 걸 나타내고, d로 시작하면 디렉토리(폴더)인 걸 나타낸다. 또 이어지는 r, w, e는 위에 언급했던 것처럼 읽기 권한, 쓰기 권한, 실행 권한을 의미한다.
user는 파일의 소유자다. 기본적으로 파일을 만든 사람이 소유자가 된다.
group에는 여러 user가 포함될 수 있다. 그룹에 속한 모든 user는 파일에 대한 동일한 group 액세스 권한을 갖는다. 많은 사람이 파일에 액세스해야 하는 프로젝트가 있다고 가정했을 때 각 user에게 일일이 권한을 할당하는 대신에 모든 user를 group에 추가하고, 파일에 group 권한을 할당할 수 있다.
파일에 대한 액세스 권한이 있는 다른 소유자다. 파일을 만들지 않은 다른 모든 소유자를 의미한다. 따라서 other 권한을 설정하면, 해당 권한을 global 권한 설정이라고 볼 수도 있다.
명령어 chmod
로 사용 권한을 변경할 수 있다. 만약 OS에 로그인한 사용자와, 폴더나 파일의 소유자가 다를 경우에는 관리자 권한을 획득하는 명령어 sudo
를 이용해 폴더나 파일의 권한을 변경할 수 있다.
명령어 chmod
로 변경하는 방법에는 2가지 방법이 있다.
액세스 클래스, 연산자 클래스, 액세스 타입으로 구분한다.
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
// 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------
숫자 7까지 나타내는 3 bits의 합으로 표기한다. 사용자, 그룹, 또는 다른 사용자나 그룹마다 rwx 가 나타나고, 각 영역의 boolean 값으로 표기할 수 있다.
아래의 표는 숫자별로 어떠한 권한을 나타내는지 보여준다.
// helloworld.js의 사용 권한 변경 예시
// # u=rwx (4 + 2 + 1 = 7), go=r (4 + 0 + 0 = 4)
chmod 744 helloworld.js # -rwxr--r--