UNIXユーザー(sudo!を除く)がスクリプトをrootとして実行するように制限するにはどうすればよいですか?
ベストアンサー1
sudo
私が知っている唯一の別の方法はsetuidを使用することです。これは、ディスク上のプログラムにいくつかのビットを設定できるUnixに組み込まれたメカニズムで、誰かがプログラムを実行するたびに、実行可能ファイルがユーザーがファイルを実行するのではなくファイルの所有者として実行されるようにします。
#!/bin/...
ただし、この機能は通常、上部にshebang()が必要なスクリプトやプログラムでは機能しません。ファイルでこのビットが有効になっている場合は、ファイルシステムに次のように表示されます。
-rws------ 1 saml saml 3354099 Oct 28 16:07 someapp
次のようにこのビットを有効にするプログラムを設定できます。
$ chmod u+s someapp
ただし、ビットが有効になっている場合でも無視され、これが意図されていることを理解していないユーザーを狂わせます。通常、セキュリティ上の理由からshebangを使用するシェルスクリプトまたはプログラムはこの方法で実行できません。
マニュアルページ(credentials
&capabilities
)でこれに関するいくつかの内容を扱っています。
したがって、一般的にこの言葉を聞きたくない場合でも、最良の方法はを使用することですsudo
。