- ベストアンサー
Linuxの場合はCGIの書き込み命令が必要なのでしょうか?
PerlのCGIをWindowsとLinuxで作成しています。 Windowsでは素直に書き込めますが、Linuxではエラーもなくあたかも正常なように終了しますが、ファイルが書き込まれていません。 open(OUT, "> test.jpg"); binmod OUT; print(OUT $file); close(OUT); Windowsはバイナリ対策でbinmodをつけるおまじないが必要ですがLinuxの場合はCGIの書き込み命令が必要なのでしょうか? ディレクトリ自体を書き込み権限付ければ安直ですが、 ディレクトリのパーミッションはそのままにして書き込みを行いたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2さんの回答通りです。 そもそも、権限つけるのが安直、と言う考え方が間違ってます。権限がなければ書き出し不可能なのは当たり前で、ディレクトリ上にファイルを作成する(ディレクトリを変更する)には、ディレクトリにwrite権限をつけなければならないのです。セキュリティを心配される気持ちもわかりますが、、、 httpd(apache等)の設定によりますが、一般的にはhttpdがファイルアクセスする際のユーザはnobodyになり、グループは一般ユーザとは異なるのが普通ですので、ディレクトリのモードは707にしておけば良いでしょう。