보통 무료 웹호스트를 운영하시는 분들은 가입을 받은후 사용자 추가를 합니다.

하지만, 사용자들 그냥 추가하셔서 쓰지 마시고,
사용자들을 추가하신후에 1개의 그룹으로 모두 포함(소속)시킵니다.

왜 저런짓을 해야하며, 그렇지 않을 경우 어떤 문제가 생기는지 궁금하시나요?
아래는 실제의 예 입니다
--------------------------------------------------------------------------
저는 사용자를 그룹화 하지 않은 운영자 입니다.
/home/public_html의 권한 설정을 rwx --- rwx로 했는데,
A라는 user가 B라는 user의 public_html에 접근해서 파일들을 마구 읽더라구요.

$vi /home/b/public_html/index.php
위와 같은 방법으로 읽어 버리더군요

생각 같아서는 rwx --- ---로 주고 싶은데, 그렇게 하면 웹부라우져에서 public_html 안에 있는 어떤 파일도 읽어오지 못하더군요~

예를 들어서 /home/사용자명/public_html/zeroboard/라는 경로가 있다고 치면,
public_html의 권한이 rwx --- --- 라면 웹브라우져에서 제로보드가 실행되지 않더군요

왜냐하면 외부에서 접근하기 위해서는 other의 접근권한이 최소한 x가 되어야 하니까요..

저 망했습니다 ㅠㅠ
---------------------------------------------------------------------------------

위의 웹호스트의 보안상의 문제점이 뚜렷이 나타납니다.

어떻게 해야 저런현상을 막을수 있을것인가?

처음에 말했던것을 따라하시면 됩니다
(사용자들을 추가하신후에 1개의 그룹으로 모두 포함(소속)시킵니다.)

리눅스 명령어도 잘 모르는 사람들에게는 어려움이 따르므로 예제를 통해서

쉽게 설명하도록 해보겟습니다.

사용자 A, B를 Host라는 그룹으로 묶어 보겠습니다.

#useradd A     //A라는 사용자 추가
#useradd B     //A라는 사용자 추가
#passwd A       //A라는 사용자의 비밀번호 설정
#passwd B     //A라는 사용자의 비밀번호 설정

사용자 생성을 완료했으므로, 그룹을 생성해 하신후 그룹에 사용자를 포함(소속)시켜 보겟습니다

방법은 3가지가 있습니다
첫째, /etc/passwd, /etc/group file 변경...
둘째, prompt 상에서 변경
셋째, redhat의 경우, redhat-config-users란 tool 사용

일단은,prompt상에서 변경 방법만 설명 할께요

# usermod -g(-G) Host A   //A라는 사용자를 Host라는 그룹에 포함시킴
# usermod -g(-G) Host A   //B라는 사용자를 Host라는 그룹에 포함시킴

이렇게 하면 A, B는 Host라는 그룹에 속하게 됩니다.

///이제부터 사용하는 chmod라는 명령어는 이 글의 끝에 약간의 설명을 하였습니다.
///하지만 부족하므로, 인터넷에서 더 찾아보시기 바랍니다..찾기 쉬울꺼에요^^

이제 /home/A라는 디렉토리에서, 사용자 A라는 아이디로 권한설정을 합니다
$chmod 701 public_html (drwx --- --x)
그러면 이제 같은 그룹에 속한  B는 A의 public_html폴더에 얼씬도 못하게 됩니다

B도 이와 마찬가지로 권한설정을 하시기 바랍니다..

여기서 중요한 점은, Host라는 그룹에서만 저것이 통한다는 것입니다

만약에 Host2라는 그룹에서 접근을 할시, 그룹의 권한설정의 영향을 받지 않고 Other의 권한설정에 영향을 받기 때문에, 손쉽게 A의 public_html에 접급할수 있습니다.

왜냐하면 , 방금 설정한 권한설정을 A가 속한 Host라는 그룹에게만 적용되는 것이기 때문입니다.
$ls -all을 통해서 보면
drwx --- --x     3     A     Host   312     1월 14일 6: 10 public_html
이렇게 되어있습니다

해석을 하자면,,,

즉 Host라는 그룹에 속한 A는 public_html의 주인이다.
소요주인 A는 rwx(읽고, 쓰고, 실행)을 할수 있으며, A가 속한 Host그룹에 있는 사용자들은
어떤 권한도 없다. 같은 그룹에 속하지 않은 사용자들은 x(실행)만 가능하다

이렇게 되거든요~~~

이제 마칠렵니다...이거 쓴다고 40분이 ..ㅡㅡ..

도움이 되셨으면 좋겠네요

저도 여기저기서 자료들을 찾아봤는데, 딱히 자세한것도 없더라구요(제가 검색을 잘 못해서 그럴수도 잇겠?c..)
그래서 책도보고, 실제로 실험도 해서 그 경험을 한번 적어보았구요..

그럼 즐리~~~^^


출처:
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=26102#c_26102