56. Linux 사용권한, 환경변수

홍인열·2021년 11월 8일
0

⭐️ 사용권한

✅ 폴더와 파일에는 해당하는 사용자에따라 권한이 다를 수 있다. ls -l 명령어를 통해 해당 폴더내의 폴더와 파일의 권한을 확인 할 수 있다.

✅ 첫글자는 -는 파일이 아님을, d는 파일(Directory)임을 의미한다.

✅ 사용자는 3가지로 User, Group, Other로 구분 할 수 있다.
❗️Other은 파일을 만들지 않은 모든 user를 의미하기대문에 해당권한 설정은 global권한 설정으로 볼 수 있다

✅ 권한도 3가지로 Read(r), Wright(w), Execute(x)가 있다.

chmod: 권한 변경 명령어 changemode

chmod : OS에 로그인한 사용자와, 폴더나 파일의 소유자가 같을 경우 사용하는 명령어.
sudo : OS에 로그인한 사용자와, 폴더나 파일의 소유자가 다를 경우 관리지 권한을 획득하는 명령어! 이를 통해 폴더나 파일의 권한 변경 가능.

chmod 를 이용한 권한 변경 방식

➊ Symbolic method
Access class : u (user), g (group), o (other), a (all)
Operator : + (add), - (remove), = (set exact)
Access Type : r (read), w (write), x (execute)

사용 예시
$ chmod g-r [filename] // filename의 group의 권한에 read를 제거한다.
$ chmod a-rx [filename] // filename의 모든 사용자 권한에서 read와 exacute를 제거한다.
$ chmod u+rwx [filename] // filename의 user 권한에 read, write, execute를 추가한다.
$ chmod o=rx [filename] // filename의 other 권한은 read, excute로 재설정한다.
$ chmod o= [filename] // = 뒤에 공백일 경우 filename의 other의 모든 권한을 없애는 의미이다.

➋ Absolute form
✅ 해당하는 권한을 숫자(0~7)로 표기하여여 권한을 변경하는 형태.
✅ 각 권한은 Read(4), Write(2), Execute(1)로, 괄호안의 숫자값을 갖으며 권한에 해당하는 숫자의 합을통해 어떤권한 갖는지 정할 수 있다.
예) 4는 read 권한만, 5(4+1)은 read와 execute권한을, 7(4+2+1)은 read, write, execute 권한을 갖는다.
✅ 숫자는 usre, group, other권한 순서로 입력한다.

🤔 괄호안의 숫자값은 어떻게 정해진걸까?
이진수를 이용해서 표기해보자! 먼저 사용권한은 권한 있음, 없음 두가지로 boolean값으로 변환이 가능하다. 권한있음은 1, 없음은 0이고, 사용자 순서는 user, group, other 이다.
이를 이진수로 나타낼수 있고 다시 이를 십진수로 변환시키면 위의 숫자들을 구할 수 있다.

r w x십진수의미
0 0 11- - x
0 1 02- w -
0 1 13- w x
1 0 04r - -
1 0 15r - x
1 1 06r w -
1 1 17r w x
사용 예시
$ chmod 261 [filename] // user 권한 -w-, group 권한 rw-, other 권한 --x 

⭐️ 환경변수

Linux 기반 운영체제의 PC에서는 시스템 자체에 전역변수를 설정할 수 있다. 이렇게 시스템에 설정한 전역변수를 환경변수라고 한다.
언제 사용하는가? 비밀번호나 API key같이 공개할 수 없는 정보가 코드에 포함될 경우, 네트워크를 통해 이런정보들이 공개될 수 있다. 이런일을 방지하기위해 PC내에 변수로 저장해두고 사용한다.

export

export 명령어를 통해 환경변수를 확인하고, 임시 환경변수를 적용 할 수 있다.

환경변수 확인

환경변수 추가

echo 명령어를 통한 환경변수 확인

dotenv

npm module인 dotenv를 사용하면 자바스크립트에서 환경변수를 사용할 수 있다.
$ npm i dotenv를 입력해 모듈을 설치한다.

✅ Javascrit 파일 내에서 node.js의 내장객체 process.env 를 사용하면 객체형태로 환경변수를 불러올 수 있다.
.env라는 파일을 만들어서 환경변수를 추가할 수 있다. 추가된 환경변수를 process.env에 적용하려면 아래와 같은 작업이 필요하다.

📌 환경변수를 이용하여 민감한 API key나, 비밀번호들을 저장하고 관리할 수 있다.
📌 다른PC나 여러 .env 파일에서, 같은 변수에 다른 값을 할 당하여 사용할 수 있다.

profile
함께 일하고싶은 개발자

0개의 댓글