Opis problemu: Jaki jest najbardziej elegancki i niezawodny sposób na sprawdzenie, czy mintty
bash
sesja Cygwin to „Uruchom jako administrator”?
Dlaczego konkretnie? Zazwyczaj mam kilka mintty
otwartych terminali podczas korzystania z systemu Windows ( mintty
nie ma zakładek). Najbardziej niezręczne jest, gdy muszę znaleźć okno terminala, które uruchomiłem, klikając prawym przyciskiem myszy „Uruchom jako administrator”, gdy na przykład chcę uruchomić ping
lub inną jednorazową procedurę. Chciałbym wskazać wizualnie „uruchom jako administrator” sesji terminala (zmieniając bash
zmienną zachęty powłoki PS1
w moim pliku startowym ~/.bashrc
).
Kilka szybkich potencjalnych rozwiązań:
- Potrafię porównać wartość niektórych zmiennych środowiskowych. Po szybkim spojrzeniu na
env
wynik jest dość wiele różnic. Trudno jednak stwierdzić, która z nich jest najbardziej niezawodna pod względem możliwości przenoszenia na inny komputer z systemem Windows (być może z inną wersją systemu Windows). id
, dokładniejid -Gn
pokazuje różne grupy, jeśli są uruchamiane jako administrator. Na moim komputerze z systemem Windows 7 mamAdministrators
iroot
grupy dodane do listy. Ponownie nie jestem pewien, czy jest to przenośne.- Mógłbym spróbować zapisać plik w lokalizacji, która zawiodłaby jako normalny użytkownik. Ale nie chcę zapisywać żadnych plików w dziwnych miejscach - w niektórych wyobrażonych scenariuszach może to być potencjalnie destrukcyjne (np. Awaria nośników pamięci) i wydaje mi się to zupełnie nieeleganckie.
- Uruchamianie jakiegoś programu Windows, który wskaże status powrotu lub wyjście, jeśli polecenie zostanie uruchomione „jako administrator”. Najlepsze byłyby takie, które mają analogiczny cel jak
id(1)
polecenie UNIX (ale natywnie istnieje w Windows - lub Cygwin, ale bez zbyt daleko idącego tłumaczenia koncepcji systemu Windows na emulowane przez POSIX).
Jakieś lepsze lub bardziej eleganckie sugestie? Być może cygwin udostępnia narzędzie poleceń przeznaczone do tego celu?
Aktualizacja: 97% duplikat /programming/4051883/batch-script-how-to-check-for-admin-rights/ - różnica polega tylko na zastosowaniu bash
zamiast (dziwnego i archaicznego systemu Windows) cmd.exe
. Sprawdź tam odpowiedzi i komentarze.
mintty
tego 1. działa jako administrator, 2. używa innego pliku konfiguracyjnego o różnych kolorach ustawienia i 3. używa alternatywnej ikony. Jeśli opiszesz ogółowi społeczeństwa, jak to stworzyć, dam ci głos uprzywilejowany (chyba że w odpowiedzi odpowiesz, że nie można tego zrobić w skrypcie :-).
Foo
grupy użytkowników, jeśli chcesz.
sudo
co jest wymagane, nawet jeśli działasz jako użytkownik root.