- Linux에서 사용하는 폴더와 파일에는 권한이 있습니다. 그리고 그 권한은 읽기(Read), 쓰기(Write), 실행(Execute)으로 나뉩니다.
확인방법
1. 명령어
ls -l
- 맨앞에 d가붙으면 폴더/-이면 파일
- r, w, x는 각각 read permission, write permission, execute permission으로 읽기 권한, 쓰기 권한, 실행 권한을 나타냅니다.
- 읽기 권한(r): 파일읽기
파일에서 읽기 권한 => 파일을 복사 및 읽기가 가능
디렉토리에서 읽기 권한 => 디렉토리 읽기(ls)명령어 실행 가능- 실행 권한(x)
디렉토리에서 실행권한=> 접근권한의 여부를 뜻한다 cd명령어 사용가능- 3번에 걸쳐 나타나는 이유는 사용자와 그룹, 나머지에 대한 권한을 표시하기 때문입니다
user
user는 파일의 소유자입니다. 기본적으로 파일을 만든 사람이 소유자가 됩니다. 따라서 user를 소유자라고 하기도 합니다.group
group에는 여러 user가 포함될 수 있습니다. 그룹에 속한 모든 user는 파일에 대한 동일한 group 액세스 권한을 갖습니다. 많은 사람이 파일에 액세스해야 하는 프로젝트가 있다고 가정합니다. 각 user에게 일일이 권한을 할당하는 대신에 모든 user를 group에 추가하고, 파일에 group 권한을 할당할 수 있습니다.other
파일에 대한 액세스 권한이 있는 다른 user입니다. 파일을 만들지 않은 다른 모든 user를 의미합니다. 따라서 other 권한을 설정하면, 해당 권한을 global 권한 설정이라고 볼 수도 있습니다.
변경방법
- OS에 로그인한 사용자와, 폴더나 파일의 소유자가 같을 경우에 명령어 chmod 로 폴더나 파일의 권한을 변경할 수 있습니다
- OS에 로그인한 사용자와, 폴더나 파일의 소유자가 다를 경우에는 관리자 권한을 획득하는 명령어 sudo 를 이용해 폴더나 파일의 권한을 변경할 수 있습니다.
1. Symbolic method 변경방식
2. Absolute form 변경방식
환경변수란?
- 운영체제가 굴러가는데 필요한 동적인값(변수)
- 환경변수를 이용해 API key, DB password와 같이 민감한 정보를 저장하고 관리할 수 있습니다. 그뿐만 아니라 서로 다른 PC 또는 여러 .env 파일에서, 같은 변수 이름에 다른 값을 할당할 수 있습니다.
export: 환경변수 접근 && 환경변수 임시 적용**
- Linux 기반의 운영체제의 PC에는 시스템 자체에 전역변수를 설정할 수 있습니다. 그리고 시스템에 설정한 전역변수를 환경변수라고 합니다.
- Linux 운영체제에는 이미 많은 환경변수가 설정되어 있습니다. 터미널에 명령어 export 를 입력해, 기록된 환경변수를 확인할 수 있습니다.
- 명령어 export 를 이용하면, 새로운 환경변수를 추가할 수 있습니다
- 명령어 export 로 적용한 환경변수는 현재 사용 중인 터미널에서만 임시로 사용이 가능합니다
- 명령어 echo 와 함께 환경변수를 입력하면, 환경변수의 값을 확인할 수 있습니다.
dotenv: 자바스크립트에서 환경변수에 접근
1.개요
npm 모듈 dotenv
를 사용하면, 자바스크립트에서 환경변수를 사용할 수 있습니다
- npm 모듈을 설치하고 사용하기 위해서, 새로운 폴더를 만들고
npm init
을 입력합니다.
(packgejson 생성)npm install dotenv
를 입력해 모듈을 설치합니다.
이때 생성된 폴더는 설치할 모듈과 이름이 같아서는 안됩니다.- 설치한 dotenv를 이용해 환경변수에 접근할 수 있습니다
process.env
=>export로 확인한 내용과 동일한 내용을 객체로 출력
.env 파일
을 생성하면 환경변수를 셋팅할수있다(export와 달리 영구적용)- .env파일을 생성한후
- .env 파일에 사용하고자 하는 환경변수를 입력한뒤 저장 후 사용
2.실습
아래서 실습한 방법은 CommonJs에서 dotenv를 사용하는방법이다
commonJs와 ES6의 차이점 여기 참고
npm init
=>npm install dotenv
.env파일 생성
=>사용할변수 생성
사용하기
const dotenv= require('dotenv') //모듈불러온후 상수 dotenv에 할당 dotenc.config() //꼭해줘야함