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

Jogi's 코딩 일기장·2021년 8월 23일
0

저번 주는 Section 2 HA가 있었다. 여태까지 배웠던 것을 기본으로 크게 어려웠던 것이 없었는지, 쉽게 다 풀 수 있었고 통과를 했다. 이 후 Section 3 시작을 했고, 그 시작이 리눅스에서 사용권한과 환경변수에 대해 학습을 했다. 학습을 하면서 배운 것들을 정리를 해보겠다.

사용권한

  • 리눅스에서 사용하는 폴더에는 권한이 있으며, 읽기(Read), 쓰기(Wirte), 실행(Execute)이 있다.

Read, Write, Execute 권한

폴더인지 파일인지 확인하기

  • ls -l을 했을 때, 첫 시작이 - or d

    • - : Not directory, 파일을 나타낸다.
    • d : directory, 폴더를 나타낸다.
  • rwx의 형태가 3번에 걸쳐 나타나는데, 이는 사용자, 그룹, 나머지에 대한 권한을 표시한다.

user, group and other

  • user : 파일의 소유자, 기본적으로 파일은 만든 사람이 소유자가 된다. 따라서 user를 소유자라고도 한다.
  • group
    group에는 여러 소유자가 포함될 수 있다. 스룹에 속한 모든 user는 파일에 대한 동일한 group 액세를 권한을 얻는다. 많은 사람이 파일에 액세스 해야할 경우, 각 user에게 권한을 일일이 할당하는 대신에 모든 유저를 group에 추가하고, 파일에 group 권한을 할당할 수 있다.
  • other
    파일에 대한 액세스 권한이 다른 user. 파일을 만들지 않은 다른 모든 user이다. 따라서 other 권한을 설정하면, 해당 권한을 global 권한 설정이라 볼 수 있다.

chmod : 권한을 변경하는 명령어

  • chmod를 통해 폴더나 파일의 읽기, 쓰기, 실행 권한을 변경할 수 있다.

  • 소유자가 다를 경우 관리자 권한을 획득하는 명령어 sudo를 이용해 권한 변경이 가능하다.

  • chmod로 권한을 변경하는 2가지 방법

    • Symbolic method : +, -, =과 같은 액세서 유형을 표기해서 권한을 변경한다.
      - access class : u (user), g (group), o (other), a (all)
      - operator : + (add access), - (remove access), = (set exact access)
      - access type : r (read), w (write), x (execute)

      chmod (액세스클래스)(연산자)(액세스 타입) filename // ex) go-wx hello.js
    • Absolute form : rwx를 3bit로 해석하여, 숫자 3자리로 권한을 표기해서 권한을 변경한다. 2진수로 생각하면 111(7) = rwx이다.

      chmod 744 hello.js // 이것은 user에게  111(rwx), group과 other에게 100(r--)
                          // -rwxr--r--와 같다. 이것은 폴더가 아닌 파일이므로 앞은 -

환경변수

리눅스 기반의 PC에서는 시스템 자체에 전역변수를 설정할 수 있다. 시스템에 설정한 전역변수를 환경변수라고 하며, export를 통해 설정할 수 있다.

환경변수 사용법

export : 환경변수 확인하기 및 환경변수 임시적용

  • 터미널에 명령어 export를 입력해 기록된 환경 변수를 확인할 수 있다.

  • 또한 새로운 환경변수를 추가할 수 있다. 등호표시(=) 앞 뒤에는 반드시 공백이 없어야 한다.

    export jogi="good"
  • 명령어 echo와 함께 환경변수를 입력하면, 환경변수의 값을 알 수 있다. 이 때 환경변수 앞에는 달러사인($)을 입력하여, 변수라는 뜻을 터미널에 전달한다.

    echo $jogi

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

  • npm 모듈 dotenv를 사용하면, 자바스크립트에서 환경변수를 사용할 수 있다.

  • npm 모듈을 설치하고 사용하기 위해서, 새로운 폴더를 만들고 npm init을 입력한다. 그리고 npm i dotenv를 입력해 모듈을 설치한다. 생성된 폴더는 설치할 모듈의 이름과 같아서는 안된다.

    mkdir env_variable
    cd env_variable
    npm init
    npm i dotenv
  • Node.js의 내장 객체 process.env를 이용하면, 명령어 export로 확인한 동일한 내용을 사용할 수 있다. ex) console.log(process.env)

    • process(env)는 Node.js 환경에서 조회할 수 있다.
    • dotenv는 .env 파일을 환경변수로 사용할 수 있게 돕는다.

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

  • 명령어 export로 적용한 환경변수는 현재 사용중인 터미널에서만 임시로 사용가능하다.

  • Node.js에서는 파일 .env를 만들어 저장하는 환경을 사용한다.

    1. .env 파일을 생성하고, 사용하고자 하는 환경변수를 입력한 뒤 저장한다.
    2. 모듈 dotenv를 이용하면, 파일 .env에 저장한 환경변수를 조회할 수 있다.
      const dotenv = require("dotenv");
      dotenv.config()   // 이를 통해서, .env를 process.env에 적용할 수 있다.
      console.log(process.env);
  • 환경 변수를 이용해 API Key, DB password와 같은 민감한 정보를 저장하고 관리할 수 있다. 뿐만 아니라 서로 다른 PC 또는 여러 .env 파일에서 같은 변수 이름에 다른 값을 할당할 수 있다.

느낀점

이번 유닛을 하면서 확실한 실습은 없었지만, 나중에 DB를 배우게 될텐데 아마 이 때 사용하지 않을까라는 생각을 하게 된다. 사실 오늘 배운 내용은 그렇게 어려운 내용은 없었기 때문에 학습하는데에는 어려움이 없었다. 확실한 것은 오늘 배운 권한과 환경변수를 어디에서 적용시키게 될 지 지켜보고, 이를 제대로 적용시킬 수 있도록 노력을 해야할 것 같다. Section 3의 시작이 나쁘지 않다. 이번 섹션도 잘 해보자.

Reference

  • 코드스테이츠 강의자료
profile
프로그래머로서의 한걸음

0개의 댓글