[TIL] Day46- Linux

공부중인 개발자·2021년 6월 14일
0

TIL

목록 보기
46/64
post-thumbnail

Achivement Goals

  • 사용 권한과 소유자에 대해 이해하고, 사용 권한을 변경할 수 있다.
    • 파일의 소유자와 파일에 적용된 사용 권한을 확인하고 이해할 수 있다. ls -l
    • 파일에 적용된 사용 권한을 변경할 수 있다. chmod
  • PC에 저장하는 환경변수가 무엇인지 이해하고, 사용할 수 있다.
    • PC에 저장된 환경변수를 확인할 수 있다. export
    • PC에 저장된 환경변수를 불러올 수 있다. dotenv
    • Node.js에서 환경변수를 영구적용할 수 있다. .env

사용권한

  • 파일의 소유자와 파일에 적용된 사용 권한을 확인하고 이해할 수 있다. ls -l

터미널에서 ls -l 명령어를 치면 파일들이 나오게 되는데

여기서 왼쪽의 drwxrwxr-x 혹은 -rw-rw-r-- 같은 문자열을 확인 할 수 있다.
이것은 4 부분으로 나누어 볼 수 있다.

d / rwx / rwx /r-x
- / rw- / rw- / r--
1  /  2 /  3 /  4

1. d -디렉토리 여부(디렉토리일 경우(폴더일 경우) 'd', 파일일 경우'-')
2. rwx rw- 소유 사용자에 대한 read, write, execute 권한
3. rwx rw- 소유 그룹에 대한 read, write, execute 권한
4. r-x r-- 기타 사용자에 대한 read, write, execute 권한

  • 사용자

user는 파일의 소유자
기본적으로 파일을 만든 사람이 소유자가 되기에 user를 소유자라고 하기도 함

  • 그룹

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

  • 기타 사용자

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

유형rwx
d이 권한이 없으면 디렉토리 목록을 볼 수 없음이 권한이 없으면 해당 디렉토리에 파일을 추가할 수 없음디렉토리에 접근하는 권한, 이 권한이 없으면 rw권한이 모두 있어도 접근 불가능함
-이 권한이 없으면 파일을 열 수 없음이 권한이 없으면 파일을 수정할 수 없음이 권한이 있으면 실행파일, 없으면 문서파일임


drwxrwxr-x 이것을 해석해보자면 읽기,쓰기,실행권한이 사용자와 그룹에 있고 기타 사용자는 읽기,실행권한을 가지고 있는 폴더다 라는 뜻

권한의 변경

  • 파일에 적용된 사용 권한을 변경할 수 있다. chmod

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

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

chmod 이용하는 방식 2가지

  • Symbolic method : + - = 이용하기(추가, 배제, 할당)
  • Absolute form : 숫자를 통한 변경( r : 4 , w : 2 , x : 1 , - : 0 )



  • Symbolic method
  1. 대상선택 : 가장 먼저 변경하고 싶은 대상을 선택한다. 사용자 ( u ) / 그룹 ( g ) / 기타 ( o ) / 전부 ( a )

  2. 연산자 이용 : + 기존 권한에 새로운 권한 추가 / - 기존 권한 삭제 / = 새로운 권한 할당

  3. 권한선택 : 원하는 권한을 선택

예시 ) -rw-rw-r--

chmod a+x // => -rwxrwxr-x
chmod a-r // => --wx-wx--x
chmod u=r // => -r---wx--x
chmod u= // => -----wx--x
chmod u+rwx // => -rwx-wx--x

이런 형식으로 권한을 지정할 수 있다.

  • Absolute form

r : 4, w: 2, x : 1 으로 지정하면 경우의 수가 8가지가 생김

7 rwx
6 rw-
5 r-x
4 r--
3 -wx
2 -w-
1 --x
0 ---

chmod 747 filename => -rwxr--rwx
chmod 365 filename => --wxrw-r-x

환경변수

  • PC에 저장된 환경변수를 확인할 수 있다. export
  • PC에 저장된 환경변수를 불러올 수 있다. dotenv
  • Node.js에서 환경변수를 영구적용할 수 있다. .env
  • PC에 저장된 환경변수를 확인할 수 있다. export

터미널에 export 명령어를 작성하면 이런 결과를 받을 수 있다.

새로운 환경변수를 추가하려면 export urclass="is good" 이렇게 설정이 가능한데 등호 표시 앞뒤에는 공백이 없어야함

echo를 통해 환경변수의 값을 확인 할 수 있음


  • PC에 저장된 환경변수를 불러올 수 있다. dotenv

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

npm을 이용하여 dotenv 를 설치했다고 가정하고 index.js 에 console.log(process.env); 라고 작성한 뒤 노드를 실행시키면

명령어 export 로 확인한 내용과 동일한 내용을 객체로 출력

  • Node.js에서 환경변수를 영구적용할 수 있다. .env

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

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

vim .env
cat .env
codestates=Hard training
// 이후  index.js 를 수정
const dotenv = require("dotenv");
dotenv.config();
console.log(process.env.myname);

이후 node index.js 실행 시

이렇게 작성 할 수 있음

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

실제 제품(서비스)을 개발하는 과정에는 개발 환경(local 또는 development 등)과 테스트 서버의 환경(test), 그리고 실제 제품을 제공하는 환경(production)이 있다. 예를 들어 구글 API를 이용해 웹 애플리케이션을 만드는 경우, 개발 환경에서는 개발자 개인의 API 키를 이용할 수 있다. 그러나 제품을 서비스할 때에 개인 API 키를 사용하면, 일일 요청량을 초과하는 경우 제품이 정상적인 동작을 할 수 없고 이런 경우를 방지하기 위해 실제 제품에서는 기업용 API 키를 사용.
이처럼 개발 환경과 제품을 제공하는 환경에서 사용하는 API 키가 다른 경우, 환경변수를 이용해 환경을 구분하여 코드를 작성할 수 있다.

profile
열심히 공부하자

0개의 댓글