1

AWS で実行されている Amazon (AMI) Linux EC2 インスタンスがあります。Web URL (CGI スクリプト) を介して呼び出されたときにディレクトリを作成する perl スクリプトを作成しています。

ただし、ブラウザがスクリプトを実行しているため、ユーザー apache は perl スクリプトを実行しています。Apache は sudo を使用せずに mkdir コマンドを実行することを許可されていないため、作成されるディレクトリはありません。

スクリプトのアクセス許可をブラウザー経由で実行 (755) に変更しましたが、mkdir コマンドはどれも機能しません。

perl スクリプト内で sudo コマンドを使用してみましたが、うまくいきません。ただし、「cd」などの非 sudo コマンドはすべて機能します。

誰かがこの問題を解決する方法を知っていれば、私はそれを感謝します.

4

1 に答える 1

2

検索で答えを見つけました。

最初に行う必要があるのは、現在のユーザーの tty を無効にすることです。私の Web ブラウザーは、サーバー上でユーザー 'apache' として何でも実行します。

だから私の /etc/sudoers ファイルに追加しました

デフォルト:apache !requiretty

また、sudoパスワードを必要とせずにApacheに使用させたいコマンドのリストを作成しました

Cmnd_Alias APACHE = /bin/mkdir, /bin/rmdir Apache ALL=(ALL) NOPASSWD: APACHE

これにより、パスワードを必要とせずに、特定の sudo コマンドのみが Web サーバーで実行できるようになります。

注: visudo コマンドを使用してのみ /etc/sudoers ファイルを開きます...通常の vim または nano だけを使用してファイルを開かないでください。保存してエラーが発生すると、マシンが **** アップし、必要になる場合があるためです。 sudo コマンドが実行されないため、まったく新しいサーバーを作成します。

visudo を使用してエディターを指定できます。

EDITOR=ナノビジュアル

于 2014-04-24T20:36:24.440 に答える