Есть ли в Windows команда аналогичная команде «sudo» в Linux?
С точки зрения безопасности, работать под администратором в Windows не самое правильно решение. Однако, никто этим вопросом не заморачивается, особенно на домашних компьютерах. Ведь так гораздо удобнее, чем дополнительно создавать пользовательскую учётную запись и постоянно вводить пароль администратора при любых изменениях в системе.
В операционной системе Linux все серьёзные настройки производятся с правами суперпользователя (root), аналог администратора в Windows. Правда, в отличие от «винды», в Linux сразу, при установке системы, предлагается создать обычного пользователя и работать уже от его имени.
Когда требуется выполнять какие-то действия от имени другого пользователя, в том числе и от суперпользователя, есть команда sudo. Выполняется она в терминале. В Linux вообще практически любые действия можно выполнять в терминале, но это отдельная большая тема, потому не будем сейчас в неё углубляться.
Пользователям Windows подобный подход тоже знаком. Наверняка вам приходилось запускать выполнение каких-то команд или программ от имени Администратора. По крайней мере вы встречали такой пункт в меню. Например, такой режим командной строки Windows может потребоваться для выполнения некоторых команд, вроде cброса настроек протокола TCP/IP и Winsock при сбоях в работе сети:
netsh winsock reset
Выполнение команд в Windows от имени другого пользователя
Недавно у меня был странный случай с Windows Server 2012. Удалённо не удавалось войти в учётную запись Администратора, так как система никак не могла завершить предыдущую сессию. Такая же ситуация была и с несколькими пользователями, которые в это время работали на сервера. В общем, по непонятным причинам, Windows на серваке частично встала раком.
Зайти на сервер удалось под одним из пользователей, но на перезагрузку у него естественно прав не было. Запустить командную строку cmd от имени администратора или выбрать такой вариант в свойствах ярлыка система тоже не давала. Тут то мне и пригодилась команда runas, предназначенная для выполнения команд под учетной записью пользователя, указанной в качестве параметра командной строки:
runas /user:администратор «shutdown /r»
Признаю, что опыт весьма специфический, но возможно кому-то пригодится.
Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.
Комментариев: 3
sudo в виндовсе можно сделать батником-«костылём» sudo.cmd , поместив его в windows\system32 :
Дмитрий, т.е. и из под обычного пользователя без пароля запустится? али ж нет?
Art, не запустится: в зависимости от версии виндовс и ее настроек либо спросит имя и пароль пользователя с правами администратора, либо выдаст ошибку «в доступе отказано»
Есть ли в Windows команда аналогичная команде «sudo» в Linux?
С точки зрения безопасности, работать под администратором в Windows не самое правильно решение. Однако, никто этим вопросом не заморачивается, особенно на домашних компьютерах. Ведь так гораздо удобнее, чем дополнительно создавать пользовательскую учётную запись и постоянно вводить пароль администратора при любых изменениях в системе.
В операционной системе Linux все серьёзные настройки производятся с правами суперпользователя (root), аналог администратора в Windows. Правда, в отличие от «винды», в Linux сразу, при установке системы, предлагается создать обычного пользователя и работать уже от его имени.
Когда требуется выполнять какие-то действия от имени другого пользователя, в том числе и от суперпользователя, есть команда sudo . Выполняется она в терминале. В Linux вообще практически любые действия можно выполнять в терминале, но это отдельная большая тема, потому не будем сейчас в неё углубляться.
Пользователям Windows подобный подход тоже знаком. Наверняка вам приходилось запускать выполнение каких-то команд или программ от имени Администратора. По крайней мере вы встречали такой пункт в меню. Например, такой режим командной строки Windows может потребоваться для выполнения некоторых команд, вроде cброса настроек протокола TCP/IP и Winsock при сбоях в работе сети:
Выполнение команд в Windows от имени другого пользователя
Недавно у меня был странный случай с Windows Server 2012. Удалённо не удавалось войти в учётную запись Администратора, так как система никак не могла завершить предыдущую сессию. Такая же ситуация была и с несколькими пользователями, которые в это время работали на сервера. В общем, по непонятным причинам, Windows на серваке частично встала раком.
Зайти на сервер удалось под одним из пользователей, но на перезагрузку у него естественно прав не было. Запустить командную строку cmd от имени администратора или выбрать такой вариант в свойствах ярлыка система тоже не давала. Тут то мне и пригодилась команда runas , предназначенная для выполнения команд под учетной записью пользователя, указанной в качестве параметра командной строки:
runas /user:администратор «shutdown /r»
Признаю, что опыт весьма специфический, но возможно кому-то пригодится.
ЕСЛИ СЧИТАЕТЕ СТАТЬЮ ПОЛЕЗНОЙ,
НЕ ЛЕНИТЕСЬ СТАВИТЬ ЛАЙКИ И ДЕЛИТЬСЯ С ДРУЗЬЯМИ.
Есть ли команда «sudo» для Windows?
Я всегда работаю над учетной записью, отличной от администратора, на моем компьютере под управлением Windows. Иногда мне нужно установить программы, требующие доступа администратора. Поскольку в основном я использую командную строку Windows, есть ли команда Windows для эскалации привилегий, аналогичная команде терминала Linux sudo ?
14 ответов
для запуска командной оболочки в качестве администратора
Я обнаружил поднять сегодня, когда «выполняет команду с повышением привилегий UAC. Это полезно для работы внутри командной строки или с пакетными файлами. » Это не то же самое, что sudo , он меняет исполняющего пользователя на Администратора, но его синтаксис намного проще использовать, чем runas , и он может поддерживать текущий каталог, позволяя использовать относительные пути.
Цель Elevate — не работать или обходить UAC (User Account Control), а работать с ним. Пока UAC включен, имеет , чтобы быть каким-то приглашением в some в процессе. Если вам нужно полностью избавиться от запроса, вы должны отключить UAC .
Устранение болевых точек повышает эскалацию определенного процесса из непривилегированной оболочки, а затем продолжается как обычно. Без этого вам нужно запустить привилегированное командное приглашение с помощью правой кнопкой мыши> «Запуск от имени администратора» , который не может быть легко написан сценарием, прежде чем пытаться выполнить привилегированную команду.
Вы можете использовать команду runas , которая является похожей, или вы можете проверить sudo для Windows над SourceForge , который добавляет команду sudo.
Предположим, у вас есть два пользователя. Боб — обычный пользователь, а Джеймс — администратор.
Если вы входите в систему как Bob и используете «runas james acommand», команда запускается так, как если бы ее запускал Джеймс, поэтому он обращается к пользовательским настройкам Джеймса, и любые изменения пользователя переходят в James My Documents & папок настроек и т. д. Поэтому, если вы устанавливаете приложение, скажем, оно будет установлено как Джеймс, а не как Боб.
Если, с другой стороны, Боб делает «sudo acommand», команда все еще выполняется как Bob, но с повышенными разрешениями — точно так же, как команда sudo для Linux. Чтобы пользователь не мог судиться, вы должны определить группу пользователей sudoers, которая содержит список обычных пользователей, у которых есть разрешение на повышение с помощью sudo. Пользователям по-прежнему необходимо предоставить учетные данные перед повышением.
Иногда разница не важна, иногда это так, и я считаю, что обе команды могут быть полезны.
Если вы готовы перейти на альтернативные консоли, ConEmu (я автор). Одна из его функций — возможность запускать как увеличенные, так и невыполненные вкладки в одном окне ConEmu. Вкладки могут запускаться с разными учетными данными.
Для удобства пользователя существует пакетный файл csudo.cmd (который может быть легко принят в bash). Прочтите полное описание в вики проекта . Вкратце, когда вы запускаете какую-либо команду из существующей вкладки с невыполнением, например
ConEmu запустит dism на новой повышенной консоли /вкладке (с предыдущим приглашением UAC в окне Vista или Login в XP).
По умолчанию csudo запускает новую консоль в расколе (могут быть изменения с помощью редактирования содержимого csudo.cmd ).
И, конечно, вы можете переименовать его в sudo.cmd , если вам нравится слово «classic» sudo .
Быстрый метод:
Три шага для добавления sudo.
Скопируйте следующий скрипт (Ctrl + C) и вставьте его в PowerShell (Alt + Space + E + P):
Он будет постоянно включать команду sudo в PowerShell.
Использование:
Длинный метод обучения:
Примечание. Я смешал сценарий из обеих статей, чтобы создать вышеупомянутый скрипт. Скорее вручную вставив скрипт в блокнот, я добавил операторы Out-File для сохранения файлов ps1 и $profile из сценария.
Совет. Если вы не очень любите всплывающие окна UAC (например, я), сохраните следующее в файле * .reg и запустите его:
Если вы делаете это в Windows, то в дополнение к команде Run As, как упоминалось в нескольких других ответах, есть также способы сделать это с помощью мыши.
Если вы удерживаете клавишу Shift при щелчке правой кнопкой мыши по большинству исполняемых файлов в Windows, вы должны заметить еще несколько дополнительных опций. Один из них — это опция Run As. «(я думаю, что она называется« Run As Administrator »из Vista).
Вы также можете загрузить более продвинутую версию RunAs от Microsoft, называемую ShellRunAs , это улучшает встроенную команду RunAs, как в командной строке, так и в графическом режиме, в том числе позволяет вам сохранять учетные данные учетной записи
Surun — это бесплатное приложение с открытым исходным кодом, которое позволяет определенным программам работать с правами администратора, без предоставления пароля без изменения реестра пользователя или изменения переменных среды.
Когда я пользовался Windows XP, это приложение мне очень помогает. Beta работает под Windows 7.
Как вы, вероятно, обнаружили, runas позволит вам запускаться как другой пользователь, но он не может выполнять возвышение и не передает текущие каталоги, переменные окружения или длинные командные строки.
оболочка Hamilton C разрешает это с подлинным su и sudo. su позволяет запускать команду в качестве другого пользователя; sudo (на самом деле псевдоним su) позволяет вам выполнить команду повышенной. Вы также можете сделать то и другое, работая под повышенным уровнем как другой пользователь. Текущие каталоги, переменные окружения и длинные командные строки передаются посредством рукопожатия с общей памятью между su, выполняющимся в контексте вызывающего абонента, и копией самой работы, выполняемой как интерлюдия, с новыми учетными данными, которые затем запускают дочерние элементы. Полное раскрытие: я автор.
Этот скрипт выполняет задание:
Сохраните его как sudo.cmd , затем добавьте его в свой PATH
Примечание: runas означает в этом контексте «Запуск от имени администратора», а не «Запуск от имени другого пользователя»
взяты здесь и слегка отредактирован, чтобы удалить заголовок cscript.exe из вывода
Самое простое решение, на мой взгляд, заключается в том, чтобы использовать powershell для работы, которая является переносной и будет запрашивать пользователя с использованием UAC.
Вы можете просто запустить это в любой оболочке (cmd или powershell)
Замените рабочую замену sudo для терминала Cygwin mintty , чтобы поместить следующий скрипт в PATH пользователя:
Для меня это единственная жизнеспособная замена для повышения привилегий таких программ, как vim или cygrunsrv во время работы в терминале в Windows.
Следующий скрипт vbs делает трюк для меня. Я положил его на C:\Windows\System32
Пример использования в командной строке sudo net start service
Для него есть шоколадный пакет с удобным названием sudo . Вы можете установить пакет с шоколадным с помощью этой команды:
Затем в любой оболочке Windows /MS, которую вы должны использовать, вы можете использовать sudo , как ожидалось.


