Apple の脅威の通知と金銭目当てのスパイウェアへの対策について

macOS 14.4.1 -「外付け HDD」内 index.html にアクセスできません

OS標準のhttpdにて「外付けHDD」内index.htmlにアクセスできません、アクセス権限について教えてください

アクセス権限設定に関して基本的なことを質問しているかもしれません。

どうしても解決できず、この度のお願いとなりました。

こんな事!とご笑止頂きながら、ご教授いただけますと幸いです。

宜しくお願い申し上げます。


【現象】

(1) Mac内臓HDD「/Users/myName/WEB/htdocs/local.company.co.jp/index.html」と

(2) 外付けHDD「/Volumes/G-DRIVE_Master/local.company.co.jp/index.html」にて動作比較しています。


(1)は、問題なくコンテンツが表示されますが、

(2)は、「403 Forbidden : You don't have permission to access this resource.Server unable to read htaccess file, denying access to be safe」となり、表示できません。


【利用環境】は、

MacBook Pro 2023/11、Sonoma14.4.1

Apache環境は、OS標準となります。


外付けHDDは、

MacBookPro本体USB-Cへ接続のハブ「CalDigit/TS4」へ

「SunDisk Professional 4TB ArmorATD」接続しています。


仕事の制約上「XAMPP」をインストールしています。

「DocumentRoot」は、"/Applications/XAMPP/htdocs"としています。

このフォルダに、上記(1)(2)のエイリアスを切ってアクセスするようにしています。

「/Applications/XAMPP/htdocs/local.company.co.jp」


【試したこと】

1) httpdの設定内容の見直し

  Windows環境では、同様にシンボリックリンクを張って環境を整え利用しています。

  この度のMacの環境も、内臓HDDだと動作しますので、設定は問題ないかな、と考えています。


 > http.conf

  User myName 明記


 > httpd-vhost.conf

  <VirtualHost *:80>

  DocumentRoot "/Applications/XAMPP/htdocs/local.company.co.jp"

  ServerName local.company.co.jp

  <Directory "/Applications/XAMPP/htdocs/local.company.co.jp">

  #

  Options Indexes FollowSymLinks Includes ExecCGI

  AllowOverride All

  #

  Require all granted

  </Directory>

  </VirtualHost>


2) 「.htaccess」ファイルの見直し(パーミッション:664)

  #

  <Files ~ "^\.(htaccess|htpasswd)$">

  deny from all

  </Files>

  Options -Indexes

  DirectoryIndex index.html index.php

  order deny,allow

  Require all granted

  #


2) ルートフォルダからの「アクセス権限設定及び確認」「755」を確認

3) システム設定 > プライバシーとセキュリティ > フルディスクアクセス httpd 存在確認

4) 外付けHDDのマウントポイントの変更「/Volumes」から「/Users/myName/wevDev」

  検索結果記事に、「/Volumes」に関するアクセス制限の記事を見たため、試してみました。


上記内容に関して、検証対象の(1)と(2)に差分はありません。

外付けHDDの場合にだけ「403 Error」となります。


Macの環境設定にて何か他に、内臓HDDと外付けHDDのファイルシステムに関して、

アクセス権限を設定できる事はありますでしょうか?


誠に恐縮です、ご教授いただけますと幸いです。

宜しくお願い申し上げます。

* タイトルを短縮しました。 Apple Inc.

MacBook Pro (M3 Pro, 2023)

投稿日 2024/04/27 18:01

返信
返信: 10

2024/04/27 22:46 SuperNaoT への返信

>当該ファイル無しの場合は確認済みです。

そうですか・・・


となると、ユーザー.confが生きてない?のかなぁ。


興味あったので、USB外付けのSDカード(APFS)上にSitesというフォルダ作って中にindex.htmlを入れて、そのSitesを自分のHOMEページ直下にln-s して、BというフォルダのLINKを作ってみました。


自分のユーザ.confのOptions に、FollowSymLinks を追加して・・・・

sudo apachectl stop & start



