프로그래밍 공부/Backend

[Linux] 사용 권한, 환경 변수

Kevinkb 2021. 11. 8. 13:49

사용 권한

Linux에서 사용하는 폴더와 파일에는 권한이 있다. 권한은 읽기(Read), 쓰기(Write), 실행(Execute)으로 나뉜다.

사용 권한 확인하기

터미널 프롬프트에 명령어 ls -l 를 입력하면 다음과 같은 출력을 확인할 수 있다. 사용권한은 가장 왼쪽 출력을 통해 확인할 수 있다. 표현의 첫 시작인 -d는 각각 not directory와 directory를 뜻한다. 그 뒤로 이어지는 r, w, x는 read permission, write permission, execute permission으로 읽기 권한, 쓰기 권한, 실행 권한을 나타낸다. 3번에 걸쳐 rwx가 반복되는데 이것은 사용자/그룹/나머지에 대한 권한을 표현한다.

host:~/linux$ ls -l
합계 8
-rw-r--r-- 1 username   29 11월  8 10:12 helloworld.js
drwxrwxr-x 2 username 4096 11월  8 10:41 linux

사용 권한 변경하기

명령어 chmod를 사용해 읽기, 쓰기, 실행 권한을 변경할 수 있다. 폴더나 파일의 소유자가 같을 경우, 관리자 권한을 가지고 있을 경우 폴더나 파일의 권한을 변경할 수 있다.

chmod로 권한을 변경하는 방식은 두가지다.

Symbolic method

예시

chmod a= helloworld.js # ----------
chmod u+rwx helloworld.js # -rwx------
chmod u= helloworld.js # ----------
chmod go+w helloworld.js # -----w--w-
chmod a+rx helloworld.js # -r-xrwxrwx
chmod u+w helloworld.js # -rwxrwxrwx
chmod go-wx helloworld.js # -rwxr--r--

Absolute form

예시

# u=rwx (4 + 2 + 1 = 7), go=r (4 + 0 + 0 = 4)
chmod 744 helloworld.js # -rwxr--r--


환경 변수

Linux 기반의 운영체제의 PC에는 시스템 자체에 전역변수를 설정할 수 있다. 이 시스템에 설정한 전역변수를 환경변수라고 한다. export 를 이용해 환경변수를 설정할 수 있다.

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

명령어 export를 사용해 기록된 환경 변수를 확인할 수 있고 새로운 환경 변수를 추가할 수 있다.

환경 변수 확인

환경 변수 추가

등호 표시 앞뒤에는 반드시 공백이 없어야 한다.

export urclass="is good"

특정 환경변수 확인

echo $urclass

dotenv: 자바스크립트에서 환경변수 사용하기

mkdir environment_variable
cd environment_variable
npm init # 엔터 키를 여러번 입력해 init을 마칩니다.
npm i dotenv # dotenv 모듈을 설치합니다.

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

.env: Node.js에서 환경변수 영구 적용

명령어 export 로 적용한 환경변수는 현재 사용 중인 터미널에서만 임시로 사용이 가능하다. 환경변수를 Linux 운영체제에 저장하는 방법은 여러 가지가 있지만, Node.js에서는 파일 .env를 만들어 저장하는 방법을 사용한다.

먼저 .env 파일을 생성하고, 사용하고자 하는 환경변수를 입력한 뒤 저장한다.

모듈 dotenv를 이용하면, 파일 .env에 저장한 환경변수를 조회할 수 있다.

const dotenv = require("dotenv");
dotenv.config();
console.log(process.env.myname);

환경변수를 이용해 API key, DB password와 같이 민감한 정보를 저장하고 관리할 수 있다. 또한, 서로 다른 PC 또는 여러 .env 파일에서, 같은 변수 이름에 다른 값을 할당할 수 있다. 이것을 이용해 실제 개발 과정에선 개발 환경, 테스트 서버 환경, 실제 제품 제공 환경을 나눠 사용할 수 있다. 데이터베이스 또한 마찬가지로 개발, 테스트, 제품 환경으로 구분 할 수 있다.

하나의 변수를 환경에 따라 다르게 설정 가능