Вроде бы такие простые вещи должны знать, но иногда в порыве паники всё вылетает из головы :). Как бы там не было, опишу здесь команды, которые применяются для этого, в *nix, windows системах.
Windows
Существует несколько команд, одна встроенная (runas), остальные ставятся отдельно (например, psexec из комплекта pstools).
– runas
Формат её следующий:
runas [{/profile|/noprofile}] /user:учетная_запись_пользователя program
но для повседневного выполнения, достаточно запомнить короткую форму (полное описание параметров можно найти в справке):
runas /user:учетная_запись_пользователя program
где, учетная_запись_пользователя может быть как локальной, так и доменной.
Примеры использования:
runas /user:mymachine\administrator CMD
runas /user:SCOT_DOMAIN\administrator NOTEPAD
runas /user:jDoe@swest.ss64.com "NOTEPAD \"my file.txt\""
Третий пример показывает, как нужно поступать, в случае, если программу, которую нужно запустить, содержит пробелы и нужно заключать в кавычки.
Плюсы – очевидны: минимум функционала, простота в использовании.
Минусы: нельзя запустить програму в фоне.
– psexec
Формат следующий:
psexec \\computer[,computer[,..] command
psexec @run_file command
Это вообще комбайн по фонкционалу, может запускать програму на удалённом компьютере от указанного пользователя, запуск в фоне и много другого. Полный перечень можно найти в справке к программе. Нам же будет интересны только опции, отвечающие за запуск от указанного юзера. Вот опции, которые нам будут интересны:
computer На каком компьютере запускать программу. По дефолту = локальный. Для запуска на всех компьютерах домена, вводим “\\*”
@run_file Запуск на всех компьютерах, укаханных в файле run_file.
-p psswd Задаёт пароль для пользователя, указанного через ключ -u user (опционально). Пароль задаётся в виде открытого текста. Если ключ стоит, а пароль не задан, при выполнении будет запрашиваться пароль
-s Запустить процесс с системным аккаунтом (аккаунт System)
-u user Specify a user name for login to remote computer(optional).
-d Don’t wait for the application to terminate. Only use for non-interactive applications.
Примеры использования:
psexec \\workstation64 ipconfig /all
psexec \\workstation64 "c:\Program Files\test.exe"
psexec -d "c:\program files\internet explorer\iexplore.exe"
Первая и вторая – запуск программы на компьютере workstation64, третья – запуск на локальной машине в фоновом режиме.
*nix
Здесь тоже 2 команды: одна как бы стандартная (su), а вторая – устанавливается отдельно (sudo).
– su
Формат:
su -c "command" user
Примеры использования:
su -c "less /home/fred/secret" fred
Выполнили команду от имени пользователя fred.
-sudo
Формат:
sudo -h | -K | -k | -L | -l | -V | -v
sudo [-bEHPS] [-c class|-] [-p prompt] [-u username|#uid] [VAR=value] {-i | -s | command}
Но лучше запомнить короткую форму:
sudo -u user command
Примеры использования:
sudo cat /var/log/auth.log
sudo -u fred mv /home/fred/secret /home/fred/supersecret
-pfexec (Только для Solaris)
pfexec command
3 коментарі “Выполняем команды от другого пользователя.”
“Как бы там не было, опишу здесь команды, которые применяются для этого, в *nix, windowsсистемах.”
Откуда взялся windows?
Что значит “откуда взялся”? Есть такая ОС, вот и для неё я так же привёл аналоги
Спасибо долго искал эту команду почему то все время писал run as отдельно runas оказывается вместе )))))))