Linux - rwx 권한, su, sudo, 환경변수

Read, Write, Execute 권한

CLI로 폴더, 파일 등의 권한을 부여하거나 삭제할 수 있다.

각 파일별 권한은 ls -l 명령어로 확인이 가능하다.

첫 글자를 제외한 9개의 칸은 각 3칸씩 owner, group, other를 뜻하며, 첫 글자는 폴더일 경우 d, 아닐 경우는 -로 대체된다.

owner는 주로 user가 되고 프로젝트에서는 개개인마다 권한을 부여하기보다는 그룹에 포함시켜 그룹 권한을 주는 편이 더 낫다고 한다. other은 파일을 만들지 않은 모든 사람으로, global 권한 설정이라고도 볼 수 있다.

읽기, 쓰기, 실행 권한을 CLI로 설정하는 방법은 Symbolic method와 Absolute form으로, 두 가지가 있다.

  • Symbolic method 을 이용한 권한 설정법

- `chmod u+rwx urclass.js`
- `chmod go-rwx urclass.js`
  • Absolute form 권한 설정법
  • chmod 700 urclass.js

su, sudo

차이점

  • su (switch user)
    현재 계정을 로그아웃 하지 않고, 다른 계정으로 전환하는 명령어

    • su 계정명 (현재 계정의 환경변수 사용)
    • su - 계정명 (변경된 계정의 환경변수 사용)
  • option

    • c : 쉘을 실행하지 않고, 주어진 명령만을 수행합니다.
    • s : 지정된 셀로 로그인합니다.
    • l : 지정한 사용자의 환경 변수를 적용하여 로그인합니다.
  • 로그아웃 시
    exit 또는 logout

  • sudo(super user do)
    명령어를 root의 권한을 빌려 사용(일회성)

sudo 명령어
=> root 권한으로 명령어 실행

환경변수

  1. sudo (SuperUser DO) 명령어
    이 역시 SuperUser DO 에서 알 수 있듯이,
    슈퍼 유저로 무언가를 수행한다는 의미를 가지고 있는 명령어 입니다.
    현재 계정에서 단순히 root 의 권한 만을 빌리는 것입니다.

sudo 명령어 예제 (sudo [command])
sudo 명렁어를 실행하게 되면 root 권한으로 명령어를 실행하게 됩니다.
즉, 하나의 명령에 대하여 일시적으로 root 권한을 사용하는 것을 말합니다.
실행하기 전 현재 사용자의 비밀번호를 물어봅니다.

  1. su 와 sudo 의 차이점

    su는 계정을 전환하기 위한 것이고,
    sudo는 권한을 빌려 명령어를 실행하기 위한 것입니다.
    아래는 su 명령어와 관련하여 계정의 전환 확인과 이전 계정으로 돌아가는 명령어입니다.

  2. whoami

    현재 사용자를 확인하는 명령어

  3. logout / exit

    전환 전 계정으로 돌아가는 명령어

환경변수란?

운영체제가 굴러가는 데 필요한 변수들의 모임이다. 즉, 자바스크립트 내의 변수처럼 컴퓨터 내에 저장되어있는 전역변수라는 것이다.
API_KEY나 DB password처럼 네트워크를 통해 공개되면 안되는 민감한 정보들을 소스 내에서 선언하는게 아닌 컴퓨터 내에 설정을 하여 필요할 때마다 사용할 수 있게 저장하는 것.

export ⇒ 환경변수 확인하기, 환경변수 임시 적용

  • export 명령어로 환경변수 확인

  • 환경변수 추가 및 확인
	export myComputerAPI = 'ab020dkcmz'; => 임시적용

	echo $myComputerAPI

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

  • dotenv 설치
mkdir environment_variable
cd environment_variable
npm init //# 엔터 키를 여러번 입력해 init을 마칩니다.
npm i dotenv //# dotenv 모듈을 설치합니다.
  • process.env를 활용하여 환경변수 확인
console.log(process.env) 
=> export와 동일한 값 출력
  • .env 활용하여 node.js에서 환경변수 영구 적용
(.env)
nano .env
cat .env
myname = 'kimcook'

==============================
(index.js)
const dotenv = require('dotenv');
dotenv.config();
console.log(process.env.myname)
=> 'kimcook' 출력

Reference

좋은 웹페이지 즐겨찾기