raspbian Busterにてapacheを動かしています。
今、このapacheにてwebdavを使っているのですが、webdav上でディレクトリを作成すると、パーミッションの問題でそのディレクトリにおいては書き込みができません。
作成したディレクトリについても書き込みができるようにするのにはどのようにすればいいでしょうか。
よろしくお願いします。
原因としてわかっていること
apacheの実行ユーザ/グループ
ユーザ :www-data
グループ:www-data
対してwebdavで作成されるファイルの作成者
ユーザ :pi
グループ:root
となる。
→新しいディレクトリにファイルを保存するとき、www-dataユーザが作成しようとするためパーミッションで弾かれる。
実際、新しいフォルダに対して、chmod 777 or chown www-data.www-dataをすると書き込みできるようになる。
やってみたこと
1)apacheの実行ユーザをapache.confを書き換えることによって変えてみる。
apache
1#apache.conf 2User pi 3Group root
→これをすると何故か現在できるファイルでさえも書き込み不可の状態になる。
2)/etc/apache2/envvarsを編集してumask値の変更を試す。
envvars
1#/etc/apache2/envvars 2umask 0000
このあとapacheをstop/startコマンドにて再起動。
おそらくwww-data/www-dataのumaskは変更されたが、作成されるファイルはpi/root作成扱いになっているので、パーミッションは変化ない。(775になっている。)
3)シェルにてwww-dataユーザのumaskを変えてみる
bash
1$ pi@raspberrypi:~$ sudo -u www-data -s 2$ www-data@raspberrypi:~$ umask 0000 3$ www-data@raspberrypi:~$ umask 40000
→何故かはわからなかったけど、何も変化しなかった。
4)シェルにてpiユーザのumaskを変えてみる
bash
1$ pi@raspberrypi:~$ umask 0000
→変わったのはpi/piのumaskだけでpi/rootのumaskは変わらなかった。
5)apacheの実行時のumaskの変更
/etc/systemb/system/apache2.service
を作成。
service
1#/etc/systemb/system/apache2.service 2.include /lib/systemd/system/apache2.service 3[Service] 4UMask=000
と記述。
bash
1# systemctl --system daemon-reload 2# journalctl -n
と実行し有効化
→2)と同様の理由で変化はなかった。
解決法として考えられること
1)pi/rootのumaskを000に変更
2)apacheの実行ユーザをpi/rootに変更
その他あればよろしくお願いします。
現在の設定
apache
1#apache.conf 2#略 3 4User ${APACHE_RUN_USER} 5Group ${APACHE_RUN_GROUP} 6 7#WebdavサーバON 8LoadModule dav_module modules/mod_dav.so 9<Directory home/pi/ROOTDIR> 10 Dav On 11 AuthType Digest 12 AuthName "AuthName" 13 AllowOverride None 14 Options +Includes +Indexes +FollowSymLinks 15 AuthUserFile home/pi/digest/.htdigest 16 SSLRequireSSL 17 Require valid-user 18</Directory>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。