웹방문자의 계정에 대해서 궁굼합니다. 도와주세요
본문
항상 궁굼한 점이 있었는데,
뭘지 찾아보다가 이해 못하고 결굴 여쭤봐여 -_-
도와주세요~~
서버 계정 아이디 aaa를 사용하는 싸이트가 있습니다.
FTP 접속을 aaa 계정으로 하니 생성한 디렉토리, 파일의 소유자는 모두들 aaa입니다.
그런데 상품 썸네일 등록 되는 /data/item/ 에 생성되는 디렉렉토리, 파일의 소유자는 bbb 입니다.
웹에서 방문하면 계정 bbb가 사용되는것 같습니다.
상품 등록을 웹에서 하니 생성되는 디렉토리, 파일의 소유자가 bbb가 되는것 같거든요.
궁금란거는 이것 입니다.
이 방문자의 계정 bbb 을 설정은 어디서 하는 건가요?
그누보드 소스에 설정하는부분이 있나요??
전에는 웹에서 이미지 저장하는 디렉토리 퍼미션을 707이나 777 로 했었는데 지금 이 홈페이지는 웹에서 업로드하는 이 디렉토리 소유자는 bbb로 하면서 퍼미션을 755로 설정하네요 -_-
이렇게 하면 웹 방문자 계정이 bbb 이며, 디렉토리 소유자도 bbb 이니 웹에서 업로드가 가능하겠지요.
이렇게 구축하는건 이해가 가는데 웹방문자가 bbb 계정을 갖게 되는게 궁굼합니다.
이 bbb 계정에대한 설정은 어디에 있나요??
그누보드 소스에 있을거도 같기도하고,
php.ini 나 아파치 설정 파일에 있을것도 같고 감이 않옵니다 -_-
개발자님 도와주세요.
답변 부탁드립니다~~
답변 2
두개의 계정이 하나의 폴더에서 동시에 작동한다는 말이네요.
[root@localhost home]# vi /etc/passwd 해서 계정권한이 어찌 설정되어있는지 확인해보세요
특정 폴더에 권한이 2중으로 설정되어 있다면 하나로 변경하는 것을 권해드립니다.
호스팅 A 기관 : /home (서비스 실행 유저 : apache / nginx / nobody / ... )
├ 입주자 a : /home/a (하위디렉토리 모두 소유자 a)
├ 입주자 b : /home/b (하위디렉토리 모두 소유자 b)
├ 입주자 c : /home/c (하위디렉토리 모두 소유자 c)
├ ...
├ ...
└ 입주자 z
실제 웹 요청이 들어오면(방문자) 웹서버 및 서버스크립트 실행 유저의 권한으로 실행 됩니다.
권한이 서로 달라도 웹 서비스가 되는 것은 보통 다음과 같은 권한을 가지기 때문인데,
디렉토리 755 (rwx r-x r-x)
파일 644 (rw- r-- r--)
rwx: User, r-x: Group, r-x: Other
r: Read, w: Write, x: eXecute
일반적인 웹 서비스를 말할때 서버스크립트 엔진. 파서는 서버에 있는 파일을 읽기만 한 후 그 내용을 자신(apache / nginx / nobody / ...)의 메모리에 올려 실행합니다.
하지만 파일을 업로드 하게 되면 데이터를 해당 위치에 직접 써야 하는데
유저가 다르다 보니 소유권 부분에서 문제가 생기게 됩니다.
- aaa
그래서 관련부분 접근시에 문제가 없도록 소유권을 조정하는 것이고
이 방법이 유저(입주자)단에서 손쉽게 취할 수 있는 조치 입니다.
- bbb
아니면 작성하신 것처럼 각 디렉토리의 소유자 자체를 바꿔 주는 것인데
슈퍼유저(root / ...) 권한으로만 지정이 가능합니다. 호스팅 A 기관에서 일괄적으로 작업을 하는 것이겠죠.
이러한 상황에서
aaa 가 bbb 의 권한을 갖도록 하는 방법은 없고, 없어야 합니다.
또한 파일 업로드시 Other 권한이 쓰기 나 실행 권한이 있고 해당 리소스가 웹에 공개되어 있는 형태이면 보안 문제가 심각하다고도 할 수 있습니다.