본문 바로가기
리눅스

[리눅스] chomod, chown, chgrp, 특수권한(setuid)

by 깅민 2022. 11. 6.

시스템에서 명령 실행 시 명령어를 찾는 경로와 절차

 

 

특수권한

권한 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


 

참고

https://blog.naver.com/PostView.naver?blogId=is_king&logNo=222100329978&parentCategoryNo=&categoryNo=82&viewDate=&isShowPopularPosts=true&from=search 

https://eunguru.tistory.com/93

https://eunguru.tistory.com/115

'리눅스' 카테고리의 다른 글

[리눅스] 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

댓글