lighttpd
私の場合、Web サーバーのユーザーに、権限を付与して実行する必要がある特定のスクリプトをトリガーさせることは可能ですかsudo
?
lighttpd
ユーザーが権限を持つスクリプトを 1 つだけトリガーできるようにしたいのですsudo
。
スクリプト ( と呼ぶことにします) はcreateFolder.sh
、共有の上位レベルにテンプレートからフォルダーを作成します。ユーザーには共有の上位レベルへの書き込み権限はありませんが、新しく作成されたフォルダー構造への書き込み権限が必要です。したがって、スクリプトはサブフォルダーに適切な権限を設定し、そこで を使用する必要がsudo
あるのです ( chown
、chmod
およびsetfacl
)。
Web インターフェイスを使用する理由は、ユーザーがフォルダー名と正確なフォルダー構造を定義する設定のデータを挿入できるようにするためです。
ユーザーがパスワードなしでを実行できる/etc/sudoers
ようにするには、エントリを追加するだけで済むと思っていました。次のエラーが表示され、私の考えが間違っていたようです。lighttpd
createFolder.sh
sudo: mkdir /var/db/sudo/lighttpd を実行できません: 権限が拒否されました
皆さんは、地元のシステム管理者からいつもの講義を受けていると思います。それは通常、次の 3 つの点に要約されます。
1) 他人のプライバシーを尊重してください。2
) 入力する前によく考えてください。3
) 大いなる力には大いなる責任が伴います。sudo: tty が存在せず、askpass プログラムが指定されていません
スクリプトを常に適切な権限を持つユーザーとして実行するように設定できれば問題は解決しますが、その方法やそれが可能かどうかがわかりません。
ちなみに、私は独学で Linux を学習しましたが、自分の能力に自信はあっても専門家ではないので、常に向上心を持っています。
CentOS 7 ボックスを実行しています。
編集: テキスト ファイルが変更されたときに inotify を使用してスクリプトをトリガーすることで、問題を解決しましたcreateFolder.sh
。正しい回答とそのコメントを参照してください。正しい方向を示していただき、ありがとうございます。
答え1
後者が前者に「プッシュ」するのではなく、通常のスクリプトからルート スクリプトを「プル」する必要があります。 例として、次のようになります。
- テキストファイルに作成されるフォルダのリストをチェックする cron ジョブを作成します。
- lighttpdユーザースクリプトに、そのテキストファイルに目的のフォルダを追加させます。
キューイング/メッセージング システムを使用すると、これをよりエレガントに実行できますが、それはあなた次第です。