섹션3의 첫날이다.
첫날이라 그런지 쉬엄쉬엄 하라는 코드 스테이츠의 배려인가?
오늘은 학습하는 양도 적었고, 그리 어렵지는 않았다.
linux의 사용권한 조회와 설정, 환경 변수에 대해서 알게되었다.
권한에는 세 가지 종류가 있다.
명령어 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권한을 변경할 수 있다.
이 명령어를 통해 권한을 변경하는 방식은 두가지가 있는데,
액세스 클래스의 u, g, o, a를 변경할 조건에 따라 조합하여 입력하고, 연산자와 액세스 타입을 순서대로 입력
Access class | Operator | Access 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
로도 대체 가능하다.
숫자 7까지 나타내는 3 bits의 합으로 표기하여 변경할 조건에 따라 user,group,other순으로 입력
num | Sum | rwx | Permission |
---|---|---|---|
7 | 4(r) + 2(w) + 1(x) | rwx | read, write and execute |
6 | 4(r) + 2(w) + 0(-) | rw- | read and write |
5 | 4(r) + 0(-) + 1(x) | r-x | read and execute |
4 | 4(r) + 0(-) + 0(-) | r-- | read only |
3 | 0(-) + 2(w) + 1(x) | -wx | write and execute |
2 | 0(-) + 2(w) + 0(-) | -w- | write only |
1 | 0(-) + 0(-) + 1(x) | --x | execute only |
0 | 0(-) + 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