アクセスできました。。。。(^^;


ユーザ.confのFollowSymLinksが有効になってない??


はて?? (Monterey 搭載のApacheですが。 )


ご参考までに。


追記:

> http.conf

 User myName 明記


?? これ、元は User _www ですよね? これってイジるとこですか??(私はイジってない)


あと、ユーザ.confを有効にするには、

User home directories を有効化し、

LoadModule userdir_module libexec/apache2/mod_userdir.so

も有効にしないといけないんじゃないかな?

2024/04/27 21:15 はに への返信

はにさん

早速のご教授、ありがとうございます。


ご指摘の記事、私も確認しております。

私の検証項目3にて試して見ております。

残念ながら現象に変化はありませんでした。


XAMPPのhttpdを利用する場合は、同じ登録する方が良いですよね。 こちらでも検証して見ましたが同じ状況だったので、XAMPPに因る現象か切り分けてOS標準のhttpd利用で検証しています。


ありがとうございます。

引き続き宜しくお願い致します。

2024/04/28 10:53 SuperNaoT への返信

私も試してみました。

単に/Library/Webserverを外付けssdにコピーして、httpd.confのDocument Rootを少し変更しただけですけど。

外付けにコピーしたのは元々index.html.enとなってたもので、デフォルトのものとは少し違いますので、どちらを見てるか分かるようにしてます。

safariでhttp://localhostとすれば問題なく外付けのindex.htmlを見ることができます。

httpdのフルディスクアクセスをオフにするとForbiddenになりますので、外付けにコンテンツを置く場合にはフルディスクアクセスは必須です。

私も、User _wwwはmacOSのhttpdを動かすのに用意されてる特別なユーザですし、別にapacheを起動する際には、sudo apachectl startしてますので、ユーザ権限で行ってるわけではありませんので、

User myName 明記

に変える必要はないと思います。むしろ変えると、例えば、用意されてるWebserverディレクトリにアクセスできなくなるとか、おかしなことになりかねないと思います。



2024/04/28 13:55 亀どん への返信

亀どんさん


亀どんさんの環境にて、実検証を行っていただけたの事、

貴重なお時間をお取り下さり、本当にありがとうございます。

とても嬉しく拝見いたしました。


※ 先ず、何よりもうれしいのは、

 「現象発生が私の環境に依存している」

 「MacBookProでも環境を正しく設定すれば実現出来る」

  と言う事が分かった事です。


私もSVR4の時代から同様の環境を触ってきたので、

今回の現象の原因がどうしても分からずに、

「何かしらMAC固有の設定が必要」なのでは?と考えて居ました。


出口が見えてきたので、とても嬉しく改めて感謝申し上げます。



これからは、

亀どんさんの検証された環境との差分を一つ一つ確認し、

自分の環境を確認してみます。


【差分について】

1シンボリックリンクの所在位置

 > 自分   :/Applications/XAMPP/htdocs/

 > 亀どんさん:~/B


2シンボリックリンクの作成方法

 > 自分   :SymbolicLinker2.2 と言うアプリ

 > 亀どんさん:ln -s コマンド


3.httpdコンフィグ

 > 自分   :httpd.conf・include ./extra/httpd-hosts.conf としている

        (Options Indexes FollowSymLinks Includes ExecCGI)

 > 亀どんさん:httpd.conf・include /private/etc/apache2/other/userName.conf としている

        (Options FollowSymLinks)


【ご報告とご教授のお願い】

1「http.conf」内のUser明記ですが、

 基本的にはご指摘の通り「User _www」で問題ないと考えて居ます。

 海外のサイトだったか忘れましたが関連した記述を見つけ、

 藁にもすがる思いで追記しています。


 ※ 今はコメントアウトしています


2「ユーザ.conf」についてですが、

 申し訳ございません、httpdについてはあまり詳しくない為に情けない質問に成ります。


 私の「httpd.conf」には、

 > LoadModule userdir_module libexec/apache2/mod_userdir.so 有効

 > Include /private/etc/apache2/extra/httpd-vhost.conf としています。


 ご教授頂きましたコメントの、

「あと、ユーザ.confを有効にするには、User home directories を有効化し」

 とありますが、

「/private/etc/apache2/users/*.conf」を include しているだけの様に思えます。

「/private/etc/apache2/extra/httpd-vhost.conf」は、

 単純に include するだけでは反映されないのでしょうか?


 ※「/private/etc/apache2/extra/httpd-vhost.conf」を、

   ご教授頂きました設定を確認・実装し

  「ユーザ.conf」に切り替えて検証してみました。

   結果は残念ながら変わらずでした。

2024/04/28 14:03 はに への返信

はにさん


貴重なお時間をお取り下さり、本当にありがとうございます。

とても嬉しく拝見いたしました。


亀どんさんにもお礼を申し上げましたが、

皆様のお力添えにて出口が見えてきたので、とても嬉しく感じて居ります。

本当にありがとうございます。



これからは、

皆様の検証された環境との差分を一つ一つ確認し、

自分の環境を確認してみます。


【差分について】

1シンボリックリンクの所在位置

2シンボリックリンクの作成方法

3.httpdコンフィグ


【ご報告】

「http.conf」内のUser明記ですが、

 ご指摘の通り「User _www」必須だと思います。


 ※ 「User myName」については、

   「User _www」に加えて記載していましたが、

   今はコメントアウトしています。


現象発生の原因が「私の環境にある」事が分かり、

少し嬉しく思って居ります。


これからは、皆様の環境との差分を一つ一つ確認して検証して参ります。

引き続き、宜しくお願い致します。

2024/04/28 20:22 SuperNaoT への返信

【解決】できました!


亀どんさん

はにさん


解決いたしました!

色々とご教授くださり、誠にありがとうございました。

また、貴重なお時間をお取り頂きました。

申し訳ございませんでした。


【対処】

システム設定 > プライバシーとセキュリティ > フルディスクアクセス へプロセスを再登録いたしました。

その結果、外付けHDDも参照出来る様になりました。


【原因】

XAMPPのエラーログから、

インストールしたXAMPP環境が壊れていたと想定しました。

「Mac標準/httpd」にて解決後も、

「Invalid argument」が発生し、XAMPPではアクセスできません。


一方で、自分の落ち度もあります。

ここ一月の間「XAMPP/httpd」と「Mac標準/httpd」を交互に稼働し、

テンパっていたために、各種設定内容と起動させているプロセスを混同し、

さらに確認内容も疎かでした。


お時間をお取り頂いてしまいました。

誠に申し訳ございません。


【切り分け】

亀どんさんの環境に合わせてみました。

1~/siteLink として外付けHDDパスを、「ln -s」にてリンク切り直し → NG

2「httpd.conf」の「vertual host」利用環境を、「userName.conf」利用環境に切り替え → NG


次に、はにさんにご指摘いただいていた、「フルディスクアクセス」から、

1既存httpd全てを削除

2「/usr/sbin/httpd」を再登録 → その結果、外付けHDDを参照出来る様になりました。

3XAMPP環境の「/Applications/XAMPP/xamppfiles/bin/httpd」を登録し直しましたが、こちらは相変わらずNGです。


当初の「外付けHDD内index.html」にはアクセスできる様になりました。

XAMPP環境については、再度見直し(再インストールも含め)いたします。

当投稿について、クローズとして頂ければと思います。


ありがとうございました。

2024/04/27 20:15 SuperNaoT への返信

こんばんは。


パッとみて気がついた点、私ならどうするか考えてみました。


外付けSSDのフォーマットは?(APFS?)


① .htaccessを削除(renameしておく)したらOKになる??

② .htaccess を Options -Indexes +FollowSymLinks にしたらうまくいく?


あたりからやってみるかなぁ。。。





2024/04/27 20:55 SuperNaoT への返信

英語ですが、同じ質問があります。

httpdをフルディスクアクセスに登録しておけば、外付けのコンテンツにもアクセスできるということです。

https://stackoverflow.com/questions/67478747/osx-apache-web-pages-on-external-drive-dont-work

ひょっとしたら、今回の場合は、XAMPPも登録する必要があるかも。

2024/04/27 21:08 亀どん への返信

亀どんさん

早速のご教授ありがとうございます。

設定内容の変更は試して居ませんが、当該ファイル無しの場合は確認済みです。

残念ながら状況変わらずでした。

少しお時間ください。

設定の変更については試して見ます。

ありがとうございます。

macOS 14.4.1 -「外付け HDD」内 index.html にアクセスできません

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple ID を使ってご参加ください。