あっちもこっちもapacheユーザー、困る

インターネットのいいところはありとあらゆることが遠隔操作でできるってところだな。
ちょっと納得いかんかもしれないけど、HTTPも遠隔操作といえばそうだ。
あれは、遠くから「○○くれ」というと、「はいよ、じかじかかくかく」という仕組みだからな。
まぁでも今言ってるのはSSHのことだが。あれは操作してるって感じするからな。
で、今日はちょっと常々気になってたことを修正してみました。
というのはpublic_htmlに個人用コンテンツがおけるわけだけど、
これってよく考えると不気味なところが見えてきた。
まず、故あってPHPは全面開放してるわけだけど、PHPはApacheのユーザー、すなわちapacheユーザーが操作する。
ここまではいいんだけど、それって誰の作ったファイルでもapacheユーザーが操作する言う意味で。
で、PHPはファイルを読み書きする機能がある。
すると、こんなことができそうな気がする。
/var/www/html/log.txtという管理者が設置してPHPのスクリプトがログを書き込むものを作ってあった。
すなわち少なくともapacheユーザーには書ける権限は与えてある言うことだ。
で、taroユーザーのpublic_htmlに、/var/www/html/log.txtをリセットして「消した」という文字を書くスクリプトを書いた。
すると、taroユーザーがおいたスクリプトでも実行するのはapacheユーザー。
すなわち、アクセスする権限はあるからできるほうが自然。
実験してみたけどそれはあたってた。
じゃあどうするかなと調べるとPHPにセーフモードというのがあるのだと。
これは共有サーバーのこの問題に対する簡単な解決策。
簡単に言うと扱うファイルはスクリプトの所有者と同じ所有者じゃないとだめ。
緩和条件をつけるとグループが同じでもいい。
一応問題がおきたのでグループまで緩和してるけど。
それにしてもトリッキーなもんだな。
なんでって、操作するユーザーが同じだから単に自重してるだけで実は操作できる権限はあるんだね。
もっともapacheユーザーはログインできないからそういう意味で脅威はないけどね。
その他数件の修正をして、多少は共有Webスペース対策はできた。
あとはpublic_htmlフォルダをapacheグループに編入してパーミッションを抑えることか。
いかにしてやればいいんだろうな。
とりあえず安心して扱える環境ができればそれに越したことはない。