사용권한 + 환경변수

6960 단어 TILBackendBackend

✍ 사용권한

Linux 기반 OS에서는 우리가 사용하는 폴더와 파일에 권한이 있다. 그리고 그 권한은 읽기, 쓰기, 실행으로 나뉜다.
이 권한을 어떻게 부여하는지 그 방법을 살펴보자.

🔑 읽기,쓰기,실행 권한

폴더,파일 확인

먼저 폴더와 파일을 생성해서 ls-l 을 클릭해보면 다음과 같은 결과를 얻을 수 있다.

mkdir folder
cd folder
nano index.js
ls-l
total 2
-rw-r--r-- 1 username staff 29 4 12 17:44 index.js
drwxr-xr-x 2 username staff 64 4 12 17:44 folder

가장 왼쪽 표현에 대해 한번 살펴보면 다음과 같다.

d는 폴더임을 나타내는 문자고,
d가 없다면 파일이라고 생각하면 된다.

user, group and other

유저는 파일의 소유자 즉 파일을 만든 사람을 지칭한다.

그룹은 프로젝트를 진행할 때 같은 파일에 접근해야 하는 경우 사용한다. 필요한 유저를 그룹으로 추가하고 파일에 접근권한을 부여할 수 있다.

유저와 그룹을 제외한 파일을 만들지 않은 다른 모든 user를 의미힌다.

chmod

폴더나 파일에 읽기,쓰기,실행 권한을 변경해주는 명령어다.
만약 소유자가 다른 유저가 변경하려는 경우 sudo 명령어를 이용해 권한을 변경해야 한다.

sudo는 일반 사용자가 root의 권한을 빌려서 명령어를 실행할 수 있는 커맨드다.

  • su는 유저를 root 권한으로 바꾸는 것이다. 따라서 다음번에 sudo를 사용하지 않아도 된다.
    만약 su를 쓰면 모든 권한을 허용하기 때문에 보안에 취약해 줄 수 있다. 필요한 부분에만 sudo를 쓰는게 안전할 수 있다.

다시 chmod로 돌아가서 권한을 변경하는 방법은 상징적, 절대적 방법으로 나뉜다.

상징적 방법

엑세스 클래스, 연산자, 엑세스 타입으로 구분해서 작성한다.

엑세스타입연산자엑세스타입
u,g,o,a(혹은 공백)+,-,=r,w,x
chmod go+wx index.js //소유자를 제외한 나머지에 쓰기,실행 권한 부여
chmod a+wx index.js // 모두에게 쓰기,실행 권한 부여
chmod u-r index.js // 소유자에게 읽기 권한 부여
chmod a= index.js // 모두의 권한 제거
chmod a=rw index.js //모두에게 rw 권한만 부여

절대적 방법

rwx 권한을 숫자로 표기하여 나타내는 방법이다.

permissionnumber
r4
w2
x1
chmod 744 index.js // -rwxr--r--
chomod 715 index.js // -rwx--xr-x

🔒 다른 사용자와 폴더,파일을 공유할 때 발생하는 일반적인 문제

공유하려는 폴더의 상위 디렉토리도 동일한 권한을 설정해줘야 한다.

엑세스타입기능
rll 를 통해 폴더를 볼 수 있다
w파일을 추가/제거 할 수 있다.
xcd 를 통해 디렉토리로 이동할 수 있다.
/N/u/username/carbonate/scripts
//script 폴더를 공유하고 싶다면 상위 디렉토리도 모조리 공유해야 한다.
chmod +rx username/
chmod +rx username/carbonate

✍ 환경변수

Linux 기반 운영체제의 PC 시스템에 설정한 전역변수를 환경변수라 한다.
CLI창에 export 을 입력하며 기록된 환경변수를 확인할 수 있다.

새로운 환경변수 추가

export urclass="is good"

환경변수

echo $urlcass

dotenv : JS에 환경변수 사용하기

npm 모듈 dotenv, 자바스크립트에서 환경변수를 사용할 수 있다.

npm init
const dotenv = require('dotenv')
console.log(process.env.urlcass) //is good

👀 sprint 복기

24시간 돌리기 위해선 가상컴퓨팅(AWS)를 사용해야 하며
그때 우분투 리눅스가 필요함

리눅스 CLI를 잘 다루면
설치,배포 자동화가 가능하다고 한다.

여러개의 컴퓨터에서 동일하게 앱이 운영되는 경우 (분산컴퓨팅) 가상컴퓨팅을 통해 자동화를 할 수 있다.
앱 로그를 잘 기록해두면 배포 환경에서 문제를 찾아낼 수 있다. (에러가 났을 때 터미널에서 확인하고 구글링으로 해결)

운영체제(윈도우,맥,리눅스)
리눅스 : 유닉스 기반 오픈소스 이걸로 맥,우분투를 만들었다.
사용자 인터페이스 제공
메모리에 프로그램 적재(응용 프로그램을 띄워주는 역할)
여러 하드웨어들의 원활한 동작 제어
디스크에 정보를 저장하고 검색하는 방식을 관리

CLI (커맨드라인인터페이스)
글로 쓴 명렁어를 컴퓨터에 전달하는 것 : 터미널
터미널 위에 띄우는 프로그램(서비스와 기능을 제공) : 셸

사용권한 변경 메소드 :changemethod = chmod
환경변수 : 파이썬 할 때 모르면 삽질함.

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

chmod로 권한 설정하는 이유는 내가 만든 폴더,파일을 다른사람이 맘대로 수정할 수 있으면 안되기 때문에
권한을 부여하는 것이다.

만화로 공부하는 사이트 : https://wizardzines.com/comics/permissions/

리눅스를 잘해야지 서버 배포를 잘 할 수 있다.

.env 는 비밀로 관리해야 하기 떄문에 api키값과 같아서 스프린트에서는 예시로만 배포하고 실제값은 gitignore에 저장되어 있다.

프로세스 관리
프로세스 : 실행중인 프로그램 (program in execution)
프로그램 : 어떤 작업을 하기 위해 실행할 수 있는 파일 또는 프로그램

프로세스 관리 : ps, jobs, fg, kill

좋은 웹페이지 즐겨찾기