TIL(43)Linux 심화

codedot·2021년 10월 5일
0
post-thumbnail

Linux ✍🏻

Read, Write, Execute 권한 📌

-rw-r—r—

d : 폴더

-: 파일

r (read permission) : 읽기 권한

w (write permission) : 쓰기 권한

x (execute permission) : 실행 권한

3번에 걸쳐 나타나는 이유는 사용자와 그룹, 나머지에 대한 권한을 표시하기 때문이다.

ex) rw-r—r— : 소유자는 읽기와 쓰기가 가능하고, 다른 사용자 구릅은 읽기만 가능하다는 의미

파일종류문자
일반파일-
디렉토리d
캐릭터 장치 파일c
블록 장치 파일b
소캣s
파이프P
심볼릭 링크

user, group, and other 📌

  • user : 파일의 소유자, 파일을 만든 사람이 소유자가 된다. 즉 user를 소유자라고 한다

  • group : 여러가지 user가 포함될 수 있다. 그룹에 속한 모든 user는 파일에 대한 동일한 group 엑세스 권한을 갖는다.

    많은 사람이 파일 액세스해야 하는 프로젝트가 있다면, user에게 일일이 권한을 할당하는 대신 모든 user를 group에 추가하고, 파일에 group 권한을 할당 한다.

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

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

내가 만든 파일이나 디렉토리를 다른 사람이 마음대로 수정하거나 삭제했을 때 문제가 발생할 수 있기 때문에 권한을 부여하는 것.

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

명령어 chmod 로 권한을 변경하는 방식은 두 가지가 있다.

  • 첫 번째는 더하기(+), 빼기(`), 할당(=`)과 액세서 유형을 표기해서 변경하는 Symbolic method.
  • 두 번째는 rwx를 3 bit로 해석하여, 숫자 3자리로 권한을 표기해서 변경하는 Absolute form

명령어 chmod 뒤에 변경할 권한을 입력한다. 액세스 클래스의 u, g, o, a를 변경할 조건에 따라 조합하여 입력하고, 연산자와 액세스 타입을 순서대로 입력한다. 다음은 명령어 chmod 를 입력한 예시와 결과.

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

환경변수 📌

: Linux 기반 운영체제 PC 시스템에 설정한 전역 변수

공개할 수 없는 정보가 코드에 포함될 경우 PC 전역변수에 저장 한다

  • 공개할 수 없는 정보가 코드에 포함될 경우(API Key) 네트워크를 통해 API Key가 공개될 수 있다.
  • API Key를 PC에서 사용하는 변수에 할당하고 사용할 수 있다.
  • js에서는 만약 A 파일에 전역변수로 선언한다 하더라도 B 파일에서는 접근할 수 없다.
  • 하지만 A 파일에 export하게 된다면 B파일에서 A파일의 전역변수에 접급이 가능하다.

환경변수 사용 이유?

  • 환경변수를 이용해 API key, DB password와 같이 민감한 정보를 저장하고 관리할 수 있다.

  • 환경변수를 이용해 다른 PC 또는 여러 .env 파일에서 같은 변수 이름에 다른 값을 할당할 수 있다.

  • 실제 제품(서비스)을 개발하는 과정에는 여러 환경이 있다.

  • 개발 환경(local 또는 development 등)테스트 서버의 환경(test)실제 제품을 제공하는 환경(production)

  • 환경변수를 이용하는 이유는 환경을 구분하여 코드를 작성하기 위해서다.

환경변수 사용 예

API를 이용해 웹 애플리케이션을 만드는 경우

구글 API를 이용해 웹 애플리케이션을 만드는 경우를 예로 들어보자.개발 환경에서는 개발자 개인의 API 키를 이용할 수 있다.그러나 제품을 서비스할 때에 개인 API 키를 사용하면 일일 요청량을 초과하는 경우 제품이 정상적인 동작을 할 수 없기 때문에, 이런 경우를 방지하기 위해 실제 제품에서는 기업용 API 키를 사용한다.

이처럼 개발 환경과 제품을 제공하는 환경에서 사용하는 API 키가 다른 경우,환경변수를 이용해 환경을 구분하여 코드를 작성할 수 있다.

각기 다른 환경에, 같은 변수 이름을 사용하여 데이터베이스를 구분한 예

데이터베이스도 마찬가지로 개발, 테스트, 제품 환경으로 구분할 수 있다.하나의 변수 이름을 환경에 따라 다르게 설정할 수 있다.

profile
Loding...

0개의 댓글