問題文: Cygwin mintty
bash
セッションが「管理者として実行」されているかどうかをテストする最もエレガントで堅牢な方法は何ですか?
なぜ具体的に?私は通常、mintty
Windowsを使用するときにいくつかのターミナルを開いています(mintty
タブはありません)。最も厄介なのは、たとえば、実行したいときping
や他の1回限りの手順で「管理者として実行」を右クリックして開始したターミナルウィンドウを見つける必要があるときです。ターミナルセッションの "管理者として実行"の状態を視覚的に示したい(起動ファイルのbash
シェルプロンプト変数を変更することにより)。PS1
~/.bashrc
いくつかの迅速な潜在的ソリューション:
- いくつかの環境変数の値を比較できます。
env
出力をすばやく見ると、非常に多くの違いがあります。ただし、別のWindowsマシン(おそらく異なるバージョンのWindowsを実行している)への移植性の観点から、どちらが最も信頼できるかを判断するのは困難です。 id
、id -Gn
管理者として実行した場合、より具体的には異なるグループが表示されます。私のWindows 7マシンでは私が持っているAdministrators
とroot
グループをリストに追加します。繰り返しますが、これが移植可能かどうかはわかりません。- 通常のユーザーとしては失敗する場所にファイルを書き込もうとすることができました。しかし、私は奇妙な場所にファイルを書きたくはありません-これはいくつかの想像されるシナリオでは潜在的に破壊的である可能性があります(たとえば、記憶媒体の故障)。
- コマンドが「管理者として」実行された場合に、戻りステータスまたは出力で示すWindowsプログラムを実行します。UNIX
id(1)
コマンドと似た目的を持つ(ただし、WindowsまたはCygwinにネイティブに存在するが、Windowsシステムの概念からPOSIXのエミュレートされた概念への変換があまり得られない)のが最善です。
より良いまたはよりエレガントな提案はありますか?おそらく、cygwinはこの目的専用のコマンドユーティリティを提供していますか?
更新:https : //stackoverflow.com/questions/4051883/batch-script-how-to-check-for-admin-rights/の97%の複製- bash
(IMHO奇妙で古風な)Windowsの代わりにここに違いがありますcmd.exe
。そこで回答と解説を確認してください。
mintty
。1。管理者として実行します。設定および3.代替アイコンを使用します。これを作成する方法を一般大衆に説明する場合、私はあなたに賛成票を差し上げます(あなたの答えで、スクリプト内でそれを行うことはできないと言わない限り:-)。
Foo
ユーザーグループを含む任意のグループにすべてのアクセス許可を提供することもできます。
sudo
rootユーザーとして実行している場合でも、それが必要であると考えてください。