Mac OS X에서 Apache 2 사이트 파일 / 폴더에 대한 올바른 소유자 / 그룹 / 권한이 있습니까?


114

웹에서이 질문에 대한 Mac 관련 답변을 찾기가 어렵 기 때문에 누군가가이 질문을 저에게 맡길 수 있기를 바랍니다. 내 사이트에서 내 권한이 망가졌고 분명히 잘못된 모든 것에 재귀 777을 두드리지 않고 수정하는 방법을 모르겠습니다.

감사!

답변:


186

~/my/web/root/웹 콘텐츠에 대한 가상 디렉터리에 대해 여기에서 설명한 것처럼 이것이 제가 찾은 가장 제한적이고 안전한 방법입니다 .

  • 웹 루트에 이르는 각 상위 디렉토리 (예를 들어 ~/my, ~/my/web, ~/my/web/root) :
    • chmod go-rwx DIR (소유자 이외의 누구도 콘텐츠에 액세스 할 수 없음)
    • chmod go+x DIR (_www를 포함한 "사용자"가 dir을 "입력"할 수 있도록 허용)
  • sudo chgrp -R _www ~/my/web/root (모든 웹 콘텐츠는 이제 그룹 _www입니다)
  • chmod -R go-rwx ~/my/web/root (소유자 이외의 누구도 웹 콘텐츠에 액세스 할 수 없음)
  • chmod -R g+rx ~/my/web/root (모든 웹 콘텐츠는 이제 _www에서 읽기 / 실행 / 입력 가능)

다른 모든 솔루션은 파일을 다른 로컬 사용자 ( "staff"그룹에 속하고 분명히 "o"/ others 그룹에 속함)에게 공개합니다. 그런 다음 이러한 사용자는 콘텐츠의 일부인 경우 웹 구성 파일 및 스크립트에서 DB 구성, 소스 코드 또는 기타 중요한 세부 정보를 자유롭게 찾아보고 액세스 할 수 있습니다. 이것이 문제가 아니라면 반드시 더 간단한 솔루션 중 하나를 사용하십시오.


3
chmod go+rx DIRls가 권한 오류 발생을 중지하기 전에 / Users / username 디렉토리 수준에서 x 플래그 외에 읽기 액세스 권한을 부여해야했습니다 . 이유가 궁금하세요?
bhavinb

1
@mike, 모든 파일과 디렉토리는 여전히 귀하 (사용자)가 소유하며 쓰기 가능합니다. chgrp는 "_www" 그룹 만 파일을 읽을 수 있도록 허용 합니다.
dkamins 2013 년

2
웹 사이트 스크립트가 자신의 폴더를 만들고 webroot 내에 자신의 파일을 작성하기를 기대하는 시스템의 경우 (많은 CMS와 마찬가지로) _www 그룹에 쓰기 권한을 부여해야했습니다. 따라서 마지막 단계는 chmod -R g+rwx ~/my/web/root. 이의를 제기하거나 @dkamins를 수행하는 더 나은 방법은 무엇입니까?
Jpsy 2014-06-25

1
@Jpsy 앱이 자체적으로 작성해야하는 경우 제대로 작동합니다. 다른 코드가 _www (그리고 CMS 코드를 악의적으로 변경할 수 있음)로도 실행되는 경우 다른 잠재적 인 보안 문제가 발생하므로주의하십시오. 쓰기 가능 (g + w)을 더 깊은 하위 디렉토리로 제한 할 수 있다면 더 좋습니다.
dkamins jul.

1
이것은 이제 몇 년이 지났고 시간이 흐르고 OS X는 기본 Apache 서버가 작동하는 방식을 때때로 변경하는 것을 좋아합니다. 따라서이 솔루션이 여전히 작동하는 동안 OS X 자체를 사용하는 대신 로컬 VM을 만들어 앱을 테스트하는 대체 솔루션을 강력히 권장합니다. 참조 : vagrantup.com
dkamins 2014

30

터미널이 정말 마음에 들지 않는다면 dkamins를 수행하는 GUI 방법은 다음과 같습니다.

1) 사용자 홈 디렉토리 ( ludo 는 내 것임 )로 이동 하고 File 메뉴 에서 Inspector에서 Get Info cmdI 를 선택합니다 .

정보 창 공유 및 권한 섹션 가져 오기

2) [+] 기호 를 alt/option클릭 하여 _www 그룹을 추가하고 읽기 전용으로 권한을 설정합니다 .

정보 가져 오기 강조 표시된 사용자 및 그룹 추가 및 강조 표시된 World Wide Web 서버

  • 따라서 사용자 홈 폴더 (& 하드 디스크)의 루트에 개인 정보를 저장하지 않는 것을 고려하십시오 (좋은 방법)!
  • ** 모든 사람 ** 그룹에 ** 읽기 전용 ** 권한이 있지만 AirDrop 이후 ** / Public / Drop Box ** 폴더는 거의 쓸모가없는 경우이 단계를 건너 뛸 수 있습니다.

