- 5 альтернатив Windows Linux для команды sudo
- Команда Windows Runas
- Sudo для Windows — Sourceforge
- Судо для Windows — Люк Сэмпсон
- возвысить
- Высота PowerToys для Windows
- Есть ли в Windows команда аналогичная команде «sudo» в Linux?
- Выполнение команд в Windows от имени другого пользователя
- Комментариев: 3
- Есть ли команда «sudo» для Windows?
- 14 ответов
- Быстрый метод:
- Использование:
- Длинный метод обучения:
5 альтернатив Windows Linux для команды sudo
Если вы когда-либо использовали Linux или знаете кого-то, кто использует Linux, то вы, вероятно, слышали о команде sudo. Команда является критически важным компонентом практически для каждого дистрибутива Linux, и она позволяет вам запускать команду от имени другого пользователя, прежде всего пользователя root. В некоторых дистрибутивах Linux вы можете войти в систему как пользователь root с помощью команды su, но это считается очень рискованным, и никто никогда этого не делает.
На самом деле, это настолько опасно, что по умолчанию оно отключено в дистрибутивах Linux, таких как Ubuntu. Вместо этого вы должны использовать команду sudo, если вы хотите запустить команду от имени пользователя root. Так что насчет Windows? Что ж, к сожалению, большинство людей вошли в Windows как администраторы, что аналогично пользователю root в Linux. Тем не менее, Microsoft попыталась уменьшить опасные последствия входа в систему в качестве администратора, включив контроль учетных записей или UAC.
Таким образом, даже если у пользователя есть права администратора, приложения, работающие под этой учетной записью, не наследуют эти привилегии, если пользователь не авторизовал их вручную. Это помогает предотвратить заражение вредоносного и шпионского ПО пользователем Windows, вошедшим в систему как администратор.
Итак, в то время как у пользователей Linux есть команда sudo, что есть у пользователя Windows? Существуют ли альтернативы, которые пользователи Windows могут использовать для запуска команд с повышенными привилегиями? Есть ли команда sudo для Windows? В этой статье я расскажу о пяти альтернативах команде sudo для пользователей Windows.
Примечание . Некоторые из этих инструментов уже устарели, поэтому они могут работать или не работать с последними версиями Windows.
Команда Windows Runas
В Windows есть команда runas, которая является прямым аналогом sudo в Linux. Используя команду runas, вы можете выполнить скрипт, программу или команду как другой пользователь или как администратор. Полный синтаксис команды runas:
Если вы хотите открыть административную командную строку, вы можете ввести следующее:
/ noprofile не будет загружать текущий профиль пользователя. Вы можете удалить это, если вам нужен доступ к переменным среды пользователя. Если вы хотите открыть текстовый файл с помощью Блокнота с правами администратора, вы можете использовать эту команду:
Вы можете проверить страницу Technet на runas для получения дополнительной информации о том, как его использовать.
Обратите внимание, что при использовании команды runas, если вы устанавливаете программу или вносите изменения в настройки и т. Д., Изменения будут внесены в учетную запись пользователя, для которой вы запускаете команду. Например, допустим, у вас есть пользователь X, который является обычным пользователем, и пользователь Y, который является администратором. Если вы войдете в X, а затем выполните runas с использованием учетных данных Администратора, будут внесены изменения в настройки Администратора, а не пользователя X.
Поэтому, если вы устанавливаете приложение, щелкнув правой кнопкой мыши по файлу EXE и выбрав «Запуск от имени администратора», оно будет установлено во встроенный профиль пользователя «Администратор», а не в тот, в который вы вошли. Если вы хотите действительно повышенные привилегии, такие как sudo, без проблем с профилем, проверьте следующую альтернативу ниже.
Sudo для Windows — Sourceforge
Sudo for Windows — это бесплатная программа, которую вы можете установить, которая даст вам ту же возможность, что и команда sudo в Linux для Windows. Единственное отличие состоит в том, что Sudo для Windows «сохраняет профиль пользователя и права собственности на созданные объекты», как заявлено разработчиком. Это действительно удобно, если вы хотите использовать повышенные разрешения для установки приложений или внесения изменений в такие местоположения пользователей, как «Мои документы» и т. Д.
Это даст вам административные привилегии, но сохранит все изменения в текущем профиле вместо учетной записи, с которой вы используете команду. Программа требует .NET версии 2.0, которую вы не можете скачать отдельно. Чтобы получить 2.0, вам нужно установить .NET Framework 3.5, который включает 2.0.
После установки Sudo для Windows вам нужно добавить учетные записи пользователей, которым вы хотите предоставить повышенные привилегии, в конкретную группу, созданную программой под названием Sdodoers . Щелкните правой кнопкой мыши на «Мой компьютер» или «Этот компьютер» и выберите « Управление» . Затем разверните « Пользователи и группы» и нажмите « Группы» . Вы должны увидеть человека под названием Sudoers .
Дважды щелкните на Sudoers и нажмите кнопку Добавить .
В следующем диалоговом окне нажмите кнопку « Дополнительно» и нажмите « Найти сейчас» . Это перечислит всех пользователей и группы в системе. Дважды щелкните по пользователю, которого хотите добавить.
Повторите этот шаг для любого количества пользователей, которых вы хотите добавить. Затем нажмите OK, и вы должны увидеть членов, перечисленных в списке членов, показанном выше. Нажмите OK, и теперь вы сможете использовать графический интерфейс и команду sudo. Если вы щелкните правой кнопкой мыши программу, вы увидите вариант Sudo .
Вы также можете открыть командную строку и ввести sudo для запуска команды с повышенными правами доступа.
В целом, это довольно изящно и работает очень хорошо. Однако обратите внимание, что эта конкретная программа действительно полезна для запуска программ или процессов с помощью щелчка правой кнопкой мыши или через командную строку, но она не предназначена для запуска приложений командной строки. Например, если вы хотите выполнить команду sudo mkdir «c: \ Program Files \ new», это не сработает при использовании Sudo для Windows. Для этой функции есть другая программа, которая называется той же самой, но другой разработчиком. Читай ниже.
Судо для Windows — Люк Сэмпсон
Есть еще один разработчик, который написал еще один Sudo для Windows, который также позволяет запускать приложения командной строки. Итак, давайте вернемся к примеру создания новой папки в C: \ Program Files. Вы не можете сделать это по умолчанию.
Выше я использую PowerShell, но вы получите ту же ошибку с помощью командной строки. Однако, как только вы установите Sudo для Windows, просто добавьте слово sudo в начале команды, и оно работает без ошибок!
Чтобы установить его, вам нужно открыть PowerShell, а затем ввести следующие команды по порядку:
Если все работает нормально, вы должны увидеть следующий вывод в PowerShell после каждой команды:
Это оно! Теперь вы можете начать вводить команды и добавлять sudo впереди. Единственное, что раздражает в этой программе, это то, что окно UAC все еще всплывает, и вы должны нажать Да, чтобы оно заработало. Даже с этим небольшим раздражением выгоды того стоят.
возвысить
Elevate — это программа, которая работает с UAC и не работает точно так же, как sudo. С Elevate он изменит исполняющего пользователя на Администратора, как это делает команда runas. Однако это полезно для работы в командной строке или с пакетными файлами.
Основная цель elevate — не обойти UAC, а запустить процесс с повышенными правами из невыделенной оболочки, а затем продолжить работу в обычном режиме даже после завершения команды. Elevate полезен для сценариев, потому что вам не нужно беспокоиться о попытке сценария всего щелчка правой кнопкой мыши и запуска командной строки как процесс администратора.
Высота PowerToys для Windows
Для тех из вас, кто много работает в командной строке или работает со сценариями и пакетными файлами, на странице Elevation PowerToys для Windows есть довольно много полезных инструментов и сценариев.
Игрушки для повышения уровня скриптов были созданы для преодоления неприятных аспектов UAC при попытке поднять программу из командной строки или запускать скрипты в качестве администраторов.
Надеюсь, вам хватит инструментов и программ, чтобы вы почувствовали, что на самом деле используете sudo в Windows. Там нет идеальной замены, но есть несколько вариантов, которые подходят близко. Если вы используете что-то еще для повышения уровня программ, команд или скриптов в Windows, сообщите нам об этом в комментариях. Наслаждайтесь!
Есть ли в 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, не запустится: в зависимости от версии виндовс и ее настроек либо спросит имя и пароль пользователя с правами администратора, либо выдаст ошибку «в доступе отказано»
Есть ли команда «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.
Использование:
Длинный метод обучения:
- Прочитайте эту статью .
- Прочитайте комментарии.
- Взгляните на хранилище git репозитория Стивена и файл readme .
Примечание. Я смешал сценарий из обеих статей, чтобы создать вышеупомянутый скрипт. Скорее вручную вставив скрипт в блокнот, я добавил операторы 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 , как ожидалось.