✍️ TILog_06

은유로그·2021년 10월 5일
0

🔥 Log

목록 보기
8/29
post-thumbnail

저번 주 HA가 끝나고 오랜만에 친구들도 만나고, 쉬엄쉬엄 정처기 공부하면서 보냈다. ๑・̑◡・̑๑ 그리고 오늘부터 섹션3가 시작됐다! 데이터베이스 위주로 배운다고 들었는데 저 기억 구석탱이에 있는 SQL 문법들을 끄집어내야할 때가 왔다. 하다보면 기억나겠지..? ㅎㅎ 오늘 강의는 섹션3를 시작하는 첫 날이라 그런지 분량이 많지않았다. Linux 사용권한과 환경 변수에 대해 전반적으로 배웠다.


목차

  • 사용 권한이란?
  • 폴더와 파일의 권한으로 폴더인지 파일인지 구분하는 방법
  • 폴더나 파일의 사용 권한을 변경하는 방법
  • 환경변수란?
  • PC에 저장된 환경변수 확인하는 방법
  • PC에 저장된 환경변수 불러오는 방법
  • Node.js에서 환경변수를 영구적용하는 방법

🔐 사용 권한

예를 들어, 피피티, 엑셀 등 뷰어에서 읽기 전용으로 파일을 열어본 경험이 있을 것이다. 파일들은 내 마음대로 편집 불가능하고 오직 읽는 것만 가능하다. 이때 이 파일의 권한은 읽고 실행만 허용된 것이다. 사용 권한은 이러한 읽고, 편집하고(쓰고), 실행하는 권한을 의미한다.
Linux에서 사용하는 파일과 폴더에는 사용 권한이 있다. 그 권한은 읽기(read), 쓰기(write), 실행(execute) 3가지의 권한이 있고 소유자의 권한, 그룹의 권한, 다른 사용자의 권한으로 구분하고있다.


터미널에 새로운 디렉토리(폴더)를 만들고, 또 새로운 파일(js)을 만들어보자.

$ mkdir linux // mkdir : 새로운 디렉토리 생성
$ nano helloworld.js // nano : 새로운 파일 생성

helloworld.jsconsole.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-- 이라고 출력되었고, 폴더 linuxdrwxr-xr-x 라고 출력되었있다. 맨 앞에 -로 시작하면 파일인 걸 나타내고, d로 시작하면 디렉토리(폴더)인 걸 나타낸다. 또 이어지는 r, w, e는 위에 언급했던 것처럼 읽기 권한, 쓰기 권한, 실행 권한을 의미한다.


⚙️ 폴더와 파일의 권한으로 폴더인지 파일인지 구분하는 방법

owner(user)

user는 파일의 소유자다. 기본적으로 파일을 만든 사람이 소유자가 된다.

group

group에는 여러 user가 포함될 수 있다. 그룹에 속한 모든 user는 파일에 대한 동일한 group 액세스 권한을 갖는다. 많은 사람이 파일에 액세스해야 하는 프로젝트가 있다고 가정했을 때 각 user에게 일일이 권한을 할당하는 대신에 모든 user를 group에 추가하고, 파일에 group 권한을 할당할 수 있다.

other

파일에 대한 액세스 권한이 있는 다른 소유자다. 파일을 만들지 않은 다른 모든 소유자를 의미한다. 따라서 other 권한을 설정하면, 해당 권한을 global 권한 설정이라고 볼 수도 있다.


⚙️ 폴더나 파일의 사용 권한을 변경하는 방법

명령어 chmod로 사용 권한을 변경할 수 있다. 만약 OS에 로그인한 사용자와, 폴더나 파일의 소유자가 다를 경우에는 관리자 권한을 획득하는 명령어 sudo를 이용해 폴더나 파일의 권한을 변경할 수 있다.

명령어 chmod로 변경하는 방법에는 2가지 방법이 있다.

  • 첫 번째는 더하기(+), 빼기(-), 할당(=)과 액세서 유형을 표기해서 변경하는 Symbolic method
  • 두 번째는 rwx를 3 bit로 해석하여, 숫자 3자리로 권한을 표기해서 변경하는 Absolute form

Symbolic method

액세스 클래스, 연산자 클래스, 액세스 타입으로 구분한다.

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------

Absolute form

숫자 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--

profile
๑•‿•๑

0개의 댓글