2012-05-02 12 views
2

私は自分のウェブサーバにrootで、私は自分のウェブサイトを管理するためのperlスクリプトを書いていました。ブラウザから呼び出され、このスクリプトは保守のためのユーザーインターフェイスを表示します。私のブラウザからこのスクリプトを起動できるようにするには、ユーザー名とパスワードを入力する必要があります。だから誰も私がこのスクリプトを実行することはできません。cgi-perl-scriptがroot-authorizationを使って作業を行う方法を教えてください。

私は、このボタンをクリックすると、サーバー上のいくつかのファイルの名前を変更します。 perlスクリプトから私はシェルコマンド`mv oldFilename newFilename`を呼び出しますが、何も起こりません。 Apacheのエラーログはこのメッセージを表示:

[timestring] [エラー] [クライアントNNNN] MV:アクセスが拒否されました、リファラ:newFilenameoldFilenameを移動することはできませんリファラ

ファイル名の所有者はrootで、アクセス許可は0644に設定されています(誰でも読むことができ、rootのみが書き込み可能)

この問題の最適な解決策は何ですか?ファイルのアクセス権を0666に変更するよりも良い方法はありますか?私はパーミッションを変更したくないです。 "シェルの親愛なる、ここにrootのパスワードです。"

答えて

4

これは正確な問題ではありませんか? Unixグループが解決しようとしていたことは?ファイルのアクセス許可を0664に設定し、ディレクトリのアクセス許可を0775に設定し、ファイルとディレクトリをWebサーバーのユーザーが属するグループに割り当てます。

+2

システムのすべてのディレクトリを「0775」に、すべてのファイルを「0664」に変更する必要はありません。 –

+0

それは働いた!ありがとうございました! –

1

セキュリティを無視しないでください。 sudoを使用してください。

0

私は、HTMLページとJavaスクリプトでPerl Webサイトを管理しています。すべてのプログラムファイルはrootの所有権で保護されています。

ウェブサイトのユーザ名とパスワードでこのプログラムへのアクセスを制限しても、rootはプログラムchown root:root <full-path-to-your-program-name>を所有し、プログラムファイルはchmod 755 <full-path-to-your-program-name>に保護されている必要があります。

関連する問題