사용권한 + 환경변수
✍ 사용권한
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 권한을 숫자로 표기하여 나타내는 방법이다.
permission | number |
---|---|
r | 4 |
w | 2 |
x | 1 |
chmod 744 index.js // -rwxr--r--
chomod 715 index.js // -rwx--xr-x
🔒 다른 사용자와 폴더,파일을 공유할 때 발생하는 일반적인 문제
공유하려는 폴더의 상위 디렉토리도 동일한 권한을 설정해줘야 한다.
엑세스타입 | 기능 |
---|---|
r | ll 를 통해 폴더를 볼 수 있다 |
w | 파일을 추가/제거 할 수 있다. |
x | cd 를 통해 디렉토리로 이동할 수 있다. |
/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
Author And Source
이 문제에 관하여(사용권한 + 환경변수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@boo1996/사용권한-환경변수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)