Dichiarazione del problema: qual è il modo più elegante e robusto per verificare se la mintty
bash
sessione Cygwin è "Esegui come amministratore"?
Perché, in particolare? In genere ho diversi mintty
terminali aperti quando si utilizza Windows ( mintty
non ha schede). Il più imbarazzante è quando ho bisogno di trovare una finestra terminale che ho iniziato facendo clic con il tasto destro del mouse su "Esegui come amministratore" quando, ad esempio, voglio eseguire ping
o un'altra procedura singola. Vorrei indicare visivamente "Esegui come amministratore" della sessione del terminale (modificando la bash
variabile del prompt della shell PS1
nel mio file di avvio ~/.bashrc
).
Alcune soluzioni potenziali rapide:
- Posso confrontare il valore di alcune variabili ambientali. Dalla rapida occhiata
env
all'output ci sono molte differenze. È tuttavia difficile stabilire quale sia il più affidabile in termini di portabilità su un altro computer Windows (forse con una versione diversa di Windows). id
, più specificamenteid -Gn
mostra gruppi diversi se eseguito come amministratore. Nella mia macchina Windows 7 hoAdministrators
eroot
gruppi aggiunti all'elenco. Ancora una volta, non sono sicuro che sia portatile.- Potrei provare a scrivere un file in una posizione che fallirebbe come normale utente. Ma non voglio scrivere alcun file in posti strani - questo in alcuni scenari immaginati potrebbe essere potenzialmente distruttivo (ad esempio, supporti di archiviazione non funzionanti) e questo sembra assolutamente inelegante per i miei gusti.
- Esecuzione di un programma Windows che indicherà lo stato o l'output di ritorno se il comando viene eseguito "come amministratore". Il migliore sarebbe qualcuno con uno scopo analogo a quello del
id(1)
comando UNIX (ma nativamente esistente in Windows - o Cygwin, ma senza una traduzione troppo estesa dei concetti di sistema di Windows in concetti emulati POSIX).
Qualche suggerimento migliore o più elegante? Forse Cygwin fornisce un'utilità di comando dedicata a questo scopo?
Aggiornamento: duplicato del 97% di /programming/4051883/batch-script-how-to-check-for-admin-rights/ - la differenza è qui usando bash
invece di (IMHO strano e arcaico) Windows cmd.exe
. Si prega di controllare le risposte e i commenti lì.
mintty
quello 1. funziona come amministratore, 2. usa un file di configurazione diverso con colori diversi impostazioni e 3. utilizza un'icona alternativa. Se descrivi al pubblico come creare questo, ti darò un voto (a meno che tu non dica nella tua risposta che non può essere fatto all'interno di uno script :-).
Foo
gruppo di utenti.
sudo
richiesto anche se si esegue come utente root.