파일 업로드 폴더 생성시 소유자 관련 문의드립니다.
본문
글쓰기 파일 업로드 부분에 아래처럼 폴더 생성 및 파일 업로드 구현했습니다.
mkdir('./폴더명');
chmod('./폴더명', 0755);
그런데 폴더 생성 및 파일 업로드는 잘 되는데 소유자 및 그룹이 계정 아이디로 지정이 안됩니다.
www www 로 만들어져서 삭제가 안되는데
소유자 및 그룹을 계정 아이디로 지정하려면 어떻게 해야 될까요?
호스팅 업체에 문의해야 되는 것인지 아님 자체 해결 가능한지 궁금합니다.
감사합니다.
답변 4
업로드 디렉터리의 하위는 특정계정의 소유자(FTP 사용자) 로
지정하지 않습니다
nobody 라는 apache 계정으로 지정됩니다
이걸 FTP 계정으로 소유자를 변경하는 것은
보안상 좋지 않으므로 변경하지 않는것이 좋을것입니다
php에서 shell 명령을 통해서 만드신거면 www-data 유저 권한으로 해당 명령이 실행되어서 그 유저 계정으로 만들어질겁니다.
chown을 통해서 소유자를 변경하시는걸 추천합니다. (이럴 경우 www-data 유저에게 chown 명령 권한이 있어야 합니다. 혹은 sudo를 이용하세요.)
---- 주의 ----
www-data 유저에게 권한을 지급하는 행위는 정말 위험한 행위입니다.
shell 명령이 들어간 php 파일 보안에 주의하시기 바랍니다.
보통의 웹 호스팅 서비스에서 FTP나 SSH에서 디렉터리 생성시 소유권이 사용자에게 지정됩니다.
예) userid:hosting_users
하지만 apache 서비스는 각각의 사용자의 소유권한이 아닌, nobody:nobody 의 권한으로 구동되기 때문에 자신의 소유권한으로 생성되지는 않습니다.