[개념 정리] 사용 권한, 환경 변수

ddoobb·2021년 10월 5일

개념 정리

목록 보기
1/2
post-thumbnail

TIL

오늘은 리눅스기반 환경에서 통용되는 개념인 사용권한과 환경 변수에 대해서 배웠다.

사용 권한

r : read permission
w : write permission
x : execute permission

사용 권한은 위와 같이 약자로 표시되며 총 4부분으로 이루어져 있다.

  • d : 이 부분은 폴더인지 아닌지를 나타내는 부분으로 'd'로 나타 나있을시에는 폴더라는 뜻이다.
  • owner : 파일의 소유자를 뜻하며 기본적으로 파일을 만든 사람이 소유자가 된다.
  • group : 여러 user가 포함될수 있고, 그룹에 속한 모든 user는 파일에 대한 동일한 group 액세스 권한을 갖는다.
  • other : 파일에 대한 액세스 권한이 있는 다른 user를 뜻한다. 파일을 만들지 않는 다른 모든 user를 의마한다. 따라서 other 권한을 설정하면, 해당권한을 global 권한 설정이라고 할 수 있다.

위의 표시를 이진법으로 다음과 같이 표시할 수도 있다.

약자 = 이진법 = 십진법
rwx = 111 = 7
rw- = 110 = 6
r-x = 101 = 5
r-- = 100 = 4
-wx = 011 = 3
-w- = 010 = 2
--x = 001 = 1
--- = 000 = 0

사용 권한을 확인하기 위해서는 터미널에서 명령어를 통해서 확인할 수 있다.

ls -l 명령어 사용

sudo?

일반 사용자가 root 권한(관리자 권한)을 빌려서 명령어를 실행할 때 활용할 수 있는 커맨드

su?

계정 전환을 위한 커맨드

chmod 라는 명령어로 권한 설정을 해 주어야 하는 이유?

내가 만든 파일이나 디렉토리를 다른 사람이 마음대로 수정하거나 삭제되면 심각한 문제가 발생할 수 있기 때문에 설정해주어야 한다.

[커맨드] 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

[커맨드] 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------

환경 변수

환경 변수란?
API key와 같이 공개할 수 없는 정보가 코드에 포함될 경우, 네트워크를 통해 공개될 우려가 있다. 이러한 일을 방지 하기 위해서 사용하는 방법이 JavaScript에서 변수에 문자열을 할당하는 것처럼, API key를 PC에서 사용하는 변수에 할당하고 사용할 수 있다.
Linux 기반의 운영체제의 PC에는 시스템 자체에 전역변수를 설정할 수 있다. 그리고 시스템에 설정한 전역변수를 환경변수라 한다. export를 이용해 설정할 수 있다.

환경변수 확인하기, 환경변수 임시 적용

  • Linux 운영체제에는 이미 많은 환경변수가 설정되어 있다. 터미널에 명령어 export를 입력해, 기록된 환경변수를 확인할 수 있다.

터미널에 export 명령어를 입력하면, 현재 성절된 환경변수를 확인할 수 있다. 또한 export를 이용하면 새로운 환경변수를 추가 할수 있다.
명령어 ehco와 함께 환경변수를 입력하시면, 환경변수의 값을 확인할 수 있다. 이때 환경변수의 앞에는 달러사인($)을 입력, 변수라는 뜻을 터미널에 전달해야한다.

export urclass="is good"
-> urclass에 "is good"이라는 문자열이 들어간 변수 선언
echo $urclass
-> 결과값으로 바로 아래줄에 is good이 출력된다.

dotenv

  • npm 모듈인 dotenv를 사용하면, 자바스크립트에서 환경변수를 사용할 수 있다. 아래의 과정을 통해서 설치할 수 있다. 이때 생성된 폴더는 설치할 모듈과 이름이 같아서는 안된다.

    mkdir 폴더명 # 설치할 폴더 생성
    cd 폴더명 # 생성한 폴더에 들어감
    npm init # 엔터키를 여러번 입력해 init을 마친다.
    npm i dotenv # dotenv 모듈을 설치

  • 설치한 dotenv를 이용해 환경변수에 접근할 수 있다. 새로운 파일 index.js를 생성하고, process.env를 출력한다. Node.js의 내장 객체 process.env를 이용하면, 명령어 export 로 확인한 내용과 동일한 내용을 객체로 출력하게 된다.

  • process.env는 Node.js 환경에서 조회할 수 있다.

.env

  • 환경변수를 Linux 운영체제에 저장하는 방법은 여러 가지가 있지만, Node.js에서는 파일 .env를 만들어 저장하는 방식을 사용한다. 먼저, .env파일을 생성하고, 사용하고자 하는 환경변수를 입력한 뒤 저장한다.
  • 모듈 dotenv를 이용하면, 파일 .env에 저장한 변수를 조회할 수 있다.
  • 위의 과정들을 통해서 API key, DB password와 같이 민감한 정보들을 저장하고 관리할 수 있다. 또한 서로 다른 PC 또는 여러 .env 파일에서, 같은 변수 이름에 다른 값을 할당할 수 있다.

0개의 댓글