서버 관리자가 디렉토리에 대한 공개 쓰기 권한을 설정하려고합니다.


9

나는 웹 개발에 비교적 익숙하지 않기 때문에 기다려주십시오.

저는 주로 iPhone 개발자이지만 최근에 다른 사람이 공유 호스팅을 사용하는 사이트를 만들었습니다. 권한에 대해 생각할 필요없이 해당 사이트의 PHP 파일에 쓸 수 있습니다.

나는 내가 만들고있는 새로운 앱을 위해 웹 서비스를 배포하는 과정에 있지만 실제로 원활하게 진행되지는 않습니다. 여기서 가장 중요한 차이점은 다른 사람의 서버를 사용하고 있으며 FTP / DB 액세스 권한 만 있다는 것입니다.

기본적으로 CMS를 구성하는 많은 PHP 파일이 있습니다.

mysite.com/admin/manage_news.php
mysite.com/admin/manage_events.php

그런 다음 해당 스크립트는 데이터베이스 또는 파일을 편집합니다. 그들은 DB와 잘 상호 작용할 수 있지만 스크립트는 파일 시스템에 쓸 수 없습니다. 예를 들어 다음 파일에 쓰려고 시도 할 수 있습니다.

mysite.com/data/img/event_1.png
mysite.com/data/somefile.txt

이것은 MAMP 설치 (로컬)에서 정상적으로 작동했지만 일단 서버에 배포되면 PHP는 쓰기를 시도 할 때마다 오류를 분출했습니다 ...

쓰기 위해 파일 "../data/img/someimage.png"를 열 수 없습니다.

그래서 나는 서버를 운영하는 사람에게 이메일을 보냈고 그는 다음과 같이 말했습니다.

공공 허가로 작동합니까? (777)

그리고 그것은-그러나 나는 공공 허가를 사용하는 것에 매우 조심 스러웠으므로 즉시 다시 비활성화했습니다. "표준 사용자 권한을 사용하여 PHP 스크립트를 작성하려면 어떻게해야합니까?"라는 이메일을 보냈습니다.

공개로 남겨두면 괜찮을거야

도메인 해상도에서 IP 충돌이라고 생각하지만 걱정하지는 않습니다.

나는 그에게 "확실히 안전하지 않다"라고 말하거나 그 라인을 따라 뭔가를 이메일로 보냈고 그는 다음과 같이 대답했다.

실제로는 여러 폴더에 777이있는 여러 웹 사이트를 포함하여 수백만 개의 웹 사이트가 있으며 이는 삶의 방식 일뿐입니다.

누구든지 내가 그를 줄 수있는 해결책에 대한 아이디어를 줄 수 있습니까? 아니면 777을 사용하지 않으려면 어떻게해야합니까? 내 사이트 / 서비스의 모든 폴더가 공개적으로 작성 가능하다는 아이디어가 마음에 들지 않습니다.

웹 서버에 대해 거의 알지 못하므로 조언 해 주셔서 감사합니다.


12
이 남자에게서 도망쳐 서 돌아 보지 마
user9517

실제로 옵션이 아닙니다 ... SvenW의 답변에 대한 의견을 참조하십시오 ...
Alex Coplan

답변:


13

그것을 분해하자 :

디렉토리에서 읽고 실행하고 쓰려면 스크립트를 실행하는 사용자가 필요하므로 다음과 같아야합니다.

7 = (r) ead, (w) 라이트, e (x) ecute

같은 그룹에 속한 다른 사용자는 디렉토리 내에서 php 파일을 실행할 수는 있지만 쓸 수는 없습니다 (명백한 이유로). 반드시 PHP 파일을 읽을 필요는 없습니다. 따라서 실행 권한 만 제공하면됩니다.

1 = e (x) 급성

일반인도 마찬가지입니다. 실제로, 그것은 PHP와 정적 파일을 볼 필요가있는 외부 사용자에게 필요한 전부입니다 :

1 = e (x) 급성

따라서 최소값은 다음과 같아야합니다.

711

