Постановка проблемы: Какой самый элегантный и надежный способ проверить, является ли mintty bashсеанс Cygwin «Запуск от имени администратора»?
Почему конкретно? У меня обычно несколько minttyтерминалов открываются при использовании Windows ( minttyнет вкладок). Самое неловкое, когда мне нужно найти окно терминала, которое я запустил, щелкнув правой кнопкой мыши «Запуск от имени администратора», когда, например, я хочу запустить pingили другую одноразовую процедуру. Я хотел бы визуально указать «запуск от имени администратора» сеанса терминала (изменив bashпеременную приглашения оболочки PS1в моем файле запуска ~/.bashrc).
Некоторые быстрые потенциальные решения:
- Я могу сравнить значение некоторых переменных среды. При быстром взгляде на
envрезультаты есть довольно много различий. Однако трудно сказать, какой из них является наиболее надежным с точки зрения переносимости на другую машину Windows (возможно, под управлением другой версии Windows). idболее конкретноid -Gnпоказывает различные группы, если они запускаются от имени администратора. В моей машине Windows 7 У меня естьAdministratorsиrootгруппы , добавленные в список. Опять же, я не уверен, что это портативный.- Я мог бы попытаться записать файл в папку, которая не сработала бы как обычный пользователь. Но я не хочу записывать какие-либо файлы в странные места - в некоторых воображаемых сценариях это может быть потенциально разрушительным (например, выход из строя носителя), и это кажется мне совершенно неуместным.
- Запуск некоторой программы Windows, которая сообщит статусом возврата или выводом, если команда запускается «как администратор». Лучше всего будет с аналогичной целью команды UNIX
id(1)(но изначально существующей в Windows - или Cygwin, но без слишком надуманного перевода системных понятий Windows в эмулируемые POSIX-концепции).
Есть лучшие или более элегантные предложения? Возможно, cygwin предоставляет командную утилиту, предназначенную для этой цели?
Обновление: 97% дубликатов /programming/4051883/batch-script-how-to-check-for-admin-rights/ - разница только в том, bashчтобы использовать вместо (имхо странно и архаично) Windows cmd.exe, Пожалуйста, проверьте ответы и комментарии там.
mintty: 1. работает как администратор, 2. использует другой файл конфигурации с другим цветом настройки и 3. использует альтернативный значок. Если вы опишете широкой публике, как это создать, я дам вам голос (если вы не скажете в своем ответе, что это не может быть сделано в сценарии :-).
Fooгруппы пользователей, если хотите.
sudoчто требуется, даже если вы работаете как пользователь root.
