질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

passwd를 일반 유저가 변경할때 왜 잠시 root의 권한을 얻게 되는건가요?

작성자 정보

  • bonanza 작성
  • 작성일

컨텐츠 정보

본문

시스템 프로그래밍을 배우고있는데요

passwd를 일반유저가 변경할경우에 잠시 root의 권한을 얻는다고 그랬는데요

왜 그렇게 되는지 정확히 이해가 안가네요

그리고  그렇게 변경이 되는 (과정)방법도 좀 알려주세요..

관련자료

댓글 2

이관열님의 댓글

  • 이관열
  • 작성일
setuid  에 대해 먼지 이해를 하셔야 될 것 같습니다. passwd 명령은 원래 root 사용자 만이 사용이 가능한 명령입니다. 그러나 root 사용자만이 passwd 명령을 실행할 권한을 가지고 있으면 다른 사용자는 루트 사용자가 아니니까 passwd 명령을 실행을 못 하게 되는 결과가 오죠. 그러니까
내가 루트가 아니고 일반 사용자인데  패스워드를 바꿔야 한다면 맨날 root 사용자에게 전화해서 패스워드좀 바꿔 달라고 하는 일이 발생 할 수가 있죠. 그래서 나온게 setuid 라는 것입니다. 아까 말씀드린 데로 root 가 아닌 일반 사용자로 로그인해서 사용하다가 passwd 명령으로 패스워드를 변경하려고 하면 passwd 명령어에는 파일 권한 부분에 보면  rws 에서 s  부분이 setuid 부분입니다
passwd 명령을 실행하면 원래는 일반사용자가 passwd 를 실행할 권한이 없는데 s 라는 setuid 가 설정되 있기 때문에 일반 사용자가 잠깐 루트의 권한을 빌리게 되는 것이고 그 상태에서 일반 사용자는 패스워드를 입력하여 패스워드를 변경하게 되는것이죠
그러니까 간단하게 생각하면 유저부분의 권한에 s가 붇어있고 소유자가 root로 되있으면 그파일을
실행시 일반 사용자는 잠깐 루트의 권한을 얻게 되고 파일 실행이 끝나면 다시 일반사용자의 권한을 가지는 거죠. 근대 이것을 이용해서 해킹이 가능할 수 있습니다. 조금만 머리를 쓰면 root 권한을 얻는 순간데 서버에 있는 파일 망가뜨리고 서버를 꺼 버릴수도 있죠.
더 쉬운 이해를 하고 싶으시면 setuid setgid 를 검색해 보면 더 쉽게 이해가 가능 하리라 생각됩니다.
그리고 프로그래밍을 하신다고 하는데 공부에 도움이 되는 사이트 하나 소개 할까 합니다.
http://www.nicehosting.co.kr/etc/etc_26.asp 가시면 리눅스 이미지 파일과 프로그래밍에 리눅스용 유틸을 쉽게 구하실수가 있을겁니다. 호스팅 사이트인데 무료로 자료도 재공재 주고 속도도 그럭저럭 잘 나오는것 같더군요
그럼...

bonanza님의 댓글

  • bonanza
  • 작성일
자세하고 친절한 답변 감사드립니다.
궁금했던것들이 한방에 처리가 되네요..^^ 감사해요..^^

공지사항


뉴스광장


  • 현재 회원수 :  60,138 명
  • 현재 강좌수 :  36,196 개
  • 현재 접속자 :  756 명