리눅스 사용권한 & 환경변수
Linux
사용 권한
사용 권환 확인 방법(Mac OS): 터미널에서 ls -l
- 맨 앞에 d가 있으면 폴더, -면 파일
- 두번째 자리부터 세자리씩
user
/group
/other
의 권환 나타냄 - user
- 파일의 소유자. 기본적으로 파일을 만든 사람
- group
- 여러 user가 포함될 수 있다. 그룹에 속한 모든 user는 파일에 대한 동일한 group 엑세스 권한 가짐
- other
- 파일에 대한 접근 권한이 있는 다른 user. Other 권한을 설정하면, global 권한 설정으로 볼 수 있음
권한 변경 방법
chmod
명령어로 파일, 폴더의 읽기 / 쓰기 / 실행 권한 변경. OS에 로그인한 사용자와, 폴더나 파일의 소유자가 다를 경우에는 관리자 권한을 획득하는 명령어 sudo
를 이용해 폴더나 파일의 권한을 변경할 수 있음
Symbolic method
더하기(+), 빼기(-), 할당(=)과 엑세스 유형을 표기해서 변경
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) | - | - |
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------
Absolute form
rwx를 3 bit로 해석하여, 숫자 3자리로 권한을 표기해서 변경
Permission | Number |
---|---|
Read (r) | 4 |
Write (w) | 2 |
Execute (x) | 1 |
Absolute form 사용 예시
# | Sum | rwx | Permission |
---|---|---|---|
7 | 4(r) + 2(w) + 1(x) | rwx | read, write, execute |
6 | 4(r) + 2(w) + 0(-) | rw- | read, write |
5 | 4(r) + 0(-) + 1(x) | r-x | read, execute |
4 | 4(r) + 0(-) + 0(-) | r– | read only |
3 | 0(-) + 2(w) + 1(x) | -wx | write, execute |
2 | 0(-) + 2(w) + 0(-) | -w- | write only |
1 | 0(-) + 0(-) + 1(x) | –x | execute only |
0 | 0(-) + 0(-) + 0(-) | — | none |
user는 rwx
group과 other은 r--
로 권한 변경
# u=rwx (4 + 2 + 1 = 7), go=r (4 + 0 + 0 = 4)
chmod 744 helloworld.js # -rwxr--r--
환경변수
Linux 기반의 운영체제의 PC에는 시스템 자체에 전역변수를 설정할 수 있다. 그리고 시스템에 설정한 전역변수를 환경변수라고 한다. export
를 이용해 환경변수를 설정할 수 있다.
환경변수를 이용해 민감한 정보를 관리할 수 있다. 또한 서로 다른 PC 또는 여러 .env 파일에서 같은 변수 이름에 다른 값 할당할 수 있다.
환경변수 추가
export
명령어로 새로운 환경변수 추가.
# 새로운 환경변수 urclass="is good" 설정. 이때 등호 표시 앞뒤는 반드시 공백이 없어야 함
export urclass="is good"
echo
명령어로 환경변수 값 확인. $를 입력하여 변수라는 뜻을 터미널에 전달
dotenv
- npm module
dotenv
로 자바스크립트에서 환경변수 사용. (npm i dotenv) - Node.js의 내장객체
process.env
로export
와 동일한 내용 확인할 수 있다.
Node.js에 환경변수 영구 적용
export
명령어로 적용한 환경변수는 현재 터미널에서만 임시로 사용 가능. Linux 운영체제에 적용하기 위해 Node.js는 .env
파일을 만들어 저장하는 방법 사용
-
.env 파일 생성하고, 환경변수 입력 뒤 저장
# 파일 생성 nono .env # 환경변수 입력, 저장 myname=hello
-
해당 파일 수정
const dotenv = require('dotenv'); dotenv.config(); console.log(process.env.myname);
-
파일 실행하여 확인
node 파일명.js