Аналог su в windows
С точки зрения безопасности, работать под администратором в Windows не самое правильно решение. Однако, никто этим вопросом не заморачивается, особенно на домашних компьютерах. Ведь так гораздо удобнее, чем дополнительно создавать пользовательскую учётную запись и постоянно вводить пароль администратора при любых изменениях в системе.
В операционной системе Linux все серьёзные настройки производятся с правами суперпользователя (root), аналог администратора в Windows. Правда, в отличие от «винды», в Linux сразу, при установке системы, предлагается создать обычного пользователя и работать уже от его имени.
Когда требуется выполнять какие-то действия от имени другого пользователя, в том числе и от суперпользователя, есть команда sudo . Выполняется она в терминале. В Linux вообще практически любые действия можно выполнять в терминале, но это отдельная большая тема, потому не будем сейчас в неё углубляться.
Пользователям Windows подобный подход тоже знаком. Наверняка вам приходилось запускать выполнение каких-то команд или программ от имени Администратора. По крайней мере вы встречали такой пункт в меню. Например, такой режим командной строки Windows может потребоваться для выполнения некоторых команд, вроде cброса настроек протокола TCP/IP и Winsock при сбоях в работе сети:
Выполнение команд в Windows от имени другого пользователя
Недавно у меня был странный случай с Windows Server 2012. Удалённо не удавалось войти в учётную запись Администратора, так как система никак не могла завершить предыдущую сессию. Такая же ситуация была и с несколькими пользователями, которые в это время работали на сервера. В общем, по непонятным причинам, Windows на серваке частично встала раком.
Зайти на сервер удалось под одним из пользователей, но на перезагрузку у него естественно прав не было. Запустить командную строку cmd от имени администратора или выбрать такой вариант в свойствах ярлыка система тоже не давала. Тут то мне и пригодилась команда runas , предназначенная для выполнения команд под учетной записью пользователя, указанной в качестве параметра командной строки:
Есть ли способ (при входе в систему в качестве администратора или члена группы администраторов) маскироваться под непривилегированного пользователя? Особенно в среде AD.
например, в мире Unix я мог бы сделать следующее (как root):
Мне нужно что-то проверить / настроить в учетной записи пользователя, и я не хочу знать его пароль или менять его.
Изменить:
runas не будет сокращать это. В идеале весь мой рабочий стол должен стать пользователем и т. Д., А не только в окне cmd.
Я почти уверен, что не существует поддерживаемого способа работать от имени другого пользователя без учетных данных этого пользователя. Это безотказная мера. Кто-то не может сказать: «Я этого не делал», потому что либо они это сделали, либо кто-то со своими полномочиями сделал это. И на секунду они должны были бы дать другому человеку полномочия.
Обычно, когда я вхожу в систему как другой пользователь, я делаю то, что мне нужно, - это использовать удаленную помощь, по сути, для RDP в сеансе, чтобы они предоставили мне контроль. Тогда я делаю что угодно, пока они смотрят (предположительно, в любом случае).
Все остальное обычно можно сделать с помощью GPO / скриптов.
Я считаю, что это правильно. И, IMHO, это улучшение безопасности в мире UNIX. Мне нравится идея, что даже мой админ не может быть мной без моего пароля. Администратор может перехватить другого пользователя, сбросив его пароль. Тогда они могут войти как вы. Тем не менее, если вы делаете это, есть след доказательств. Во-первых, пароль пользователя был изменен, чтобы они знали. Во-вторых, будут журналы аудита (при условии, что аудит включен). Как правило, я тоже так действую. Тем не менее, есть моменты, которые я говорю: «Было бы намного проще сделать это для Боба, если бы я был Бобом», но Боб вернулся домой час назад. Что касается «безотказности», то если я сначала переустановлю их пароль, это не остановит меня от совершения злонамеренных / глупых действий от имени другого пользователя. Это просто означает, что мне придется проделать больше работы, чтобы скрыть, кто был ответственным. Я понимаю, что они пытаются сделать. Я просто думаю, что это скорее театр безопасности, чем реальная безопасность.Я заметил, что многие другие люди упоминали о вариациях команды runas и о том, как вам нужно знать пароль пользователя, что является правдой, но я не думаю, что кто-то тихо ответил на вопрос. «желая, чтобы весь рабочий стол стал пользователем и т. д., а не только в окне cmd». Вот как я это делаю:
Примечание : я собираюсь ссылаться на эту первую командную строку как CP1, чтобы позже избежать путаницы.
Под учетной записью администратора откройте командную строку
Для локального аккаунта
Для учетной записи домена
ИЛИ способ, которым я предпочитаю это
Примечание. Откроется новая командная строка (CP2). Это пользователь, с которым вы пытаетесь войти.
Откройте CP1 и введите:
Откройте CP2 и введите:
В зависимости от компьютера, он может создать профиль для пользователя, если он никогда не входил там ранее. Вы можете сэкономить время, оставив окна командной строки открытыми для последующего использования.
Когда вы закончите со своей работой, просто сделайте то же самое в обратном порядке.
Откройте CP1 и введите:
Теперь вы должны вернуться к первоначальной учетной записи администратора. Вы можете сделать быструю проверку, нажав клавишу Windows и ища текущую панель пользователя.
Надеюсь, это помогло.
@mskfisher Ха-ха, если вы думаете, что это безумие, вы должны увидеть, что я должен был сделать, чтобы выяснить, как завершить сеанс psexec, заблокированный после выполнения неверной команды wmic. . Pskill из второй командной строки, указывающей на удаленный компьютер, после использования psservices для отслеживания идентификатора процесса для psexec в первой командной строке! Через 4 года мне напомнили об этом вопросе, и когда я успел это проверить. ВОТ ЭТО ДА! В Windows 10 при использовании runas запрашивается пароль пользователя.В Windows нет встроенного механизма для этого. Это может быть сделано, но вам нужно будет что-то написать, чтобы делать то, что вы хотите, и вам, вероятно, придется возиться с недокументированными API.
Один из постеров здесь, grawity, имеет право без вызова CreateProcessAsUser (), но сначала вам нужно будет создать токен с недокументированным нативным API zwCreateToken. Если вы убили Проводник и запустили новый экземпляр Проводника с CreateProcessAsUser (), я вполне уверен, что вы получите то, что хотите.
Microsoft не делает то, что вы хотите, легко, потому что не так, как они хотят, чтобы вы использовали NT. Если вам нужно войти в систему как пользователь для устранения проблем, в большинстве случаев вы решаете эту проблему неоптимальным образом.
Вы можете вносить изменения в реестр пользователя, не входя в систему как они (прикрепляя куст реестра и манипулируя им таким образом). Вы можете вносить изменения в файлы в их профиле пользователя, не входя в систему как пользователь. Если вам нужно «настроить электронную почту» или выполнять другие подобные действия «как пользователь», вы должны писать сценарии или использовать встроенные функции (административные шаблоны групповой политики, предпочтения и т. Д.), Чтобы выполнить свою грязную работу за вас.
Если вам нужно сделать это, взгляните на RunAsEx на Code Project. Этот код должен дать вам довольно хорошее представление о том, что вам нужно сделать. Я не пробовал программу, но похоже, что все идет правильно.
Если вы когда-либо использовали 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:
беги как [] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] / user: программа UserAccountName
Если вы хотите открыть административную командную строку, вы можете ввести следующее:
runas / noprofile / user: администратор cmd
Обратите внимание, что при использовании команды runas, если вы устанавливаете программу или вносите изменения в настройки и т. Д., Изменения будут внесены в учетную запись пользователя, для которой вы запускаете команду. Например, допустим, у вас есть пользователь X, который является обычным пользователем, и пользователь Y, который является администратором. Если вы войдете в систему X, а затем выполните руны с использованием учетных данных администратора, изменения будут внесены в настройки администратора, а не пользователя X.
Поэтому, если вы устанавливаете приложение, щелкнув правой кнопкой мыши по файлу EXE и выбрав «Запуск от имени администратора», оно будет установлено во встроенный профиль пользователя «Администратор», а не в тот, в который вы вошли. Если вы хотите действительно повышенные привилегии, такие как sudo, без проблем с профилем, воспользуйтесь следующей альтернативой ниже.
Судо для Windows это бесплатная программа, которую вы можете установить, которая даст вам тот же опыт, что и команда sudo в Linux для Windows. Разница лишь в том, что Sudo для Windows «Сохраняет профиль пользователя и право собственности на созданные объекты» как заявлено разработчиком. Это действительно удобно, если вы хотите использовать повышенные разрешения для установки приложений или внесения изменений в такие местоположения пользователей, как «Мои документы» и т. Д.
После установки Sudo для Windows вам необходимо добавить учетные записи пользователей, которым вы хотите предоставить повышенные привилегии, в определенную группу, созданную программой Sudoers. Щелкните правой кнопкой мыши на «Мой компьютер» или «Этот компьютер» и выберите «Управление». Затем разверните «Пользователи и группы» и нажмите «Группы». Вы должны увидеть человека под названием Sudoers.
Дважды щелкните на Sudoers и нажмите кнопку Добавить.
В следующем диалоговом окне нажмите кнопку «Дополнительно» и нажмите «Найти сейчас». Это перечислит всех пользователей и группы в системе. Дважды щелкните по пользователю, которого хотите добавить.
Вы также можете открыть командную строку и ввести sudo для запуска команды с повышенными правами доступа.
В целом, это довольно изящно и работает очень хорошо. Тем не менее, обратите внимание, что эта конкретная программа действительно полезна для запуск программы или процессы либо с помощью щелчка правой кнопкой мыши или через командную строку, но это не предназначено для запуска приложений командной строки. Например, если вы хотите выполнить команду sudo mkdir «c: Program Files new», это не сработает при использовании Sudo для Windows. Для этой функции есть другая программа, которая называется той же самой, но другой разработчиком. Читай ниже.
Есть еще один разработчик, который написал другой Судо для Windows это позволяет вам запускать приложения командной строки тоже. Итак, давайте вернемся к примеру создания новой папки в C: Program Files. Вы не можете сделать это по умолчанию.
Выше я использую PowerShell, но вы получите ту же ошибку, используя и командную строку. Однако, как только вы установите Sudo для Windows, просто добавьте слово sudo в начало команды, и оно будет работать без ошибок!
set-executepolicy неограниченно -s cu -f
совок установить судо
Если все работает хорошо, вы должны увидеть следующий вывод в PowerShell после каждой команды:
Это оно! Теперь вы можете начать вводить команды и добавлять sudo впереди. Единственное, что раздражает в этой программе, это то, что окно UAC все еще всплывает, и вы должны нажать Да, чтобы оно заработало. Даже с этим небольшим раздражением выгоды того стоят.
Elevate
Elevate это программа, которая работает с UAC и не работает точно так же, как sudo. С Elevate он изменит исполняющего пользователя на Администратора, как это делает команда runas. Однако это полезно для работы в командной строке или с пакетными файлами.
Высота PowerToys для Windows
Для тех из вас, кто много работает в командной строке или работает со скриптами и пакетными файлами, тогда Высота PowerToys для Windows На странице есть довольно много полезных инструментов и скриптов.
сценарий возвышения силы игрушки были созданы, чтобы преодолеть неприятные аспекты UAC при попытке поднять программу из командной строки или запускать сценарии в качестве администраторов.
Надеюсь, вам хватит инструментов и программ, чтобы вы почувствовали, что на самом деле используете sudo в Windows. Там нет идеальной замены, но есть несколько вариантов, которые подходят близко. Если вы используете что-то еще для повышения уровня программ, команд или скриптов в Windows, сообщите нам об этом в комментариях. Наслаждайтесь!
Официальное название - Windows Subsystem for Linux. Или сокращённо WSL.
WSL предоставляет возможность запуска родных линуксовых утилит в Windows.
Это стало возможно 2 августа 2016-го года. Когда в результате сотрудничества Microsoft и Canonical стало возможным использовать оригинальный образ ОС Ubuntu 14.04 для непосредственного запуска поверх WSL множества инструментов и утилит из этой ОС без какой-либо виртуализации.
С 6 мая 2019-го года доступна WSL 2, которая работает на Hyper-V
В этой статье вы узнаете как установить WSL. О том как пользоваться командами Bash читайте в статье «Основы Bash»
По состоянию на 2021-й год доступны к установке WSL:
Установка
Когда он влючён можно перейти непосредственно к активации Bash.
Нажимаем клавишу WIN пишем control и переходим в Панель управления
(Control Panel)
Программы и Компоненты
(Programs and Features)
Включение или отключение компонентов Windows
(Turn Windows features on or off)
Подсистема Windows для Linux (бета-версия)
(Windows Subsystem for Linux (Beta))
После перезагрузки нажимаем сочетание клавиш WIN + R и вводим cmd.
В появившейся командной строке пишем bash
Вводим y если нужен русский язык
Вводим новое имя пользователя
Наслаждаемся результатом: теперь для запуска Bash нужно просто ввести эту команду в командной строке
Доступ к флешке из Bash в Windows
Ошибки
Установка с сайта aka.ms
Хороший выбор ноутбуков на сайте OLDI
В первых версиях из коробки шла Ubuntu, поэтому сейчас для разнообразия я выбираю Debian
Читайте также: