Windowsで、特定のユーザーに特定のサービスの再起動を許可する
Follow @venividivici830 Windowsで、ユーザーごとに、サービスレベルで操作権限(サービスの開始、停止など)を与える話です。 流れとしては、 scコマンドで、サービスの随意アクセス制御リスト (DACL) に対し、セキュリティ記述子定義言語 (SDDL) 構文で、アクセス制御情報を追加する ことになります。 これにより、あるユーザーはOracleの再起動だけ許可、あるユーザーはTomcatの再起動だけ許可、など、細かい権限設定が可能です。 サーバーのマシン自体の再起動権限は与えられないけど、アプリケーションサーバープログラムや、DBサーバープログラムの再起動だけは許可したい、などのシチュエーションに使えます。 サービスのDACLは、名の通り、サービス単位で権限を制御するためのACLです。 SDDLは、ACLを文字列で記述するための構文です。 「;」で各フィールドを区切る形です。詳細については、 こちら 。に公式ドキュメントg サービスの操作権限をユーザーレベルで制御するには、最低限、下記のように3つのフィールドを設定すれば良いようです。 (許可 (A)/拒否 (D);;アクセス許可の文字列;;; SID ) ;;や;;;って何だよ、と最初見た時思いましたが、フィールドが空で、デリミター(;)だけが並んでいるだけですね。 許可 (A)/拒否 (D) には、サービスに対する特定の操作を 許可する場合はA、拒否する場合はD を設定します。 (許可または拒否する)サービスに対する特定の操作は、 アクセス許可の文字列 で設定します。 このページ に、 アクセス許可の文字列 に設定できる値が一覧されています。 再起動の場合は、RP(Start)とWP(Stop)の操作を許可すれば良いので、RPWP を指定すれば良いです。 SID は、ユーザーオブジェクトに固有のIDで、要はユーザーのIDです。権限を付与したいユーザーのSIDを指定します。 権限を付与したいユーザーで、 コマンドプロンプトからwhoamiコマンドをuserオプション付きで実行することにより、SIDを取得できます。 > whoami /user WIndowsにもwhoamiコマンドがあったんですね。知らなかった。 まと...