Чи є еквівалент SU для Windows


32

Чи існує спосіб (під час входу в систему як адміністратор або як член групи адміністраторів) маскуватися під непривілейованим користувачем? Особливо в умовах AD.

наприклад, у світі Unix я міг би зробити наступне (як root):

# whoami
root
# su johnsmith
johnsmith> whoami
johnsmith
johnsmith> exit
# exit

Мені потрібно щось тестувати / налаштувати в обліковому записі користувача, і я не хочу знати його пароль або змушувати його скидати.

Редагувати:
runas не вирізає. В ідеалі весь мій робочий стіл став би користувачем тощо, а не лише у вікні cmd.


Просто цікаво, але навіщо вам увійти як користувач? Зазвичай мені потрібно це зробити лише для налаштування електронної пошти. Однак я виявив, що більшу частину часу я можу налаштувати все за допомогою групової політики / сценаріїв тощо.
Дейтон Браун

Відповіді:


20

Я впевнений, що не існує підтримуваного способу запуститись як інший користувач, не маючи облікових даних цього користувача. Це неприйняття міри. Хтось не може сказати: "Я цього не зробив", тому що або вони це зробили, або хтось зі своїми повноваженнями це зробив. А вдруге вони повинні були б дати іншій особі повноваження.

Як правило, я роблю те, що мені потрібно робити під час входу в систему як інший користувач, - це використовувати віддалену допомогу, щоб по суті RDP в сеанс, і дозволити їм контролювати. Тоді я роблю все, що вони дивляться (імовірно, все одно).

Зазвичай все можна зробити за допомогою GPO / скриптів.


8
Я вважаю, що це правильно. І, IMHO, це поліпшення безпеки у світі UNIX. Мені подобається думка, що навіть адміністратор не може бути мені без пароля.
tomjedrz

3
Адміністратор може взяти на себе іншого користувача, скинувши його пароль. Тоді вони можуть увійти як ви. Однак є доказовий слід, якщо ви це зробите. По-перше, пароль користувачів було змінено, щоб вони знали. По-друге, будуть журнали аудиту (якщо аудит включений).
Ерік Функенбуш

3
Як правило, я також працюю. Однак є моменти, які я кажу: «Це було б набагато простіше зробити це для Боба, якби я був Боб», але Боб пішов додому годину тому.
BIBD

1
Що стосується "неповернення", змушення мене спершу скинути їх пароль не перешкоджає вчиняти злісні / дурні дії як іншого користувача. Це просто означає, що мені доведеться зробити більше роботи, щоб приховати відповідальність.
BIBD

9
Я розумію, що вони намагаються зробити. Я просто думаю, що це більше театр безпеки, ніж реальна безпека.
BIBD

17

Я помітив, що багато інших людей , згадуючи варіації команди RUNAS і як вам потрібно знати пароль користувачів, що це правда, але я не думаю , що хто -то має тихо відповів на питання. "бажаючи, щоб весь робочий стіл став користувачем тощо, а не лише у вікні cmd". Ось як я поступаю з цим:

Примітка. Цей перший командний рядок я буду називати CP1, щоб пізніше усунути плутанину.

Під обліковим записом адміністратора відкрийте командний рядок

Для місцевого рахунку

runas /profile /user:computernamehere\username cmd

Для облікового запису домену

runas /profile /user:domainname\username cmd

АБО так, як я вважаю за краще

runas /profile /user:username@domainname cmd

Примітка. Відкриється новий командний рядок (CP2), це той користувач, який ви намагаєтесь увійти як.

Відкрийте CP1 і введіть:

taskkill /f /IM explorer.exe

Відкрийте CP2 і введіть:

explorer.exe

Залежно від комп'ютера, він може створити профіль для користувача, якщо він ніколи раніше не входив туди. Пізніше ви можете зберегти хессел, зберігаючи вікна командного рядка відкритими для подальшого використання.

Коли ви закінчите свою роботу, просто зробіть те ж саме в зворотному порядку.

У типі CP2:

taskkill /f /IM explorer.exe

Відкрийте CP1 і введіть:

