본문 바로가기

리눅스

Linux 확장 권한 /setuid

setuid 4 setgid 2 sticky bit 1

ex)

chmod 4722-> setuid

chmod 7777->setuid ,setgid, sticky bit

 set UID

-바이너리 또는 스크립트 파일에 적용한다
-디렉토리에는 적용하지 않는다
-실행한 사용자가 아닌 소유자 권한으로 실행
-실행 권한이 x대신s로 표시된다

setuid 설정방법
chmod u+s

 

 

 

 [user@localhost ~]$ ls -al /usr/bin/passwd
-rwsr-xr-x. 1 root root 27856  4월  1  2020 /usr/bin/passwd

 

user에서 패스워드를 변경 할 때,  /usr/bin/passwd 파일을 소유한  root의 권한으로 /etc/shadow에 업데이트시켜 패스워드를 변경 한다.

 

 

 ldh에서 계정 비밀번호를 바꾸려고 한다
passwd 설정 창을 띄워 놓은 후 다른 터미널에서 passwd 프로세스를 확인 하면

 root계정으로 프로세스를 실행하는것을 확인 할 수있다

 

 

 

이번에는 chmod u-s /usr/bin/passwd 명령어를 사용 해 setuid를 없애준다.

 passwd 설정 창을 띄워 놓은 후 다른 터미널에서 passwd 프로세스를 확인 하면

 

 ldh 계정으로 프로세스가 실행중인것을 확인 할 수 있다.

다시 돌아와서 비밀번호 설정을 해 보면

 

 

비밀번호가 바뀌지 않는데 , root가 아닌 다른 계정은 비밀번호를 업데이트하는 /etc/shadow 파일에 접근할 수 없기 때문이다.


그러므로 setuid가 없으면 패스워드를 바꾸지 못한다.

한마디로 setuid는 실행한 사용자가 아닌 소유자 권한으로 실행하는 것이다.

 

 

 

 

 

 

 

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

Linux 확장 권한 /sticky bit  (0) 2021.05.10
Linux 확장 권한 /setgid  (0) 2021.05.10
Linux 사용자 및 그룹 정보 파일  (0) 2021.05.10
Linux 프로세스 작업관리  (0) 2021.05.07
Linux 프로세스 (PID/PPID)  (0) 2021.05.07