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

윤태영 | Taeyoung Yoon·2022년 5월 9일
0

TIL (Today I Learned)

목록 보기
32/53
post-thumbnail

사용 권한

Linux에서 사용하는 폴더와 파일에는 권한이 있다.
권한은 Read, Write, Execute로 나뉜다.

프롬프트에서 js파일 생성
nano 파일명.js

ctrl + x 나가기
y 파일 저장 동의

프롬프트에 ls -l을 입력하면 현재 위치에 있는 폴더와 파일들의 정보가 출력된다.


프롬프트에 출력된 내용을 예시로 들면
-rw-r--r--

  • 형식: 파일
  • 소유자 권한: 읽기, 쓰기
  • 그룹 권한: 읽기
  • 글로벌 권한: 읽기

drwxr-xr-x

  • 형식: 폴더
  • 소유자 권한: 읽기, 쓰기, 실행
  • 그룹 권한: 읽기, 실행
  • 글로벌 권한: 읽기, 실행

임을 알 수 있다.

chmod

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

Symbolic method

+, -, =와 엑세서 유형을 표기하여 변경하는 방법

권한 클래스연산자권한 타입
u (user)+ (권한 추가)r (읽기)
g (group)- (권한 삭제)w (쓰기)
o (other)= (권한 정하기)x (실행)
a (all)

예시

chmod g-r filename # 그룹의 읽기 권한 삭제
chmod g+r filename # 그룹의 읽기 권한 추가
chmod o-w filename # 다른 사용자의 쓰기 권한 삭제
chmod o+w filename # 다른 사용자의 쓰기 권한 추가
chmod u-x filename # 사용자의 실행 권한 삭제
chmod u+x filename # 사용자의 실행 권한 추가
chmod a+rx filename # 모든 사용자의 읽기, 실행 권한 추가
chmod a=rw filename # 모든 사용자의 권한은 읽기, 쓰기
chmod o= filename # 다른 사용자의 권한은 없다.

Absolute form

숫자 7까지 나타내는 3bit의 합으로 표기하는 방법

권한
Read4
Write2
Execute1

수의 합을 user, group, other 순으로 입력하여 사용한다.

예시

chmod 744 filename # -rwxr--r--
chmod 316 directoryname # d-wx--xrw-

환경 변수

API key와 같이 공개할 수 없는 정보를 코드에 포함시킬 수 없으므로 이를 방지하기 위해서는 API key를 PC에 저장해두고 사용해야 한다.
PC에서 사용하는 변수에 할당해 사용할 수 있다.

Linux 기반의 운영체제의 PC의 시스템에 설정한 전역변수를 환경변수라 한다.

export

  • 프롬프트에 명령어 export를 입력하면 현재 설정된 환경변수를 확인할 수 있다.

  • 명령어 export로 새로운 환경변수를 추가할 수 있다. (현재 사용중인 프롬프트에서만 임시로 사용이 가능하다.)
    export 변수명="변수값"

  • 명령어 echo로 환경변수의 값을 확인할 수 있다.
    echo $변수명 ($는 변수라는 뜻이다.)

dotenv

npm 모듈이며 JavaScript에서 환경변수를 사용할 수 있게 해준다.

설치

  • 폴더안으로 진입후
  • npm init으로 npm을 init해준 후
  • npm i dotenv로 설치하면 된다.
    폴더명은 모듈명과 같으면 안된다.

node.js의 내장 객체 process.env를 이용해 환경변수객체를 프롬프트에 출력할 수 있다.

.env

node.js에서 파일 .env를 만들어 입력한 환경변수를 영구적용할 수 있다.

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

index.js를

require("dotenv").config();
console.log(process.env.변수명);

다음과 작성하고 실행하면
해당 변수명의 환경변수의 값이 출력된다.

환경변수 사용예시

환경변수를 이용해 API Key나 데이터베이스 password와 같이 민감한 정보를 저장하고 관리할 수 있다.
서로 다른 PC또는 여러 .env파일에서 같은 변수 이름에 다른 값을 할당할 수도 있다.

구글 API를 이용해 웹 어플리케이션을 만드는 경우
개발 환경에서는 개발자 개인의 API Key를 사용할 수 있다.
그러나 제품을 서비스할 때 개인 APi Key를 사용하면 일일요청량을 초과해 제품이 정상적인 동작을 할 수 없다.
이런 경우를 방지하기 위해 실제 제품에서는 기업용 API Key를 사용한다.
이처럼 개발 환경과 제품을 제공하는 환경에서 사용하는 API Key가 다른 경우,
환경변수를 이용해 환경을 구분하여 코드를 작성할 수 있다.
데이터베이스도 마찬가지로 환경을 구분해 코드를 작성할 수 있다.

예시

DATABASE_NAME=my_app_dev #개발환경에서 접근할 데이터베이스
DATABASE_NAME=my_app_test #테스트환경에서 접근할 데이터베이스
DATABASE_NAME=my_app_produvtion #제품환경에서 접근할 데이터베이스

0개의 댓글