explorer.exe

Тепер вам слід повернутись до облікового запису адміністратора. Ви можете зробити швидку перевірку, натиснувши клавішу Windows та шукаючи панель поточного користувача.

Сподіваюся, що це допомогло.


3
Це якась глибока магія.
mskfisher

@mskfisher Ха-ха, якщо ти вважаєш, що хтось божевільний, ти повинен побачити, що мені довелося зробити, щоб зрозуміти, як вбити сеанс psexec, який закрився після запуску поганої команди wmic. ... Pskill з другого командного рядка, вказаного на віддалену машину, після використання psservices для відстеження ідентифікатора процесу для psexec у першому командному рядку!
Майкл Н

Ну через 4 роки мені нагадали це питання, і коли я встиг це перевірити. ОЦЕ ТАК!
BIBD

У Windows 10, використовуючи підказки runas щодо пароля користувача.
TheAmigo

7

У Windows немає вбудованого механізму для цього. Це можна зробити, але вам потрібно буде щось написати, щоб робити те, що ви хочете, і вам, ймовірно, доведеться гнатись з недокументованими API.

Один із плакатів тут, grawity, має право w / виклику CreateProcessAsUser (), але спочатку потрібно створити маркер з незадокументованим нативним API zwCreateToken. Якщо ви вбили провідника і запустили новий екземпляр Explorer w / CreateProcessAsUser (), я впевнений, що ви хочете, що хочете.

Корпорація Майкрософт не робить те, що ви хочете зробити легко, оскільки це не те, як вони хочуть, щоб ви використовували NT. Якщо вам потрібно ввійти в систему, як користувач, щоб усунути їхні проблеми, то в більшості випадків про це ви робите неоптимальний спосіб.

Ви можете внести зміни до реєстру користувача без входу в систему як вони (приєднавши вулик реєстру та маніпулюючи ним таким чином). Ви можете вносити зміни до файлів у їхньому профілі користувача без реєстрації як користувач. Якщо вам потрібно "налаштувати електронну пошту" або іншу таку діяльність "як користувач", вам слід писати сценарії або скористатися вбудованою функціональністю (Шаблони адміністративних груп, параметри тощо), щоб зробити вашу брудну роботу за вас.

Якщо вам це потрібно зробити, подивіться на RunAsEx у проекті Code. Цей код повинен дати вам досить гарне уявлення про те, що вам потрібно зробити. Я не пробував програму, але, схоже, все відбувається правильно.


5

У Windows XP та пізніших версіях можна використовувати таку команду:

RunAs.exe

Параметри командного рядка доступні тут .

Це не спрацює, не знаючи пароль користувачів. Я не вірю, що в Windows існує спосіб працювати під обліковим записом користувачів без пароля через завантаження ідентифікаторів безпеки.


3
Я вважаю, що програма RunAs все ще вимагає від вас знати пароль користувачів, на який я вважаю, що оригінальний запитання невідомий
Кевін Купал

Ви маєте рацію ... Я про це забув.
Doug Luxem

2

(Лише здогадка.) Якщо у вашому обліковому записі є SeCreateTokenPrivilege, ви можете написати невелику програму для створення процесу за допомогою CreateProcessAsUser()або подібної функції ... (Але навіть адміністратори за замовчуванням не мають привілею.)


2

Хоча я не маю особистого досвіду роботи з деякими з рішень судо, згаданих на цьому веб-сайті, настійно рекомендую nonadmin, розпочатий чудовим Аароном Маргосісом . Це величезна допомога, коли ви розкручуєте обмежених користувачів. Я в основному щось стрибав, оскільки всі інші говорять про використання Рунаса. Однак я думаю, що більшість або всі ці так звані sudo для Windows займаються більше висотою, а не виступають як інший користувач без пароля.


0

Провідник Process procexp.exe на http://live.sysinternals.com має запуск як обмежений користувач (у меню файлу), який дозволить вам запускати програму за допомогою ваших поточних даних, але ваш ACL відключений до рівня звичайного користувач (не адміністратор) користувач. Не те, що ви точно хотіли, але добре для тестування.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.