>> Delete Reply from No. 53161 article
No. RE: /etc/passwd 안에 nobody는 어떤 권한을 행사할수
있나요?

등록 2002-07-20 16:34:00 By localhost     조회 4
이름 linox    

		리눅스 설치후 계정 발급을 하지 않았는데
/etc/passwd 안에 UID 1 ~ 99 사이에 있는 많은 유저들이 있습니다.
 이들을 시스템 유저라고 합니다.
이들 유저들은 일반 유저와 달리 shell 이 없다거나
 홈디렉토리가 /home 아래가 아닙니다. 즉, 일반 유저들과는 다릅니다.
예를 들어 lp 라는 유저는 프린터 서비스를 위한 유저입니다.
 lp:x:4:7:lp:/var/spool/lpd:
 만약 프린터 서비스를 한다면 프린터 데몬이 프로세스로 떠 있습니다.
근데 문제는 이 프린터 데몬을 누구의 권한으로 뜨도록 만들것인가 입니다.
 바로 lp 라는 유저의 권한으로 프로세스를 띄우게 됩니다.
이렇게 하는 이유는 보안상의 이유와 잘못된 동작으로 인해
 시스템에 피해를 주는 것을 막기 위함입니다.
 # pstree
 를 해보시면 기본적으로 모든 프로세스는 부모와 자식간의 관계를
유지하고 있다는 것을 확인 할수 있습니다.
 # ps auxw | less
 해 보시면 누구의 권한으로 프로세스가 떠 있는지도 확인을 할수 있습니다.
 문제는 부모 프로세스가 root 권한을 가지고 있다면
부모 프로세스가 내어 놓은 자식 프로세스 역시 보통 root 의 권한을
가지게 된다는 것입니다.
 그렇다면 예를 들어 현재 lpd 라는 데몬이 root 권한을 가지고 돌고
있습니다.  근데 누군가가 lpd라는 데몬에게 서비스를
 요청했습니다.  그러면 lpd 가 자식 프로세스를 하나 내어 놓고
그 자식 프로세스는 root 의 권한을 가지고 있습니다.
 그런데 lpd 가 내어 놓은 자식 프로세스는 예를 들어
rm -fr /* 와 같은 일을 하는 프로세스 였습니다.
 그러면 시스템에 피해를 줄수 있습니다.
 그런데 만약 lpd 프로세스가 lp 라는 유저의 권한을 가지고 있고
이 유저는 지극히 제한적인 권한만 가지고 있습니다.
 마찬가지로 누군가가 서비스를 요청했습니다. 이번에도 자식 프로세스를
내어 놓았는데 rm -fr /* 와 같은 일을 하는 프로세스입니다.
 하지만 허가만 거부 될뿐 시스템에 악영향을 줄수가 없습니다.
 apache 나 proftp 를 살펴 보시면 기본적으로 클라이언트의 요청에
응답을 하는 프로세스는 nobody 의 권한으로 실행됩니다.
 또한 bind 를 설치하실때 INSTALL 문서를 보시면 named 라는 유저를
생성해서 named 프로세스를 돌리도록 하고 있습니다.
 이처럼 어떤 서비스를 하는 데몬들은 되도록이면 root 의 권한으로
실행되는 프로세스가 처리 하지 않도록 합니다.
    : nobody:x:99:99:Nobody:/:
: /etc/passwd 파일안에 이렇게 노바디가 있네요.. 이것의 의미를 알 수 있나요?--메롱~
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved