- Есть ли в Windows команда аналогичная команде «sudo» в Linux?
- Выполнение команд в Windows от имени другого пользователя
- Комментариев: 3
- Есть ли команда «sudo» для Windows?
- 14 ответов
- Быстрый метод:
- Использование:
- Длинный метод обучения:
- Как запустить команду ‘sudo’ в windows
- 9 ответов:
- HackWare.ru
- Этичный хакинг и тестирование на проникновение, информационная безопасность
- Как пользоваться sudo
- Как обойти ограничения запуска команд с sudo
- Как показывать звёздочки во время ввода пароля sudo
- Как увеличить или уменьшить длину сессии sudo
- Как узнать, какие команды вводил пользователь с sudo
- Как сохранить ввод и вывод команд с sudo
- Как поменять сообщение о неправильном пароле sudo
- Как увеличить количество попыток ввода пароля sudo
- Опции sudo
Есть ли в 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 , как ожидалось.
Как запустить команду ‘sudo’ в windows
Как бы я выполнил следующую команду в windows:
9 ответов:
нет sudo команда в Windows. Ближайший эквивалент — » Запуск от имени администратора.»
Вы можете сделать это с помощью runas команда с уровнем доверия администратора, или щелкнув правой кнопкой мыши программу в пользовательском интерфейсе и выбрав «Запуск от имени администратора.»
обычно вы этого не сделаете, так как вы не будете запускать его под *nix независимо. Выполните разработку в пользовательском каталоге, а затем разверните его в системных каталогах.
в Windows можно использовать команду runas. Для пользователей linux, есть некоторые альтернативы для sudo в windows, вы можете проверить это
runas команда требует, чтобы пользователи вводили пароль. Если вы не хотите вводить пароль и хотите просто щелкнуть диалоговое окно UAC, используйте Start-Process -Verb runas в PowerShell вместо .
следующий сценарий vbs делает трюк для меня. Я надел его C:\Windows\System32
пример использования в командной строке sudo net start service
Я думаю, что я попробовал шаги ниже после проведения некоторых исследований и преуспел
1.Установите scoop с помощью powershell 3 (iex (new-object net. webclient). downloadstring ( ‘ https://get.scoop.sh’)) 2. сделать совок установки —мировой судо 3. убедитесь, что пути (C:\Users\\scoop\shims & C:\ProgramData\scoop\shims) добавлена в переменную окружающего пути.
нет команды sudo в случае windows, а также нет необходимости ставить любые $. Для установки углового CLI через узел.JS командная строка в windows, я только что написал npm install-g @angular / cli и затем нажмите Enter. Это сработало отлично.
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Как пользоваться sudo
Это вторая часть статьи, посвящённой команде sudo, если вы ещё не видели первую часть, то перейдите к ней «Что такое sudo».
Продолжим знакомство с sudo, рассмотрим больше случаев применения и настройки.
Как обойти ограничения запуска команд с sudo
Мы уже научились (в первой части) устанавливать ограничения для пользователя по использованию команд с повышенными привилегиями, то есть с sudo. Мы можем перечислить команды, которые пользователю разрешено запускать с sudo — запуск другим команд с правами root будет автоматически запрещён.
При этом очень важно, чтобы разрешённые для запуска с sudo файлы не имели у пользователя прав доступа на запись! Иначе ограничения sudo могут быть легко обойдены.
К примеру, в предыдущей части мы указали настройку:
Она разрешает пользователю выполнять команды /home/admin/backup.sh и /usr/bin/apt. Может ли этот пользователь выполнить, например, такую команду:
Если вы не понимаете приведённую выше команду, то смотрите «Азы работы в командной строке Linux (часть 1)».
Поскольку я уже знаю, что в этом случае я смогу обойти ограничение, то вместо удаления корневой файловой системы, я специально создам папки, для которых у обычного пользователя не будет прав на удаление (я залогинен как root):
Итак, я выполняю вход под пользователем admin:
Теперь я (пользователь admin) хочу совершить злодейство — я хочу удалить папку /root/test1 принадлежащую ненавистному мне root’у:
Недостаточно прав, попробую выполнить с правами суперпользователя:
Опять неудача — пользователю admin разрешено выполнять только команду /usr/bin/apt и команду /home/admin/backup.sh. Проверяем права доступа на эти файлы:
У пользователя есть право записи, но пользователем является root.
Проверяем второй файл:
Пользователем является admin и у него есть право записи!
Записываем нашу зловредную команду в этот файл:
Добавляем права выполнения этому файлу, если вдруг их не было:
И запускаем этот файл с sudo:
Как можно увидеть, программа завершилась без ошибки:
А папка /root/test1 больше не существует:
Неправильная настройка, которая позволила обойти sudo, в том, что у пользователя были права записи на один из файлов, которые он может запускать с sudo. В этот файл пользователь может записать что угодно и все эти команды выполнятся с повышенными привилегиями. Программа sudo проверяет только непосредственно запускаемый файл, но не проверяет, соответствует ли его содержимое политикам и настройке sudo.
Как показывать звёздочки во время ввода пароля sudo
Во время ввода пароля sudo, терминал не даёт никакой обратной связи, то есть не показывае звёздочки и, будто бы, никак не реагирует. У меня даже спрашивали в комментариях под какой-то статьёй: «появляется запрос ввода пароля и система зависает». На самом деле система прекрасно работает и считывает введённый пароль, причём такой вариант является более безопасным, поскольку не позволяет посторонним увидеть длину пароля.
Тем не менее если вам хочется, чтобы в терминале при вводе пароля sudo отображались звёздочки (*******) по количеству введённых символов, как это сделано в большинстве приложений, то дальше будет показано как это настроить.
Откройте для редактирования конфигурационный файл sudo:
и добавьте к ней pwfeedback, чтобы строка стала выглядеть так:
Если у вас редактор vim, то нажмите кнопку Esc, напечатайте :wq и нажмите ENTER. Если вы используете редактор nano, то нажмите Ctrl+x, затем y и нажмите ENTER для сохранения и закрытия файла.
Чтобы изменения вступили в силу, выполните следующую команду для сброса текущих настроек терминала:
Вот и всё, теперь каждый раз, когда вы вводите пароль в терминал, вы будете получать визуальный отзыв (****), как это показано на следующем скриншоте:
Как увеличить или уменьшить длину сессии sudo
После ввода пароля пользователя для sudo? если вы хотите выполнить ещё одну команду с sudo, то в течение установленного промежутка времени у вас не будет спрошен пароль. Длина сессии, например, в Linux Mint составляет 15 минут. Если вы считаете, что длина сессии беспарольного выполнения команд sudo слишком маленькая или слишком большая, то далее показано, как её изменить.
Для установки таймпута пароля sudo, используется параметр timestamp_timeout. Вначале откройте файл /etc/sudoers с полномочиями суперпользователя, используя команды sudo и visudo примерно так:
Теперь в пункт Defaults добавьте директиву timestamp_timeout с нужным вам значением в минутах, например, в следующей строке установлено время, когда sudo не запрашивает повторно пароль на 20 минут:
Примечание: вы можете установить любое время в минутах на ваше усмотрение. Вы также можете установить время на 0, если вы хотите запрос пароля при каждом использовании команду sudo. Чтобы навсегда отключить запрос пароля, установите значение на -1.
Для сохранения изменений нажмите Ctrl+o, затем ENTER и для выхода Ctrl+x.
Как узнать, какие команды вводил пользователь с sudo
По умолчанию sudo ведёт журнал действий через системный лог (journalctl). Чтобы сохранять журнал действий с sudo, добавьте следующую директиву:
Пример записей из файла /var/log/sudo.log:
В каждой записи присутствуют следующие поля:
- дата и время
- пользователь, который выполнил команду
- номер терминала
- текущая рабочая директория
- пользователь, от чьего имени выполнялась команда
- сама команда
При желании можно добавить в эти записи имя хоста и номер года, для этого используйте, соответственно, параметры log_host и log_year следующим образом:
Ниже пример настроенного файла журнала sudo:
Как сохранить ввод и вывод команд с sudo
Можно не только просматривать команды, которые выполнялись с sudo, но и сохранять ввод и вывод этих команд. Использование параметров log_input и log_output включает запуск команды sudo в псевдо tty и ведёт журнал всего ввода и вывода, отправленного на экран:
По умолчанию данные сохраняются в директорию /var/log/sudo-io и, если имеется порядковый номер сеанса, то они сохраняются в директорию seq Вы можете настроить директорию хранения, структуру папок и имена файлов параметрами iolog_dir и iolog_file. По умолчанию данные будут сохраняться в структуре папок начиная с 00/00/01 и далее:
Как поменять сообщение о неправильном пароле sudo
Когда пользователь вводит неверный пароль, соответствующее сообщение показывается в командной строке. По умолчанию сообщение на русском «Попробуйте ещё раз.», а на английском «sorry, try again». Вы можете отредактирвоать это сообщение используя параметр badpass_message примерно так:
Как увеличить количество попыток ввода пароля sudo
Параметр passwd_tries используется для указания числа попыток, которое пользователь может сделать при вводе пароля. По умолчанию это значение равняется 3.
В дополнении к количеству попыток, вы можете установить время, которое командная строка будет ожидать пароль. По умолчанию это 5 минут. Используя параметр passwd_timeout можно установить любое количество минут:
Опции sudo
Кроме уже рассмотренных имеется несколько других опций, которые могут пригодиться в той или иной ситуации:
- -n: автономный режим без вывода запросов пользователю (если запрос есть, то программа завершает работу)
- -P: сохранить вектор группы вместо установки целевой группы
- -p ЗАПРОС: использовать указанный запрос пароля
- -S: читать пароль из стандартного ввода
- -s ШЕЛЛ: запустить указанную оболочку от имени указанного пользователя; также можно задать команду для выполнения в этом шелле
- -b: выполнить команду в фоновом режиме
- -H: установить для переменной $HOME домашний каталог указанного пользователя
- -T СЕКУНДЫ: оборвать выполнение команды после указанного лимита времени