본문 바로가기
개발 공부/네트워크 기초

사용권한과 환경변수

by 크롱이크 2021. 7. 19.

사용권한

권한 정보 확인

 

터미널에 ls -l 을 입력하면 다음과 같이 나오게 된다.

ls -l

1. 첫 글자는 - 또는 d 이다. d는 폴더, -는 파일이다.
2. 첫글자 뒤의 3글자씩 owner, group, other의 정보이다.
3. 
r, w, x는 각각 read permission, write permission, execute permission으로 읽기 권한, 쓰기 권한, 실행 권한을 나타낸다.
4. 맨뒤에는 파일이나 폴더 이름이 온다.
5. holloworld.js를 보면 owner의 권한은 rw이므로, 읽고 수정하는게 가능하다. group과 other는 읽기만 가능하다.
6. 그렇다면 linux라는 폴더는?

user

user는 파일의 소유자이다. 기본적으로 파일을 만든 사람이 소유자가 된다. 따라서 user를 소유자라고 하기도 한다.

group

group에는 여러 user가 포함될 수 있습니다. 그룹에 속한 모든 user는 파일에 대한 동일한 group 액세스 권한을 갖는다. 많은 사람이 파일에 액세스해야 하는 프로젝트가 있다고 가정한다. 각 user에게 일일이 권한을 할당하는 대신에 모든 user를 group에 추가하고, 파일에 group 권한을 할당할 수 있다.

other

파일에 대한 액세스 권한이 있는 다른 user이다. 파일을 만들지 않은 다른 모든 user를 의미한다. 따라서 other 권한을 설정하면, 해당 권한을 global 권한 설정이라고 볼 수도 있다.

 

chmod: 권한을 변경하는 명령어

명령어 chmod 로 폴더나 파일의 읽기, 쓰기, 실행 권한을 변경할 수 있다.

1. OS에 로그인한 사용자와, 폴더나 파일의 소유자가 같을 경우에 명령어 chmod 로 폴더나 파일의 권한을 변경할 수 있다.

2.만약 OS에 로그인한 사용자와, 폴더나 파일의 소유자가 다를 경우에는 관리자 권한을 획득하는 명령어 sudo 를 이용해 폴더나 파일의 권한을 변경할 수 있다.

 

두가지 방법이 있다.

 

첫번째 방법: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------

 

 

두번째 방법:Absolute form

rwx를 3 bit로 해석하여, 숫자 3자리로 권한을 표기해서 변경한다.

숫자 7까지 나타내는 3 bits의 합으로 표기한다.

 

실제예시

만약, user는 rwx 를, group과 other은 r-- 로 권한을 변경하려고 한다면,

위 표에 나와있는 숫자의 합을 user, group, other 순으로 입력하여 사용한다.

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

 

 

환경변수

-운영 체제가 참조하는 변수

환경변수로 어떠한 파일을 등록한다면 현재 사용자의 위치가 그 파일이 위치한 디렉토리가 아니더라도 바로 사용할 수 있다.

 

export

Linux 운영체제는 이미 많은 환경변수가 설정되어 있다.

터미널에 export 명령어를 입력하면 기록된 환경변수를 확인할 수 있다.

 

또한 새로운 환경변수를 추가할 수도 있다.

echo 와 환경변수를 함께 입력하면 값을 확인할 수 있다.

export jeyoon="is good"

 

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

npm 모듈 dotenv를 사용하면, 자바스크립트에서 환경변수를 사용할 수 있다. 다음 명령어를 입력해 폴더를 만들고 모듈을 설치할 수 있다.

mkdir environment_variable
cd environment_variable
npm init
npm i dotenv

설치한 dotenv를 이용해 환경변수에 접근할 수 있다. 새로운 파일 index.js를 생성하고, process.env 를 출력한다. Node.js의 내장 객체 process.env를 이용하면, 명령어 export 로 확인한 내용과 동일한 내용을 객체로 출력한다.

 

process.env 는 Node.js 환경에서 조회할 수 있다.

dotenv는 이어지는 콘텐츠 .env 파일를 환경변수로 사용할 수 있게 돕는다.

 

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

명령어 export 로 적용한 환경변수는 현재 사용 중인 터미널에서만 임시로 사용이 가능하다.

환경변수를 Linux 운영체제에 저장하는 방법은 여러가지가 있지만,

Node.js에서는 파일 .env를 만들어 저장하는 방법을 사용한다.

 

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

다음과 같이 4-6번째 줄을 수정하고 저장하면 다음과 같은 결과를 얻을수 있다.

반응형

댓글