50일차 Linux

2021. 10. 5. 23:55
반응형

2021. 10. 05 화요일

1. Today's Key Points!🔑

  • 사용 권한
  • 환경변수

2. 정리해보자!🧹

사용 권한? Linux에서 사용하는 폴더와 파일에는 권한이 있다. 그리고 그 권한은 읽기(Read), 쓰기(Write), 실행(Execute)로 나뉜다.

읽기, 쓰기, 실행 권한이 무엇을 뜻하는지, 어떻게 변경할 수 있는지를 배워보았다.

사용 권한을 보고 싶다면 ls -l을 터미널에 입력하면 된다.

d는 directory를 나타낸다. d가 있으면 폴더, d자리에 -가 있으면 파일이라는 뜻이다.

그리고 rwx가 세개씩 나뉘어서 읽기권한, 쓰기권한, 실행권한을 나타낸다.

만약 -rw-r--r--라고 되어있으면, owner는 읽기권한, 쓰기권한이 있고, group, other는 읽기 권한만 있는 파일이라는 뜻이다.

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

그럼 어떻게 권한을 변경할 수 있는가?

명령어 chmod로 폴더나 파일의 읽기, 쓰기, 실행 권한을 변경할 수 있다. OS에 로그인한 사용자와, 폴더나 파일의 소유자가 같은 경우에는 명령어 chmod로 폴더나 파일의 권한을 바꿀 수 있다.

명령어 sudo로도 권한을 변경할 수 있는데, sudo의 경우에는 일반 사용자가 root 권한(관리자 권한)을 빌려서 명령어를 실행할 때 활용할 수 있는 커맨드이다.

su라는 명령어도 있는데 이것은 계정을 전환해주는 명령어 이다.

명령어 chmod로 권한을 변경하는 방식은 두 가지가 있다.

  • 첫 번째는 더하기( + ), 빼기( - ), 할당( = )과 엑세서 유형을 표기해서 변경하는 Symbolic method이다.

Symbolic method

chmod g-r filename # removes read permission from group
chmod g+r filename # adds read permission to group
chmod g-w filename # removes write permission from group
chmod g+w filename # adds write permission to group
chmod g-x filename # removes execute permission from group
chmod g+x filename # adds execute permission to group
chmod o-r filename # removes read permission from other
chmod o+r filename # adds read permission to other
chmod o-w filename # removes write permission from other
chmod o+w filename # adds write permission to other
chmod o-x filename # removes execute permission from other
chmod o+x filename # adds execute permission to other
chmod u+x filename # adds execute permission to user

chmod a=rw helloworld.js # -rw-rw-rw-
chmod u= helloworld.js # ----rw-rw-
chmod a+rx helloworld.js # -r-xrwxrwx
chmod go-wx helloworld.js # -r-xr--r--
chmod a= helloworld.js # ----------
chmod u+rwx helloworld.js # -rwx------
  • 두 번째는 rwx를 3 bit로 해석해서, 숫자 3자리로 권한을 표기해서 변경하는 Absolute form이다. 이진법으로 계산(?)해서 사용자 권한을 나타낸다.

# u=rwx (4 + 2 + 1 = 7), go=r (4 + 0 + 0 = 4)
chmod 744 helloworld.js # -rwxr--r--

chmod 명령어로 권한 설정을 해 주어야 하는 이유? 내가 만든 파일이나 디렉토리를 다른 사람이 마음대로 수정하거나 삭제했을 때 문제가 발생할 수 있기 때문에 권한 부여를 해주어야 한다. 시스템 해킹과도 관련이 있다.

 

환경변수? Linux 기반의 운영체제의 PC에는 시스템 자체에 전역변수를 설정할 수 있다. 그리고 시스템에 설정한 전역변수를 환경변수하고 한다. export를 이용해서 환경변수를 설정할 수 있다.

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

명령어 export 를 이용해서 새로운 환경변수를 추가할 수 있다. export urclass='is good'이라고 입력해주면 urclass라는 변수가 생기고 그 값은 'is good'이 된다. 그런데 이 때 등호 표시 앞뒤에는 반드시 공백이 없어야 한다.

 

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

npm 모듈 dotenv를 사용하면, 자바스크립트에서 환경변수를 사용할 수 있다. npm i dotenv로 모듈을 설치해주어야 사용할 수 있다.

index.js파일을 만들고 index.js 파일에 아래와 같이 작성해주고

console.log(process.env);

터미널에서 node index.js를 실행시켜주면 export로 확인한 내용과 동일한 환경변수에 대한 내용을 객체로 출력한다.

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

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

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

myname=kimcoding

그리고 index.js 파일을 다음과 같이 수정하고 저장한다.

const dotenv = require('dotenv');
dotenv.config();
console.log(process.env.myname);

터미널에 node index.js를 입력하면 아래와 같은 결과가 나온다.

API key와 같이 공개할 수 없는 정보가 코드에 포함될 경우, 네트워크를 통해서 API key가 공개될 수 있다. 이런 일을 방지하기 위해서는, API key를 PC에 저장해두고 사용해야 한다. 이 때 API key나 민감한 정보를 환경변수에 할당해서 이러한 정보를 저장하고 관리할 수 있다.

반응형
LIST

BELATED ARTICLES

more