/Linux/RHCSA/3일차2021. 6. 20. 22:36
1. 확장 퍼미션(setUID setGID sticky bit)에 대하여 + 실습
- 확장 퍼미션에 관하여
일반적으로 파일이나 디렉토리에는 user, group, other 권한이 존재하고 각각 읽기, 쓰기, 실행 권한을 부여할 수 있다 이런 일반 권한 이외에도 리눅스에는 확장 퍼미션 즉 확장 권한이 존재하는데 이것이 setuid, setgid, sticky bit이다.
특수권한 | setUID | setGID | sticky bit |
8진수 | 4 | 2 | 1 |
먼저 위의 표를 보면 이렇게 나타낼 수 있는데 즉 확장퍼미션 값을 주고 싶으면 예를 들어 chmod? 744 이때 확장 퍼미션 값을? 에 집어넣으면 되겠다
-setUID
SetUID가 설정된 파일을 실행할 때 일시적으로 파일 소유자의 권한을 얻어 실행할 수 있도록 하는데 예를 들어 root 권한으로 지정된 프로그램에 SetUID가 지정되어 있다면 실행할 때 root 권한으로 실행된다 쉽게 설명을 덧붙이자면 실행할 때 root의 권한을 빌려온다고 생각하면 된다.
-setGID
SetUID와 마찬가지로 SetGID가 설정된 파일을 실행할 때 일시적으로 파일 소유 그룹의 권한을 얻어 실행하도록 해준다
- sticky BIT
sticky BIT는 sticky BIT값이 설정된 디렉터리는 누구나 파일을 만들 수 있으며 자신의 소유가 아닌 파일을 삭제할 수 없다 즉 쉽게 말해 공유 디렉터리라고 보지만 소유자만이 파일 삭제가 가능하다.(물론 root계정으로는 삭제가 가능함)
2. lsattrr과 chattr을 사용하여 파일 속성 바꾸기
- lsattr 명령어로 파일 속성을 알아보고 chattr로 파일 속성을 부여해보자
lsattr [option] [filename] - 해당 파일 속성을 알아보는 명령어
chattr [option] [-v version] [mode] [filename] - 해당파일 속성을 변경하는 명령어
먼저 파일의 속성들을 알아보자.
속성 | 설명 |
- | ext2/ext3등 파일시스템에서 설정할 수 있는 13개의 속성을 의미 |
a | 쓰기시에 오로지 추가모드로만 열 수 있다. |
c | 커널에 의해 디스크 상에 압축 상태로 저장. |
d | dump(8)명령 수행시 백업 되지 않는다 (덤프 방지) |
i | 삭제,이름변경,링크등 어떤 자료도 변경 불가. (root 조차 변경 불가) |
j | 데이터 저널링 |
s | 지워질 때 블록들이 모두 0으로 되고 다시 디스크상에에 씌여짐(안전한 삭제) |
t | 하단 결합 불가 |
u | 삭제가 되었을 경우에는 그 내용이 저장 (데이터로 복구 가능) |
A | 접근시간(atime) 갱신 안함 |
D | 동기화된 디렉토리 업데이트 |
S | 수정될 때 그 변화가 디스크 상에 동기화 (동기화된 업데이트) |
T | 디렉토리 계층구조의 최상위 |
읽기 전용 속성 | |
h | 큰 파일 |
e | 압축 오류 |
i | 색인 디렉토리 |
X | 압축 로우 액세스 |
Z | compressed dirty file |
lsattr 명령어의 옵션
-R |
디렉토리와 그 이하 모든 내용에 대한 속성값 출력. |
-a | '?'로 시작하는 파일을 포한한 디렉토리 내 모든 파일 출력. |
-d | 디렉토리를 볼 때 안에든 파일을 일반 파일처럼 출력. |
-v | 파일 버전을 출력. |
chattr 명령어의 옵션
옵션 | |
-R | 디렉토리와 그 이하 모든 내용의 속성을 변환 |
-V | 변환된속성의 대하여 자세히 출력 |
-f | 요ㅛ류 메세지 표시 |
-v version | 파일의 버전을 설정 |
모드 | |
+ | 파일의 속성을 추가 |
- | 파일의 속성을 제거 |
= | 파일이 갖는 속성을 오로지 주어진 속성을 가지도록 설정 |
3. useradd로 유저를 생성하는 것 이외에 추가 속성 부여하기
전 게시물에서 했던 useradd(사용자 생성 명령어)로 이번에는 그냥 생성이 아닌 추가 속성을 부여해보자
-useradd 명령어의 옵션
옵션 | 설명 |
-u | 사용자 계정의 UID 지정 |
-g | 사용자 계정의 GID 지정 |
-G | 사용자 계정의 2차 그룹의 GID 지정 |
-d | 사용자의 홈 디렉토리를 지정 |
-e | 사용자의 계정 만기일 지정 |
-f | 사용자의 계정 유효일 지정 |
-s | 로그인 시 사용할 기본 쉘 지정 |
-M | 사용자의 홈 디렉토리를 생성하지 않음 |
-c | comment |
그럼 이제 한번 만들어보자 나는 사용자 이름 : sakura UID : 2500 기본 그룹 : 10(wheel) 홈 디렉터리 : /home/nija/sakura 기본 쉘 : /bin/bash로 설정해서 만들어 보겠다
-추가로 chage 명령어 알아보고 실습해보자
chage란? 사용자의 패스워드 만기 정보를 변경 및 설정하는 명령어이다(root 권한을 가진 사용자만 사용 가능함)
옵션 | 설명 |
-l | 지정한 계정의 정보 확인 |
-d | 패스워드 날짜 수정 (yyyy-mm-dd형식 or 숫자) |
-E | 계정 만료일 설정 (yyyy-mm-dd형식 or 숫자) |
-m | 패스워드 최소 의무 사용일 수 지정 |
-M | 패스워드 최종 변경일로부터 변경없이 사용할 수 있는 최대일 수 설정 |
-I | 패스워드 만료일이 지나면 계정 비활성화 (yyyy-mm-dd형식) |
-W | 패스워드 만료 며칠 전부터 사용자에게 경고 메세지를 보낼지 설정 |
자 이제 sakura에 대한 패스워드 속성을 수정해 보자 최소기간 : 1 최대 기간 : 60 경고 기간 : 5 특정 날자에 만료 : 2021-8-22
4. /etc/sudoers란 파일에 대해 알아보자.
-먼저 /etc/sudoers는 sudo 명령 어을 사용하게 할 수 있는 계정을 관리하는 설정 파일이다 역시 설정 파일이기에 /etc밑에 존재하며 root계정 권한이 걸려있고 SetUID나 SetGID가 걸려있지 않으므로 일반 사용자가 읽거나 편집이 불가하다.
또한 /etc/sudoers파일은 쓰기 권한이 없기에 리눅스 편집기인 'vi'를 사용하지 못하고 'visudo'라는 명령어를 사용해 편집해야 한다. 그렇다고 vi편집기로 수정이 불가한 건 아닌데 chmod로 설정을 변경하면 수정이 가능하다.
5. setfacl을 이용해 acl 구성해보기
-먼저 acl에 대하여 간단하게 알아보자
acl(Access Control List)이란 파일과 디렉터리 확장 속성 중에 하나이며 setfacl 명령어를 통해 파일의 소유자나 그룹을 더 만들며 다양한 권한을 줄 수 있으며 getfacl 명령어로 추가된 권한을 확인 할 수 있다.
먼저 getfacl과 setfacl 명령어에 알아보자
getfacl [option] [filename] - 파일 및 디렉토리 권한 확인 명령어
setfacl [option] [filename] - 파일 및 디렉토리 권한 부여(수정) 명령어
-getfacl 옵션
옵션 | 설명 |
-d | 기본 소유자 그룹과 권환에 대해 확인 |
-R | 디렉토리 및 파일 내용까지 확인 |
이제 한번 설정을 바꿔보자
-setfacl 옵션
옵션 | 설명 |
-m | 권한을 수정할 때 사용한다. |
-x | 권한을 삭제할 때 사용한다. |
-R | 디렉토리의 경우 밑의 파일 내용까지 권한 변경한다. |
-b | 권한 및 mask 등등 지정한 권한을 파멸적 삭제. |
'IT_공부 > Linux' 카테고리의 다른 글
/Linux/RHCSA/6일차 (0) | 2021.06.28 |
---|---|
/Linux/RHCSA/5일차 (0) | 2021.06.27 |
/Linux/RHCSA/4일차 (1) | 2021.06.22 |
/Linux/RHCSA/2일차 (0) | 2021.06.18 |
/Linux/RHCSA/1일차 (0) | 2021.06.16 |