시스템에서 명령 실행 시 명령어를 찾는 경로와 절차
특수권한
권한 4자리
0 0 0 0
첫 번째 : 특수권한
두 번째 : 소유자 권한
세 번째 : 그룹 소유자 권한
네 번째 : 기타 사용자 권한
특수 권한의 4, 2, 1
4 : setuid
2 : setgid
1 : sticky bit
setuid
실 사용자(프로그램을 실제 실행중인 사용자)에서 프로그램 소유자의 ID로 유효사용자(EUID)가 변경됨
1. 사용하는 경우
-root만 접근할 수 있는 파일이나 명령에 대해, 일반 사용자로 접근하는 것이 기능상 필요한 경우
-setuid 비트가 설정된 파일은 실행순간만 그 파일의 소유자 권한으로 실행한다. (실행할 때만 빌린다)
-매번 root가 어떤 행위를 해주지 않아도x 일반 사용자에게 root권한을 주지 않아도 되기 때문에 효율적
2. 보안 취약점
일반 사용자도 접근 가능하기 때문에 보안에 취약해짐
3. setuid 비트 설정 방법
4나, u+s
실행 권한 자리에 표시될 때,
특수권한o 실행권한o => s
특수권한o 실행권한x => S
4. 활용
패스워드 설정, 변경시 사용
패스워드 변경에 사용하는 /usr/bin/passwd 명령의 경우 setuid가 설정되어 있다. (4755)
passwd 로 변경시 /etc/passwd(0644), /etc/shadow(0640) 파일이 변경
setgid
setuid처럼 유효 그룹 ID(EGID)를 사용자의 실제 그룹 ID에서 파일 소유자의 그룹 ID로 변경
2나 g+s로 설정
해당 디렉터리 안에 파일 생성 시 소유 그룹은, 디렉터리의 소유 그룹으로 자동 할당
sticky
1 또는 o+t 또는 u+t
리눅스는 파일의 sticky bit는 무시
sricky 비트는 특정 디렉터리를 누구나 자유롭게 사용할 수 있게 하기 위함 (공용 디렉터리)
단, sticky 비트가 디렉터리에 적용되면 디렉터리 소유자나 파일 소유자 또는 슈퍼유저가 아닌 사용자들은 파일을 삭제하거나 이름을 변경하지 못하도록 막음, 파일 또는 디렉터리 생성은 누구나 할 수 있다.
sticky 비트를 공유모드라고 함
실행 권한 자리에 표시될 때,
특수권한o 실행권한o => t
특수권한o 실행권한x => T
chmod
파일의 퍼미션 변경
옵션 | 설명 |
-c | 변경된 파일만 자세하게 보여준다 |
-f | 변경되지 않은 파일에 대해서 오류 메시지를 보여주지 않는다 |
-v | 작업 상태를 자세히 보여준다 |
-R | 경로와 그 하위 파일들을 모두 변경 |
--help | 도움말 |
--version | 버전 정보 |
chmod [ 옵션 ] [ 변경될권한 ] [ 변경할파일 ]
권한 값
구분 | 기호 | 설명 |
사용자 | u | user, 파일이나 디렉터리 소유자 |
g | group, 그룹 소유자 | |
o | others, 기타 사용자 | |
아무 문자 없으면 all | ||
연산 | + | 추가 |
- | 제거 | |
= | 지정, 기존의 속성 값은 제거 | |
퍼미션 (접근 권한) | r (4) | 읽기 |
w (2) | 쓰기 | |
x (1) | 실행 |
표기법 | 의미 |
u+x | 소유자에게 실행 권한 추가 |
u-x | 소유자의 실행 권한 제거 |
+x | 모든 사용자(소유자, 그룹, 기타 사용자)에게 실행 권한 추가 |
o-rw | 기타 사용자의 읽기, 쓰기 권한 제거 |
go=rw | 그룹, 기타 사용자에게 읽기, 쓰기 권한 지정 (이전에 실행 권한이 있다면 제거됨) |
u+x,go=rw | 소유자에게 실행 권한을 주고, 그룹, 기타 사용자에게 읽기, 쓰기 권한을 줌 |
a=rw | 모든 사용자에게 읽기, 쓰기 권한 지정 |
g-w | 그룹 소유자의 쓰기 권한 제거 |
g+w,o-x | 그룹 소유자에게 쓰기 권한 추가, 기타 사용자의 실행 권한을 제거 |
8 진수 | 모드 |
0 | --- |
1 | --x |
2 | -w- |
3 | -wx |
4 | r-- |
5 | r-x |
6 | rw- |
7 | rwx |
rwx 권한이라면 4 + 2 + 1 = 7
rwx, rx, rx, 권한을 주려면 755가 된다.
chmod 755 test.txt
chmod -R 755 text.txt
디렉토리인 경우 -R을 쓰면 하위파일까지 변경
chown
파일의 소유자나 소유그룹 변경
.(마침표) 나 :(콜론) 을 사용하면 소유그룹도 변경 가능
chown [ 옵션 ] [ 소유자.소유그룹 or 소유자:소유그룹 ] [ 파일 ]
옵션 | 설명 |
-c | 변경된 파일만 자세하게 보여준다 |
-f | 변경되지 않은 파일에 대해서 오류 메시지를 보여주지 않는다 |
-v | 작업 상태를 자세히 보여준다 |
-R | 경로와 그 하위 파일들을 모두 변경 |
--help | 도움말 |
--version | 버전 정보 |
-h | 심볼릭 링크 파일 자체의 소유주나 그룹을 변경 |
chgrp
파일의 사용자(소유) 그룹을 변경
chgrp [ 옵션 ] [ 그룹 ] [ 파일 ]
옵션 | 설명 |
-c | 변경된 파일만 자세하게 보여준다 |
-f | 변경되지 않은 파일에 대해서 오류 메시지를 보여주지 않는다 |
-v | 작업 상태를 자세히 보여준다 |
-R | 경로와 그 하위 파일들을 모두 변경 |
--help | 도움말 |
--version | 버전 정보 |
-h | 심볼릭 링크 파일 자체의 소유주나 그룹을 변경 |
2201
1. chgrp
2. project
3. chmod
4. 3770 또는 3070
( 파일 생성 시 그룹 자동 할당 setgid, 본인이 생성한 파일만 파일 삭제 가능 sticky 2 + 1 = 3)
2001
1. chmod
2. 3070 또는 3770
참고
'리눅스' 카테고리의 다른 글
[리눅스] dump 백업 (0) | 2022.11.06 |
---|---|
[리눅스] vsftp (0) | 2022.11.06 |
[리눅스] 권한 permission (0) | 2022.11.06 |
[리눅스] rpm, yum 명령어 (0) | 2022.11.06 |
[리눅스] DHCP (0) | 2022.11.05 |
댓글