Declaração do problema: Qual é a maneira mais elegante e robusta de testar se a mintty bashsessão do Cygwin é "Executar como administrador"?
Por que, especificamente? Normalmente, tenho vários minttyterminais abertos ao usar o Windows ( minttynão possui guias). O mais estranho é quando preciso encontrar uma janela de terminal iniciada clicando com o botão direito do mouse em "Executar como administrador" quando, por exemplo, quero executar pingou outro procedimento único. Gostaria de indicar visualmente a condição "executar como administrador" da sessão do terminal (alterando a bashvariável de prompt do shell PS1no meu arquivo de inicialização ~/.bashrc).
Algumas soluções potenciais rápidas:
- Eu posso comparar o valor de algumas variáveis ambientais. Pela rápida olhada na
envsaída, existem muitas diferenças. No entanto, é difícil dizer qual é o mais confiável em termos de portabilidade para outra máquina Windows (talvez executando uma versão diferente do Windows). id,id -Gnmostra mais especificamente grupos diferentes se executado como administrador. Na minha máquina com Windows 7, tenhoAdministratorserootgrupos foram adicionados à lista. Mais uma vez, não tenho certeza se isso é portátil.- Eu poderia tentar gravar um arquivo em um local que falharia como usuário normal. Mas não quero gravar nenhum arquivo em lugares estranhos - isso em alguns cenários imaginados pode ser potencialmente destrutivo (por exemplo, falha na mídia de armazenamento) e isso parece totalmente deselegante para o meu gosto.
- Executando algum programa do Windows que indicará por status de retorno ou saída, se o comando for executado "como administrador". O melhor seria alguns com finalidade análoga à do
id(1)comando UNIX (mas que existe originalmente no Windows - ou Cygwin, mas sem tradução muito buscada dos conceitos de sistema Windows para conceitos emulados POSIX).
Alguma sugestão melhor ou mais elegante? Talvez o cygwin forneça um utilitário de comando dedicado para esse fim?
Atualização: 97% duplicado do /programming/4051883/batch-script-how-to-check-for-admin-rights/ - a diferença está aqui, em bashvez de usar o Windows (IMHO estranho e arcaico) cmd.exe. Por favor, verifique as respostas e comentários lá.
minttyque 1. seja executado como administrador, 2. use arquivo de configuração diferente com cores diferentes configurações e 3. usa um ícone alternativo. Se você descrever ao público em geral como criar isso, eu darei um voto positivo (a menos que você diga na sua resposta que isso não pode ser feito dentro de um script :-).
Foogrupo de usuários, se desejar.
sudonecessário, mesmo se você estiver executando como usuário root.
