Linux 심화

Jelkov Ahn·2021년 12월 13일
0

Linux

목록 보기
4/4
post-thumbnail
  • [Linux] 심화
    • 사용 권한
    • 환경변수

사용권한

Achivement Goals

  • 사용 권한과 소유자에 대해 이해하고, 사용 권한을 변경할 수 있다.
    • 파일의 소유자와 파일에 적용된 사용 권한을 확인하고 이해할 수 있다. ls -l
    • 파일에 적용된 사용 권한을 변경할 수 있다. chmod

폴더 파일 확인하기

  • 파일의 소유자와 파일에 적용된 사용 권한을 확인하고 이해할 수 있다. ls -l

  • 파일 helloworld.js는 -rw-r--r-- 출력 / "- = not directory"

  • 폴더 linux는 drwxr-xr-x 출력 / "d= directory"

  • r, read permission 읽기 권한

  • w, write permission 쓰기 권한

  • x, execute permission 실행 권한

  • 사용자 / 그룹 / 나머지에 대한 권한을 표시!

user, group, and other

  • user:
    user는 파일의 소유자입니다. 기본적으로 파일을 만든 사람이 소유자가 됩니다. 따라서 user를 소유자라고 하기도 합니다.

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

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

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

  • 파일에 적용된 사용 권한을 변경할 수 있다. chmod

(1) 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
hmod 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------

(2) Absolute form: 두 번째는 rwx를 3 bit로 해석하여, 숫자 3자리로 권한을 표기해서 변경.

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

관련 링크 : https://kb.iu.edu/d/abdb

(3) sudo와 su

sudo : 일반 사용자가 root의 권한을 빌려서 명령어를 실행할 때 활용할 수 있는 커맨드
su: 계정 전환, user를 root 권한으로 바꾸는 것 (보안에 위험하다)

(4) root admin user의 차이점

root: 해당 시스템 전체의 관리 권한을 가진 전지전능한 유저
admin: 일반 유저중 하나, root가 관리 권한을 줄 수 있다.
user: 일반계정(일반계정으로는 개인적인 일, admin으로는 컴퓨터에 관한일을 수행)

(5) chmod라는 이유로 권한설정을 해야 하는 이유 ?

보안 때문이다 !!
내가 만든 파일이나 디렉토리를 만약에 다른 사람이 마음대로 수정하거나 삭제를 했을때 문제가 발생할수 있다.

환경변수

Achivement Goals

  • PC에 저장하는 환경변수가 무엇인지 이해하고, 사용할 수 있다.
    • PC에 저장된 환경변수를 확인할 수 있다. export
    • PC에 저장된 환경변수를 불러올 수 있다. dotenv
    • Node.js에서 환경변수를 영구적용할 수 있다. .env

PC에 저장된 환경변수를 확인할 수 있다. export

export // 환경 변수 
export urclass="is good" //export 명령어로 환경변수를 설정합니다.
echo $urclass // is good  // echo 와 함께 환경변수를 입력하면, 환경변수의 값을 확인할 수 있습니다.

PC에 저장된 환경변수를 불러올 수 있다. dotenv

  • npm 모듈 dotenv를 사용하면, 자바스크립트에서 환경변수를 사용할 수 있습니다.
mkdir environment_variable
cd environment_variable
npm init # 엔터 키를 여러번 입력해 init을 마칩니다.
npm i dotenv # dotenv 모듈을 설치합니다.

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

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

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

nano . env//
car .env // myname = kimcoding

모듈 dotenv를 이용하면,
파일 .env에 저장한 환경변수를 조회할 수 있습니다.

index.js를 다음과 같이 수정하고, 저장합니다.

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

데이터베이스도 마찬가지로 개발, 테스트, 제품 환경으로 구분할 수 있습니다. 다음 그림은 각기 다른 환경에, 같은 변수 이름을 사용하여 데이터베이스를 구분한 예시입니다.

출처 :코드스테이츠

profile
끝까지 ... 가면 된다.

0개의 댓글