아파치의 userdir모듈을 이용해서..
localhost/~user이런식으로 접근하게 햇는데요.. ~user/public_html및의 php 어플에서 파일을 생성하게끔했는데
그게 user소유의 파일이 아니라 www-data소유의 파일이 되버리네요..
어떻게 설정을 바꿔줘야 하나요?
당연히 웹상에서 php를 실행해서 파일을 생성하면 www-data로 실행됩니다.
아파치를 통해서 생성이 되기때문에 apache에서 외부 이용자의 id로 사용하는
www-data or nobody
같은 소유주로 생성이 될 텐데요.
그냥 이렇게 생성된 파일을
접근할 수 있는 방법은
web_chown.php <? //$cmd = "chmod -R 777 /home/httpd/html/pds/*"; $cmd = "chown foo -R *"; @exec($cmd); echo "mod changed"; ?>
처럼 php 파일을 만들어서 웹상에서 변경해주면 될 듯합니다.
그립다는 것은 아직도 네가 내 안에 남아 있다는 뜻이다. 그립다는 것은 지금은 너를 볼 수 없다는 뜻이다. 볼 수는 없지만 보이지 않는 내 안 어느 곳에 네가 남아 있다는 뜻이다. -이정하의 《혼자 사랑한다는 것은》중에서-
www-data가 무슨 큰 권한이 있다고
지가 생성한 파일을 다른 유저의 소유로
만들 수 있겠습니까?
제 생각에는 suexec 등의 방법을 고려해야
할 듯 합니다만!
애초에 생성될 당시부터 다른 한 유져의 소유로 생성되게는 할수 없는건가요?
chown 은 -_-;; 권한 에러가 나네요 ;;
뭣때문에 그러는지 몰라서 적합한 답이 뭘지 모르겠습니다만,
어쨌든 "다른 한 사용자"가 "특정 누구"라면 아예 그 사용자 권한으로 웹서버를 운영하는 방법이 있겠지만 그것을 원하는 것은 아닌것 같습니다.
웹 프로세스가 필요에 따라 "어떤 사용자"의 소유로 파일을 만든다는 것은 바람직한 일도 아닐 것입니다.
일반적으로, 누군가(웹프로세스가 되었던 다른 동료 사용자가 되었든)가 내 소유의 공간에 파일을 만들어주고 그것을 내가 수정할 수 있어야 하는 경우라면, 그리고 꼭 그 파일이 내 소유일 필요는 없다면 다음과 같은 방법으로 처리할 수 있습니다.
$ mkdir share $ cd share $ chmod 2777 . $ ls -al drwxrwsrwx 2 sio4 sio4 4.0K 7월 19 10:00 ./ drwxr-xr-x 78 sio4 sio4 8.0K 7월 19 10:00 ../ $
이 장소에 누군가 파일을 만들고 난 후,
$ ls -l -rw-rw-r-- 1 test sio4 5 7월 19 09:40 file_by_test $
이 파일은 비록 내 파일은 아니지만 내 그룹의 파일이고 그룹에 대한 읽고 쓰기 권한이 있기 때문에 제가 수정하거나 할 수 있습니다. 물론 그래봤자 제 파일은 아니죠.
꼭 내 파일로 만들어야 하고 단순히 단방향 흐름만 필요한 것이라면, (웹의 예에서 누군가 올려주기만 하고 그것을 직접적으로 받아갈 필요는 없다면) 좀 우습지만 다음의 방법으로 완전한 "내 파일"을 만들 수 있습니다.
$ ls -al drwxrwxrwx 2 sio4 sio4 4.0K 7월 19 10:00 ./ drwxr-xr-x 78 sio4 sio4 8.0K 7월 19 10:00 ../ -rw-r--r-- 1 test test 0 7월 19 09:38 test_file $ cp test_file tmp; rm test_file; mv tmp test_file $ ls -l -rw-r--r-- 1 sio4 sio4 0 7월 19 09:40 test_file $
좀 우끼지만 :-) 이렇게 (예전의 그 파일이 아닌, 그러나 이름과 내용은 같은)"내 파일"을 만들 수는 있습니다. 위의 작업을 사용자가 cron으로 돌리면 자동화할 수도 있고요.
-- "The love you take is equal to the love you make." The End, by Beatles
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
아마
당연히 웹상에서 php를 실행해서 파일을 생성하면 www-data로 실행됩니다.
아파치를 통해서 생성이 되기때문에 apache에서 외부 이용자의 id로 사용하는
www-data or nobody
같은 소유주로 생성이 될 텐데요.
그냥 이렇게 생성된 파일을
접근할 수 있는 방법은
처럼 php 파일을 만들어서 웹상에서 변경해주면 될 듯합니다.
그립다는 것은 아직도 네가 내 안에 남아 있다는 뜻이다.
그립다는 것은 지금은 너를 볼 수 없다는 뜻이다.
볼 수는 없지만 보이지 않는 내 안 어느 곳에 네가 남아 있다는 뜻이다.
-이정하의 《혼자 사랑한다는 것은》중에서-
www-data가 무슨 큰 권한이 있다고 지가 생성한 파일을 다른
www-data가 무슨 큰 권한이 있다고
지가 생성한 파일을 다른 유저의 소유로
만들 수 있겠습니까?
제 생각에는 suexec 등의 방법을 고려해야
할 듯 합니다만!
애초에 생성될 당시부터 다른 한 유져의 소유로 생성되게는 할수 없는건가요
애초에 생성될 당시부터 다른 한 유져의 소유로 생성되게는 할수 없는건가요?
흐음..
chown 은 -_-;; 권한 에러가 나네요 ;;
그립다는 것은 아직도 네가 내 안에 남아 있다는 뜻이다.
그립다는 것은 지금은 너를 볼 수 없다는 뜻이다.
볼 수는 없지만 보이지 않는 내 안 어느 곳에 네가 남아 있다는 뜻이다.
-이정하의 《혼자 사랑한다는 것은》중에서-
[quote="kimes"]애초에 생성될 당시부터 다른 한 유져의 소유로
뭣때문에 그러는지 몰라서 적합한 답이 뭘지 모르겠습니다만,
어쨌든 "다른 한 사용자"가 "특정 누구"라면 아예 그 사용자 권한으로 웹서버를 운영하는 방법이 있겠지만 그것을 원하는 것은 아닌것 같습니다.
웹 프로세스가 필요에 따라 "어떤 사용자"의 소유로 파일을 만든다는 것은 바람직한 일도 아닐 것입니다.
일반적으로, 누군가(웹프로세스가 되었던 다른 동료 사용자가 되었든)가 내 소유의 공간에 파일을 만들어주고 그것을 내가 수정할 수 있어야 하는 경우라면, 그리고 꼭 그 파일이 내 소유일 필요는 없다면 다음과 같은 방법으로 처리할 수 있습니다.
이 장소에 누군가 파일을 만들고 난 후,
이 파일은 비록 내 파일은 아니지만 내 그룹의 파일이고 그룹에 대한 읽고 쓰기 권한이 있기 때문에 제가 수정하거나 할 수 있습니다.
물론 그래봤자 제 파일은 아니죠.
꼭 내 파일로 만들어야 하고 단순히 단방향 흐름만 필요한 것이라면, (웹의 예에서 누군가 올려주기만 하고 그것을 직접적으로 받아갈 필요는 없다면) 좀 우습지만 다음의 방법으로 완전한 "내 파일"을 만들 수 있습니다.
좀 우끼지만 :-) 이렇게 (예전의 그 파일이 아닌, 그러나 이름과 내용은 같은)"내 파일"을 만들 수는 있습니다. 위의 작업을 사용자가 cron으로 돌리면 자동화할 수도 있고요.
--
"The love you take is equal to the love you make." The End, by Beatles
댓글 달기