TIL 21.06.14

Jaemin Jung·2021년 6월 14일
0

Today I Learned

목록 보기
38/62
post-thumbnail

오늘한일

섹션3의 첫날이다.
첫날이라 그런지 쉬엄쉬엄 하라는 코드 스테이츠의 배려인가?
오늘은 학습하는 양도 적었고, 그리 어렵지는 않았다.
linux의 사용권한 조회와 설정, 환경 변수에 대해서 알게되었다.

Achievement goals

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

파일과 폴더의 사용권한

권한에는 세 가지 종류가 있다.

  • 읽기(read): 파일을 읽을 수 있는 권한
  • 쓰기(write): 파일을 수정하거나, 쓰거나, 지울 수 있는 권한
  • 실행(execute): 파일을 실행할 수 있는 권한

명령어 ls -l을 프롬프트에 입력하면 파일과 폴더의 권한을 확인 가능하다.
(linux는 폴더, helloworld.js는 파일)

표현의 첫 시작인 -d 는 각각 not directory와 directory를 나타내며,
이어지는 r, w, x는 각각 read permission, write permission, execute permission으로
읽기 권한, 쓰기 권한, 실행 권한을 말한다.
rwx가 세번 반복되는 이유는 순서대로 사용자, 그룹, 나머지에 대한 권한을 표시하기 때문이다.

helloworld.js 파일에 -rw-rw-r--를 해석하자면.
1번째 문자 -로 파일이란 것을 알 수 있고,
2-4번째 문자 rw-로 사용자가 읽기,쓰기가 가능한 것을 알 수 있고,
5-6번째 문자 rw-로 사용자가 속한 그룹이 읽기와 쓰기가 가능한 것을 알 수 있고,
8-10번째 문자 r--로 사용자와 그룹 외에 사용자는 읽기만이 가능한 것을 알 수 있다.

권한 변경

명령어 chmod는 폴더나 파일의 rwx권한을 변경할 수 있다.
이 명령어를 통해 권한을 변경하는 방식은 두가지가 있는데,

  • 첫 번째는 더하기(+), 빼기(-), 할당(=)과 액세서 유형을 표기해서 변경하는 Symbolic method
  • 두 번째는 rwx를 3 bit로 해석하여, 숫자 3자리로 권한을 표기해서 변경하는 Absolute form

Symbolic method

액세스 클래스의 u, g, o, a를 변경할 조건에 따라 조합하여 입력하고, 연산자와 액세스 타입을 순서대로 입력

Access classOperatorAccess Type
u (user)+ (add access)r (read)
g (group)- (remove access)w (write)
o (other)= (set exact access)x (execute)
a (all: u, g, and o)

chmod u+x helloworld.js를 입력하여 user 권한에 x를 추가해 모든 권한을 가지게 해주었다.
chmod u=rwx helloworld.js로도 대체 가능하다.

Absolute form

숫자 7까지 나타내는 3 bits의 합으로 표기하여 변경할 조건에 따라 user,group,other순으로 입력

  • Read(r) = 4
  • Write (w) = 2
  • Execute (x) = 1
numSumrwxPermission
74(r) + 2(w) + 1(x)rwxread, write and execute
64(r) + 2(w) + 0(-)rw-read and write
54(r) + 0(-) + 1(x)r-xread and execute
44(r) + 0(-) + 0(-)r--read only
30(-) + 2(w) + 1(x)-wxwrite and execute
20(-) + 2(w) + 0(-)-w-write only
10(-) + 0(-) + 1(x)--xexecute only
00(-) + 0(-) + 0(-)---none

chmod 744 helloworld.js명령어를 통해 user는 모든 권한, group,other는 읽기 권한만 주었다.

환경 변수

환경 변수는 운영체제의 시스템 자체에 설정한 전역 변수이다.
즉 컴퓨터마다 지정된 값이다.
웹개발에서는 API key, DB password와 같이 민감한 정보를 환경 변수에
저장하고 관리 및 보안을 한다.

Linux의 환경 변수를 확인하기 위해서는 명령어 export를 입력해 확인 가능하다.

//출력되는 환경변수중 일부만 가져온 것입니다.
declare -x USER="jaemin"
declare -x USERNAME="jaemin"

그리고 명령어 export는 새로운 환경변수를 추가할 수 있다.
이때 이퀄 사인 앞뒤에는 공백이 없어야한다.

export urclass="is good"

명령어 echo와 함께 환경변수를 입력하면 환경 변수의 값을 확인 가능하다.

echo $USER
//jaemin

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

export를 통해 환경변수를 저장하였을때 터미널에서 임시로 사용 가능하고 터미널창을 닫게되면 사라진다고 한다.
컴퓨터에서 ram에 잠시 저장한뒤 사라지는 데이터를 예로 들 수 있겠다.
환경변수를 ssd hdd에 저장하는것 처럼 영구적으로 적용할 수 있는 방법은 .env파일에 환경 변수를 저장하는것이다.
환경 변수는 자바스크립트를 이용해 파일에 저장할 수 있다.
node.js 에서는dotnev 모듈을 사용한다.

root 디렉토리에서 npm i dotenv 명령어로 모듈을 설치한 뒤, .env파일을 생성하고,
원하는 변수를 .env파일 안에서 이름=값의 형태로 저장한다.

다른 js 파일에서 모듈을 불러와 저장한 환경 변수를 조회할 수 있다.

// .env 파일
myname=kimcoding

...
// index.js 파일
const dotenv = require("dotenv");
dotenv.config();
console.log(process.env.myname);

참고사이트

https://www.fwantastic.com/2019/12/linux-permission.html
https://velog.io/@eensungkim/%ED%99%98%EA%B2%BD-%EB%B3%80%EC%88%98feat.-dotenv-TIL-70%EC%9D%BC%EC%B0%A8

profile
내가 보려고 쓰는 블로그

0개의 댓글