Today I Learn - 14

이정빈·2021년 2월 25일
0

클라우드 엔지니어

목록 보기
15/53
post-thumbnail

권한
기본권한 : 소유자 / 소유그룹 / 기타
특수권한
ACL (Access Control List)

기본 권한
소유자/소유그룹/기타사용자
권한의 분류 : 읽기(Read), 쓰기(Write), 실행(eXecute)
파일/디렉토리에서 각 권한의 의미
일반 파일
읽기 - 파일의 내용을 볼 수 있는 권한
쓰기 - 파일의 내용을 수정할 수 있는 권한
실행 - 실행파일(Binary), 스크립트(Read+eXecute)
디렉토리 (=개체의 목록을 가지고 있는 파일)
읽기 - 디렉토리 내의 개체 목록을 읽을 수 있는 권한
쓰기 - 해당 디렉토리 내에 개체의 목록을 수정할 수 있는 권한
실행 - 해당 디렉토리에 진입할 수 있는 권한
각 권한에 대한 설정 방법
권한을 설정할 수 있는 주체: 파일의 소유자 + root
권한변경 명령 : chmod [권한설정내용] <대상개체>
권한 부여 방법 : 심볼릭방식 + 8진수방식
8진수 방식: 0~7 사이의 숫자를 사용하여 RWX 권한을 한꺼번에 지정
일반적으로 4(r--), 5(r-x), 6(rw-), 7(rwx), 0(---)
소유자/소유그룹/기타사용자의 권한을 한꺼번에 지정
심볼릭 : 대상-연산자-권한
대상 : u(소유자), g(소유그룹), o(기타), a(모두)
연산자: +(권한부여), -(권한제거), =(권한지정)
권한: r(읽기), w(쓰기), x(실행)
대상과 권한은 복수 지정 가능
u+w : 소유자에게 쓰기권한 추가
ug+w : 소유자, 소유그룹에게 쓰기권한 추가
o+rw : 기타사용자를 대상으로 읽기,쓰기권한 추가
a+x : 모든(소유자/소유그룹/기타) 대상에게 실행권한 추가
u=rw,g=r,o=- : 소유자는 6, 그룹은 4, 기타는 0권한 지정

소유권 : 파일의 소유자/소유그룹 변경
소유권 변경 명령 : chown / chgrp
chown : 소유자, 소유그룹을 각각 또는 한꺼번에 변경 가능
chgrp : 소유그룹 변경이 가능
소유그룹 변경시 제약사항: 일반사용자는 자신이 포함된 그룹으로만 변경 가능

chown
파일의 소유자/소유권을 한꺼번에 변경 가능
chown [소유자]:[소유그룹] <대상개체>
chown [소유자] <대상개체>
chown :[소유그룹] <대상개체>
-R : 디렉토리의 소유정보 변경시 디렉토리 내 항목도 모두 변경

========================================================

umask
유닉스/리눅스에 파일 생성시 적용되는 권한 설정 : 666
유닉스/리눅스에 디렉토리 생성시 적용되는 권한 설정 : 777
umask : 명령어. 현재 설정된 umask 설정값을 확인
666 => 664 777=> 775

사용자 환경설정파일
공통 환경설정 파일 : /etc/profile
사용자별 환경설정파일 : ~/.profile
쉘 별 환경설정 파일 : ~/.bashrc

=======================================================

특수권한
SetUID : SetUID가 설정된 실행파일을 실행하고 있는 동안은 실행파일의 소유자의 권한을 사용하도록 설정. 설정될 경우, 파일 소유자의 권한의 x 부분에 s로 표기. 실행파일에만 영향을 미침. 디렉토리에는 영향이 없음
SetGID : SetGID가 설정된 실행파일을 실행하고 있는 동안은 실행파일의 소유그룹의 권한을 사용하도록 설정. 설정될 경우, 파일 소유그룹의 권한의 x 부분에 s로 표기. 디렉토리에도 작용함 - 해당 디렉토리에 생성되는 파일의 소유그룹을 해당 디렉토리의 소유그룹으로 지정.
StickyBit : 디렉토리에만 영향을 줌. 디렉토리에 쓰기권한이 있는 사용자라 하더라도 자신이 소유한 파일이 아니면 삭제 불가.

특수권한 설정
chmod 명령을 사용
심볼릭방식 / 8진수 방식 모두 사용가능
심볼릭방식 : SetUID/SetGID는 s권한으로 부여, StickyBit는 o에 대해서 t권한을 부여
8진수방식 : 8진수 맨 앞자리를 SetUID(4)+SetGID(2)+StickyBit(1)
ex) passwd : rws r-x r-x - 4755
ex) SetUID와 SetGID가 동시에 설정된 파일 - 6755 (4+2)
ex) /tmp : rwx rwx rwt - 1777

======================================================

프로세스 관리
리눅스에서 파일형태로 저장된 실행 명령은 프로그램
실제로 호출하여 실행하면 프로세스(Process)라고 부름
프로세스는 메모리에 올라와야 동작이 가능함

프로세스 관리 명령어
ps : 기본적인 프로세스 목록 확인 도구
자주 사용하는 옵션
ps -ef : -e 현재 쉘에서 실행되는 프로세스 이외의 시스템 프로세스 조회, -f : 상세정보 조회
ps aux : 프로세스 별 자원 사용량 등을 상세하게 조회
pstree : 프로세스의 부모-자시 트리구조에 따라 표시
kill : 프로세스에 지정한 시그널을 전송. 프로세스의 PID로 선택
kill -l : 사용할 수 있는 각 시그널 별 번호 및 이름 확인
주요 시그널
9 : SIGKILL. 강제성이 있음
15: SIGTERM. 강제성은 없음
pkill : 프로세스에 지정한 시그널을 전송. 프로세스의 이름으로 선택

포그라운드/백그라운드 (Foreground/Background)
포그라운드 : 쉘에서 프로세스 실행 시, 프로세스가 실행되는 동안 사용자의 입/출력/에러가 프로세스에 연결되어 있는 상태
백그라운드 : 쉘에서 프로세스 실행 시, 사용자의 입/출력/에러를 실행되는 프로세스에 연결하지 않고 쉘에 연결한 상태
백그라운드 명령 실행 방식 : 명령어 제일 마지막에 ‘&’ 기호 추가
현재 실행중인 백그라운드 작업 목록 확인 : jobs
작업을 포그라운드로 전환 : fg
특정 작업을 포그라운드 전환할 경우 : fg %[작업번호]
포그라운드 작업을 백그라운드로 전환 : Ctrl + z (백그라운드에서 STOP 상태로 전환)
백그라운드에서 STOP 상태인 작업을 재개 : bg

profile
WAS Engineer, Cloud Engineer(지망)

0개의 댓글