2

ループデバイスをマウントするためのシェルスクリプトを作成しようとしていますが、このスクリプトにスティッキービットを割り当ててuid(root)として実行しています(これはサーバー上の他のユーザー向けです)問題は、実行できないように見えることですその前にsudoを使用せずに「mount」コマンド。ルートアカウントにいるときは、「mount」コマンドを問題なく実行できるので、でスクリプトを設定することで実行できると思いましrws-r_x-r_xた。

スティッキービットを使用するという概念を誤解していますか?または他の方法はありますか?

サーバーはUbuntu10.04で実行されています

4

1 に答える 1

3

setuidあなたはビットを意味します、1つではありませんsticky。カーネルはスクリプトのsetuidビットを尊重しません。 詳細な説明については、この投稿を参照してください。要約は次のとおりです。要点は、スクリプトのsuidは安全ではないということです。*カーネルはスクリプトを読み取って実行し始めますが、とを見て、#!/path/to/interpreter解釈する必要があると判断します。次に、スクリプトの「実行」を直接キャンセルし、指定されたインタープリターを呼び出して、スクリプト名を最初の引数(およびその後のすべての後続の引数)として渡します。この場合、UIDの設定が安全でない理由は、攻撃者が新しいUIDを設定するカーネルとファイルを読み取るインタープリターの間で実行されるスクリプトを変更する可能性があるためです。

*:他の投稿でperlは、スクリプトをsuidできるように処理しています。


手元にある実際の取り付けの問題について /etc/fstab/は、オプションに線を追加して含めuserます。

于 2012-03-02T03:14:25.483 に答える