Declaración del problema: ¿Cuál es la forma más elegante y robusta de probar si la mintty
bash
sesión de Cygwin es "Ejecutar como administrador"?
¿Por qué específicamente? Normalmente tengo varios mintty
terminales abiertos cuando uso Windows ( mintty
no tiene pestañas). Lo más incómodo es cuando necesito encontrar una ventana de terminal que comencé haciendo clic derecho en "Ejecutar como administrador" cuando, por ejemplo, quiero ejecutar ping
u otro procedimiento de una sola vez. Me gustaría indicar visualmente la "ejecución como administrador" de la sesión de terminal visualmente (cambiando la bash
variable de solicitud de shell PS1
en mi archivo de inicio ~/.bashrc
).
Algunas soluciones potenciales rápidas:
- Puedo comparar el valor de algunas variables ambientales. Por un vistazo rápido de
env
salida, hay muchas diferencias. Sin embargo, es difícil saber cuál es el más confiable en términos de portabilidad a otra máquina con Windows (tal vez ejecutando una versión diferente de Windows). id
,id -Gn
muestra más específicamente diferentes grupos si se ejecuta como administrador. En mi máquina con Windows 7 tengoAdministrators
yroot
grupos agregados a la lista. Nuevamente, no estoy seguro de si esto es portátil.- Podría intentar escribir un archivo en una ubicación que podría fallar como usuario normal. Pero no quiero escribir ningún archivo en lugares extraños; en algunos escenarios imaginarios, esto podría ser potencialmente destructivo (por ejemplo, medios de almacenamiento defectuosos) y esto parece completamente poco elegante para mi gusto.
- Ejecutando algún programa de Windows que indicará por estado de retorno o salida si el comando se ejecuta "como administrador". Lo mejor sería alguno con un propósito análogo al del
id(1)
comando UNIX (pero existente de forma nativa en Windows o Cygwin, pero sin una traducción demasiado exagerada de los conceptos del sistema de Windows a los conceptos emulados POSIX).
¿Alguna sugerencia mejor o más elegante? ¿Quizás cygwin proporciona una utilidad de comando dedicada para este propósito?
Actualización: 97% duplicado de /programming/4051883/batch-script-how-to-check-for-admin-rights/ - la diferencia está aquí usando en bash
lugar de Windows (extraño y arcaico) cmd.exe
. Verifique las respuestas y comentarios allí.
mintty
que 1. se ejecute como administrador, 2. use un archivo de configuración diferente con un color diferente 3. y utiliza un icono alternativo. Si describe al público en general cómo crear esto, le daré un voto positivo (a menos que diga en su respuesta que no se puede hacer dentro de un script :-).
Foo
grupo de usuarios si lo desea.
sudo
que es necesario incluso si está ejecutando como usuario root.