본인의 구성으로 위의 설정을 확인 했으므로 작동해야합니다. 그러나 이것은 기본 웹 사용자 아래에 있습니다. www가 아닌 ​​다른 로그인으로 업로드하는 경우 파일 및 디렉토리가 다른 사용자에있을 수 있습니다. 이 경우 기본 웹 사용자가 귀하가 소유 한 파일을 읽거나 쓰지 못할 수 있습니다. 이때 기본 웹 사용자를 그룹에 추가 한 다음 (sysadmin이이를 수행해야 함) 그룹에 속한 사용자에게 읽기, 쓰기 및 실행 권한을 부여해야합니다.

771

그리고 아마도 효과가있을 것입니다. 또는 sysadmin이 해당 파일의 사용자 및 그룹 소유권을 기본 웹 서버 사용자로 변경하도록하십시오 (그러나 권한은 아닙니다!). 그래도 작동하지 않으면 권한의 샘플 출력 (디렉토리 내의 "ls -la"와 같은 것)이 문제를 해결하는 데 도움이 될 것입니다. 또는 "기타") 보안상의 관점에서 괜찮을 것입니다.


2
내가 두 번 투표 할 수 있으면 좋겠다.
웨슬리

문제는 웹 사이트가 권한 자체가 아닌 자체 구조 내의 파일에 쓰지 않아야한다는 것입니다.
JamesRyan

네가 옳아. 데이터에 따라 공개 웹 루트 외부의 파일에 쓰려고 할 수 있습니다.
Rilindo

여기 /data폴더에 쓰고 있습니다.이 폴더에는 JSON 웹 서비스를 구성하는 PHP 스크립트와 웹 서비스 ( /data/img폴더 내)로 전달되는 콘텐츠에 사용되는 많은 이미지가 들어 있습니다.
Alex Coplan

그렇다면 이미지는 공개되어야합니까? 그것은 분명한 것들입니다.
Rilindo

18
Leave it as public, it'll be fine

I reckon it's an ip conflict somewhere in the domain resolution, 
but I'm not worried about it.

이 녀석은 바보이고 이것은 완전 말도 안됩니다. 액세스 권한은 IP 주소 또는 도메인 확인과 아무 관련이 없으며 단어를 버리고 있습니다.

이 "관리자"의 품질을 고려할 때 사이트가 매우 열악하고 안전하지 않은 사이트 일 가능성이 높으므로 다른 사이트를 호스팅하는 것이 좋습니다. 777작동하도록 무언가 에 권한을 부여하는 것은 그가하는 일을 조금 이해하지 못한다는 확실한 신호입니다.

실제로 필요한 액세스 권한은 시스템의 사용 및 구성 방식에 따라 다르며이를 알지 못하고 무언가를 말하기는 어렵습니다.


고마워-내 생각은 권한에 관한 것입니다.-개발중인 회사가 비용을 지불하지 않기 때문에 다른 곳에서 호스팅 할 수있는 옵션이 없습니다. 가상 서버 중 하나만 실행하고 있다고 말할 수있는 것부터 무료로 해보십시오. 그렇다면 어떻게 정상적으로 작동합니까, 어떻게 PHP 스크립트를 "사용자"로 실행하여 사이트의 어떤 것에 쓸 수 있습니까?
Alex Coplan

글쎄, 나는 그들이 "무료"를 얻는 것에 대해 알려줄 것이다. 공유 호스팅에 대한 경험이 많지 않으므로 언급 할 수 없습니다. 내 사이트는 모두 쓰기 권한이 필요한 데비안 웹 서버와 폴더를 실행 www-data하며 700권한을 가지고 있지만, 귀하의 경우에는 작동하지 않을 것입니다.
Sven

나는 그들이 메인 사이트에 대해 그에게 돈을 지불하고 있다고 생각합니다. 그래서 그것이 서버 오류 페이지의 맨 아래에 도움이된다면 이것이 말합니다Apache/2.2.9 (Debian) PHP/5.2.6-1
Alex Coplan

또한 이것은 공유되지 않는 vps입니다
Alex Coplan

2
글쎄, 파일이 어떤 권한과 소유권을 서버로 전송할지 알아 내려고 노력했다. 최소한 www-data그룹 의 구성원이 아닌 사용자 인 경우 , 전송 또는 실제로 사용 777권한 후에 사용자 / 그룹을 변경해야합니다 . 그러나 이것은 의미가 없습니다, 우리는 당신에게 이런 식으로 도울 수 없습니다.
Sven
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.