리눅스는 CLI 로 환경변수를 설정할 수 있습니다. 다음의 명령어을 입력해서 환경변수 확인 가능
$env
몇가지 중요한 환경 변수들만 설명하자면
export 환경 변수를 임시로 적용하기
명령어 export 를 이용하면, 새로운 환경변수를 추가할 수 있다.
❗️새로운 환경 변수를 설정할때 등호 표시 앞뒤에는 반드시 공백이 없어야 한다.
export urclass="is good"
잘 적용됬는지 확인하려면 echo $urclass 입력하면 "is good"이 화면에 출력되는걸 볼 수 있다.
export 명령으로 설정해놓은 환경 변수는 지금 열려있는 터미널에 한정되어 적용된다. 따라서, 새로운 터미널 창을 열면 초기화 된다.
환경 변수가 필요한 이유
대표적인 예로는 서비스를 운영하는 상황이 달라질 때 사용한다. 서비스가 개발 환경일때와, 테스트 환경일때, 실제 운영될 때를 환경 변수로 분리할 수 있다. 이를 환경 변수로 처리하지 않는다면, 개발 환경과 실제 운영 환경에서 소스 코드가 달라야만 할 것이다. 소스 코드가 다르면 완벽하게 동일한 프로그램이라고 볼 수 없다.
폴더인지 파일인지 확인하기
먼저, 폴더와 파일을 생성하기 위해 명령어 mkdir 과 nano 를 이용해 디렉토리와 js 파일을 생성 후 ls -l 명령어로 확인하면 아래와 같이 출력된다.
터미널에 출력된 결과 중에서 파일 helloworld.js 는 -rw-r--r-- 이라고 출력되었거, linux 디렉토리는 drwxr-xr-x로 출력된 것을 볼 수 있다. 이 표현의 첫 시작인 - 와 d는 각각 not directory 와 directory 를 나타낸다. 폴더이면 d로, 파일이면 -로 나타낸다.
이어지는 r,w,x 는 각각 read permission, write permission, execute permission 으로 읽기 권한, 쓰기 권한, 실행 권한을 나타내는데 3번에 걸쳐 나타나는 이유는 사용자, 그룹, 나머지 에 대한 권한을 표시하기 때문이다.
위의 내용을 토대로
helloworld.js 에 대해 설명하자면 파일이고 소유자는 읽기와 쓰기만 가능하고, 그룹과 나머지 사용자는 읽기 권한만 가능하다.
linux 는 폴더이고 소유자는 읽기, 쓰기, 실행 이 가능하고 다른 사용자 그룹은 읽기와 쓰기만 가능하다.
user, group, and other
user
group
other
chmod 권한을 변경하는 명령어
명령어 chmod 폴더나 파일의 읽기, 쓰기, 실행 권한을 변경할 수 있다. OS에 로그인한 사용자와 폴더나 파일의 소유자가 같을 경우 명령어 chmod 로 폴더나 파일의 권한을 변경할 수 있다.
만약 로그인한 사용자와 폴더 파일의 소유자가 다를 경우에는 sudo 명령어를 이용 관리자 권한을 획득하여 변경할 수 있다.
chmod 명령어로 권한을 변경하는 방식은 두 가지가 있다.
access class | operator | access type |
---|---|---|
u (user) | + (add access) | r (read) |
g (group) | - (remove access) | w (write) |
o (other) | = (set exact access) | x (execute) |
a (all: u, g, and o) |
chmod g-r filename # 그룹에 읽기 권한을 제거
chmod g+r filename # 그룹에 읽기 권한을 부여
chmod g-w filename # 그룹에 쓰기 권환을 제거
chmod g+w filename # 그룹에 쓰기 권환을 부여
chmod g-x filename # 그룹에 실행 권한을 제거
chmod g+x filename # 그룹에 실행 권한을 부여
chmod o-r filename # 다른 유저의 읽기 권한을 제거
chmod o+r filename # 다른 유저의 읽기 권한을 부여
chmod o-w filename # 다른 유저의 쓰기 권한을 제거
chmod o+w filename # 다른 유저의 쓰기 권한을 부여
chmod o-x filename # 다른 유저의 실행 권한을 제거
chmod o+x filename # 다른 유저의 실행 권한을 부여
chmod u+x filename # 파일의 소유자에게 실행 권한을 부여
chmod 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------
사용자, 그룹, 다른 사용자 를 rwx 가 나타나고, 각 영역의 boolean 값으로 표기할 수 있다.
Permission | Number |
---|---|
Read (r) | 4 |
Write (w) | 2 |
Execute (x) | 1 |
만약 user는 rwx 를 group과 other 은 r-- 권한으로 변경하려고 한다면 아래와 같이 입력하면 된다.
chmod 744 helloworld.js # -rwx-r--r--
# u=rwx (4+2+1 =7), go=r(4+0+0=4)