Setuid に相当する Windows はありますか?

Setuid に相当する Windows はありますか?

プログラムにそれを実行するユーザーの権限を与えたいのですが、セトゥイドWindows (できれば Windows 7、または少なくとも Windows XP 以降) ではどうですか?

プログラムに、それを実行するユーザーよりも高い権限を与えたい場合はどうすればよいでしょうか? (たとえば、プログラムに Program File への書き込みを許可したいが、ユーザーには許可したくない場合など)。

答え1

簡単に答えると、プログラムを生成したユーザーの権限で実行するために何もする必要はありません。これは Windows システムの標準です。

SetUIDのように、プログラムを全く別のユーザーとして実行するように強制するために、Microsoftはルナスコマンドを使用すると、別のユーザーの資格情報で実行可能ファイルを呼び出すことができます。

さらに、Windows 7 などの UAC 対応システムでは、実行可能ファイルを Shift キーを押しながら右クリックして、別のユーザーとしてプログラムを実行し、必要に応じてそのユーザーの管理者権限を呼び出すことができます。


以下の回答は Sticky に関する元の質問に関連していることに注意してください。

質問に直接答えると、はい、いいえです。機能をエミュレートすることはできますが、アプリケーションはまったく異なります。

Sticky ビットを他の特殊な UNIX 権限 SetUID および SetGID と混同しているのではないかと思います。これらは両方とも、プロセスを呼び出すユーザーに関連してアプリケーションの実行方法に影響しますが、Sticky は影響しません。

Sticky では、たとえユーザーが書き込み権限を持っていてファイルを編集できる場合でも、root または所有者ユーザー以外のユーザーはファイルを削除したり名前を変更したりすることはできません。

詳細な権限ウィンドウ(オブジェクトのプロパティ -> セキュリティタブ -> 詳細設定)では、追加または編集を行うことができます。権限「ユーザー」に対して、権限とCREATOR OWNER権限を付与します。次に、ACL 内の他のすべてのエンティティに対して、同じ権限を取り消します (ただし、拒否はしません)。DeleteDelete subfolders and files

ここに画像の説明を入力してください

これにより、書き込み権限を持つすべてのユーザーが任意のファイルを作成/編集できるようになりますが、ファイルを削除できるのはファイルの所有者のみです。

このアプローチにも Sticky と同じ欠陥があることに注意してください。編集権限を持つすべてのユーザーが 0B でファイルを上書きできるということです。これは概念的にはファイルを削除するのと似ています (多くの人が同じくらい良いと主張しています...)。

幸運を。

答え2

Windows では、対象ユーザーのパスワードを知らないか、この情報をマシンに一度保存しておかないと、別のユーザーとしてプログラムを実行することはできません。


Windows 上のプログラムは、デフォルトでは常に現在のユーザーの権限を使用して実行されます。これは、プログラムがアクセスできるフォルダーや設定にも適用されます。これらの設定は、プログラムまたはフォルダーの [セキュリティ] タブで変更できます。

別のユーザーでプログラムを起動して (たとえば、SHIFT+を押したright-clickまま選択するRun as different userか、単にRun as administrator)、マシン上で管理者権限を持つ別のユーザーの権限を付与することができます。

CMDコマンドを使用してrunasもこれを実現でき、ショートカットに設定してログインを自動化することもできます。

ドキュメントはこちら

例:

runas /user:.\localadmin /savecred notepad.exe

この/savecredパラメータは、ユーザー パスワードがすでにマシンに保存されており、実行時にパスワードが必要ないことをコマンドに伝えます。パスワードは、まずコントロール パネルの資格情報マネージャーに保存する必要があります。

この場合も、他のユーザーのプロファイルを使用してプログラムがロードされることに注意してください。たとえば、AppData に設定を保存したプログラムは、プログラムを実行したユーザーから設定をロードします。

ただし、Windowsサービスは別のユーザーとして実行できます。これは次のように実行できます。

Services.msc コンソール > サービスを選択 > プロパティ > ログオン

関連情報