3) 사용자 사이트 폴더 의 정보 가져 오기 검사기를 표시하고 2 단계를 재현 한 다음 기어 작업 하위 메뉴 에서 포함 된 항목에 적용 ...을 선택합니다 .

정보 가져 오기 작업 하위 메뉴 포함 된 항목에 적용 ... 강조 표시됨

Voilà 3 단계 및 GUI 유일한 방법 ...


2
여기서 나를 도와주지는 않았지만 ALT + [+]속임수 에 대해 알아서 좋았습니다 . 감사.
Tom

1
이는 지금까지 가장 좋은 방법입니다, ALT + 클릭 쇼 적절 _www 사용자
CoolArts

게스트 파일 공유가 활성화되어 있거나 악성 PHP 스크립트가 설치된 경우에 해당됩니다. 모든 사람이 "읽을 수있는"Public 및 Sites 폴더 만 있는지 확인하십시오. 3 단계는 "Sites"폴더에만 적용됩니다… 따라서 일반적으로 다른 폴더는 변경하지 않아야합니다…
llange

이것은 필요하지 않습니다. _www는 everyone 그룹에 있습니다.
DarkNeuron

이 alt [+]에 대해 알아두면 좋습니다! Thx
Remi Grumeau 16.11. 24.

12

나는 이것이 오래된 게시물이라는 것을 알고 있지만 Mountain Lion (10.8)로 업그레이드하고 비슷한 문제를 겪고있는 모든 사람 FollowSymLinks에게 {username} .conf 파일 (/ etc / apache2 / users /에 있음)에 추가하면 나에게 트릭이 생겼습니다. 따라서 파일은 다음과 같습니다.

<Directory "/Users/username/Sites/">
  Options Indexes MultiViews FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>

내가 사용하지 않는 사용자 "git"을 만들었고 그 디렉토리에서 편집 할 수있는 모든 것이있었습니다 (git.conf). 사용자 git에 대해 위에서 설명한대로 파일을 업데이트하면 내가 설정 한 디렉토리가 아파치에 의해 올바르게 제공되었습니다. 내 사용자 git은 생성 된 디렉토리 또는 아파치와 관련이 없기 때문에 이것은 의미가 없습니다.
ktamlyn 2013 년

9

2 개월 된 실이지만 결코 늦지 않는 것이 좋습니다! 10.6에서 웹 서버 문서 폴더를 다음과 같이 설정했습니다.

owner:root
group:_www
permission:755

_www는 Mac OS X에서 apache를 실행하는 사용자입니다. 그런 다음 관리자 그룹에 대한 전체 권한을 허용하는 ACL을 추가했습니다. 이렇게하면 루트로 인증 할 필요없이 관리자 사용자로 변경할 수 있습니다. 또한 웹 서버가 폴더에 쓸 수 있도록 허용하려면 간단히 chmod를 775로 설정하여 root : _www 이외의 모든 사람에게 읽기 / 실행 권한 만 남겨두면됩니다 (적용한 ACL 제외).


소유자를 'root'로 설정할 필요는 없지만 무해합니다. 로컬 사용자가 모든 웹 콘텐츠를 검색하고 읽을 수 있도록하는 o + rx perms는 확실히 필요하지 않습니다 (DB 암호가있는 구성 포함)
dkamins

1
(보안에 대해 더 편집증적인 사람들에게 흥미로울 수있는이 답변의 훨씬 더 복잡한 버전 인이 질문에 대한 제 답변을 참조하십시오.)
dkamins

터미널에서 우리는 내가 워드 프레스는 자신의 미디어 업로드를 쓸 수 있도록 원하는 (자신의 파일 권한에 관한)와 함께 설치되었다 예를 들어 워드 프레스에 대한 어떤보고 어떻게 ...
도착

5

내 10.6 시스템에서 :

vhosts folder:
 owner:root
 group:wheel
 permissions:755

vhost.conf files:
 owner:root
 group:wheel
 permissions:644

1
좋아, 스티브에게 감사하고 웹 파일 자체에 대해? / Library / WebServer / Documents / Library / WebServer / Documents / [파일] / Library / WebServer / Documents / [디렉터리]
Fo.

0

나를위한 사용자 소유자는 admin 사용자이고 그룹은 _www이며 dir 및 파일에 대해 775로 설정된 권한으로 작업합니다. 664


0

Catalina 업데이트 / 데스크톱 권한

나는 macOS에서 일년에 한 번 이것을 발견합니다. 저는 보통 데스크탑에서 폴더를 호스팅하기 위해 apache2를 사용합니다.

desktop폴더에 대한 액세스 권한을 부여하려는 경우 httpd가 모든 폴더에 액세스 할 수 있도록 허용하려면 다음을 따라야합니다. https://apple.stackexchange.com/a/373139/353465


-3

먼저 터미널을 열고 웹 서버 디렉토리로 이동하십시오.

cd /Library/WebServer/Documents

다음이를 입력하고 당신이 할 것입니다 당신이 줄 것입니다 readwrite허가

sudo chmod -R o+w /Library/WebServer/Documents

이것은 확실히 작동합니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.