Problemstellung: Was ist die eleganteste und robusteste Methode, um zu testen, ob die Cygwin- mintty
bash
Sitzung "Als Administrator ausführen" lautet?
Warum gerade? Ich habe in der Regel mehrere mintty
Terminals geöffnet, wenn ich Windows benutze ( mintty
keine Registerkarten). Am umständlichsten ist es, wenn ich ein Terminalfenster finden muss, das ich durch Klicken mit der rechten Maustaste auf "Als Administrator ausführen" gestartet habe, wenn ich beispielsweise ping
eine einmalige Aktion ausführen möchte . Ich möchte die "Als Administrator ausführen" -Eigenschaft der Terminalsitzung visuell anzeigen (indem ich die bash
Shell-Eingabeaufforderungsvariable PS1
in meiner Startdatei ändere ~/.bashrc
).
Einige schnelle mögliche Lösungen:
- Ich kann den Wert einiger Umgebungsvariablen vergleichen. Beim schnellen Betrachten der
env
Ausgabe gibt es ziemlich viele Unterschiede. Es ist jedoch schwer zu sagen, welche Version in Bezug auf die Portabilität auf einen anderen Windows-Computer (möglicherweise mit einer anderen Windows-Version) am zuverlässigsten ist. id
,id -Gn
zeigt genauer gesagt verschiedene Gruppen, wenn sie als Administrator ausgeführt werden. In meinem Windows 7-Computer habe ichAdministrators
undroot
Gruppen zur Liste hinzugefügt. Auch hier bin ich mir nicht sicher, ob dies tragbar ist.- Ich könnte versuchen, eine Datei an einen Ort zu schreiben, der als normaler Benutzer fehlschlagen würde. Aber ich möchte keine Dateien an fremde Orte schreiben - dies könnte in einigen vorgestellten Szenarien potenziell destruktiv sein (z. B. fehlerhafte Speichermedien), und dies scheint für meinen Geschmack völlig unelegant.
- Ausführen eines Windows-Programms, das durch Rückgabestatus oder Ausgabe angibt, ob der Befehl "als Administrator" ausgeführt wird. Am besten wären einige mit analogem Zweck zu dem des UNIX-
id(1)
Befehls (aber nativ in Windows - oder Cygwin vorhanden, aber ohne zu weit geholte Übersetzung von Windows-Systemkonzepten in POSIX-emulierte Konzepte).
Bessere oder elegantere Vorschläge? Vielleicht bietet cygwin ein spezielles Kommandodienstprogramm an?
Update: 97% Duplikat von /programming/4051883/batch-script-how-to-check-for-admin-rights/ - der Unterschied ist nur hier, bash
anstelle von (IMHO seltsam und archaisch) Windows cmd.exe
. Bitte überprüfen Sie die Antworten und Kommentare dort.
mintty
, die 1. als Administrator ausgeführt wird, 2. eine andere Konfigurationsdatei mit unterschiedlicher Farbe verwendet Einstellungen und 3. verwendet ein alternatives Symbol. Wenn Sie der Öffentlichkeit beschreiben, wie dies zu erstellen ist, werde ich Sie positiv stimmen (es sei denn, Sie geben in Ihrer Antwort an, dass dies nicht innerhalb eines Skripts möglich ist :-).
Foo
gewünschte Benutzergruppe.
sudo
was erforderlich ist, auch wenn Sie als Root-Benutzer ausgeführt werden.