rpcclient (command line MS-RPC client)
Эта страница является переводом man rpcclient(1)
из пакета Samba.
Имя
rpcclient — утилита для запуска на стороне клиента функций MS-RPC.
СИНТАКСИС
rpcclient [-A authfile] [-c <command string>] [-d debuglevel] [-h] \
[-l logdir] [-N] [-s <smb config file>] [-U username[%password]] \
[-W workgroup] [-N] [-I destinationIP] {server}
ОПИСАНИЕ
Утилита я вляется частью пакета samba(7)
.
rpcclient
утилита изначально разработанная для тестирования функциональности в самой Samba. Она пошла несколько этапов развития и стабильности. Сегодня многие системные администраторы пишут с помощью этой утилиты скрипты для управления Windows NT клиентом на рабочих станциях UNIX.
ПАРАМЕТРЫ
server
NetBIOS имя сервера к которому осуществляется подключение. Сервер можетбыть любым SMB/CIFS сервером. Имя разрешается использованием параметра name resolve order
в файле smb.conf.
-c | --command='command string'
выполняет команды разделенные точкой с запятой (смотрите ниже).
-I IP-address
IP адрес сервера к которому осуществляется подключение. Он указывается в формате a.b.c.d
Обычно клиент разрешает имя SMB/CIFS сервера через механиз разрешения имен NetBIOS указанный в параметре name resolve order
. Использование этого параметра принуждает клиента считать что сервер находится на указаном в параметре IP адресе и компонент NetBIOS имя ресурса при подключении игнорируется.
Это не является значением по умолчанию. Если параметр не указан то сервер определяется автоматически как описано в предыдущем параметре.
-d | --debuglevel=level
level — это целое число от 0 до 10. По-умолчанию значение не определено 0.
Чем выше это значение, тем более детальными будут лог-файлы активности на сервере. При значении уровня равном 0, только критические ошибки и серьезные предупреждения будут записаны в лог-файл. Уровень 1 вполне достаточен для ежедневного использования – будет записана основная информация о произведенных операциях .
Уровни выше первого будут генерировать больше данных, поэтому их следует использовать при возникновении каких-либо проблем. Уровни выше 3 используются разработчиками — генерируются огромные логи, по большей части трудно читаемые.
Определение этого параметра в команде имеет больший приоритет, нежели параметр log level
в smb.conf
-V
Выводит версию программы.
-s <configuration file>
Указанный файл должен содержать конфигурационные данные, необходимые серверу. Данные в этом файле содержат специфические для сервера параметры, например используемый файл printcap. Также в файле присутствуют описания всех служб, предоставляемых сервером (подробнее см. smb.conf). Имя файла по-умолчанию определяется во время компиляции.
-l | --log-basename=logdirectory
Главная директория файлов лога и отладки. К файлу будет добавлено расширение .progname
(например log.smbclient
, log.smbd
и т.д.). Лог-файлы никогда не удаляются клиентом.
-N
Подавляет приглашение ввода пароля. Используется если осуществляется доступ к службе не требующей ввода пароля.
Если пароль указан в командной строке или этот параметр не указан будет запрашиваться пароль.
Если пароль указан в командной строке и этот параметр определен то пароль командной строки будет проигнорирован.
-k
Попытаться авторизоваться через kerberos. Иссользуется только в среде Active Directory.
-A | --authentication-file=filename
Параметр позволит указать файл, содержащий имя пользователя и пароль используемый для подключения. Формат файла ниже:
username = <value>
password = <value>
domain = <value>
Убедитесь что права доступа к этому файлу ограничены для нежелательных пользователей.
-U | --user=username[%password]
Задать SMB имя пользователя или имя пользователя и пароль.
Если %password
не указан то пользователю будет выведено предожение вввести пароль. Клиент сначала проверит переменную USER
, потом переменную LOGNAME
и если они существуют переведет значение в верхний регистр. Если эти переменные не существуют то будет использовано имя пользователя GUEST
.
Третий вариант это использование файла пролномочий содержащего незашифрованый логин пароль. Этот вариант применим для скриптов в которых администратор не хочет вводить пароль в командной строке или использовать значение переменных. При использовании этого метода удостоверьтесь что к файлу паролей нет доступа нежелательным пользователям. Смотрите более подробно параметр -A
.
Будьте осторожны используя пароли в скриптах. На многих системах командную строку запущенного процесса видно через команду ps. Для безопасности используйте приглашение ввода пароля при запуске команды rpcclient
и ввводите пароль напрямую.
-n <primary NetBIOS name>
Параметр позволяет переопределить NetBIOS имя используемое Samba. Это идентично указанию параметра netbios name
в файле smb.conf. Однако настройки командной строки имеют приоритет над установками в файле smb.conf.
-i <scope>
Определяет область NetBIOS в которой nmblookup
используется для генерациии мен NetBIOS. Более подробно об использовании областей NetBIOS, смотрите RFC 1001 и RFC 1002. Области NetBIOS используются очень редко, используйте этот параметр только если вы системный администратор, отвечающий за все соединенные системы.
-W | --workgroup=domain
Задать SMB имя домена. Переопределит домен по умолчанию установленый в smb.conf. Если указали домен такой же как NetBIOS имя сервера, то клиент залогинится используя локальный сервер SAM (отличный от Domain SAM).
-O <socket options>
Параметр TCP socket options установит client socket. Смотрите параметр socket options
файла smb.conf для указания действительных значений.
-h | --help
Выводит суммарную информацию о параметрах.
КОМАНДЫ
LSARPC
lsaquery
Запрос информации о политике.
lookupsids
Разрешает список SIDов в имена пользователей.
lookupnames
Разрешает список имен в SIDы.
enumtrusts
Перечисляет доверенные домены.
enumprivs
Перечисляет привилегии.
getdispname
Получить имя привилегии.
lsaenumsid
Перечисляет LSA SIDS.
lsaenumprivsaccount
Перечислит привилегии SID.
lsaenumacctrights
Перечислит права SID.
lsaenumacctwithright
Перечислит учетные записи с правами.
lsaaddacctrights
Добавить права для учетной записи.
lsaremoveacctrights
Удалить права для учетной записи.
lsalookupprivvalue
Получить значение привилегии для имени.
lsaquerysecobj
Запрос LSA безопасности объекта.
LSARPC-DS
dsroledominfo
Получить информацию Первичного домена.
DFS
dfsexist
Запрос поддержки DFS.
dfsadd
Добавить общий ресурс DFS.
dfsremove
Удалить общий ресурс DFS.
dfsgetinfo
Запос информации об общем ресурсе DFS.
dfsenum
Перечислить общие ресурсы DFS.
REG
shutdown
Удаленное выключение.
abortshutdown
Прервать перезагрузку.
SRVSVC
srvinfo
Запрос информации о сервере.
netshareenum
Перечислить общие ресурсы.
netfileenum
Перечислить открытые файлы.
netremotetod
Получить с удаленного сервера время и дату.
SAMR
queryuser
Запрос информации о пользователе.
querygroup
Запрос информации о группе.
queryusergroups
Запрос информации о группе пользователя.
querygroupmem
Запрос членства в группе.
queryaliasmem
Запос псевдонимов.
querydispinfo
Запрос информации на дисплей.
querydominfo
Запос доменной информации.
enumdomusers
Перечислить пользователей домена.
enumdomgroups
Перечислить доменные группы.
enumalsgroups
Перечислить группы псевдонимов.
createdomuser
Создать пользователя домена.
samlookupnames
Посмотреть имена.
samlookuprids
Посмотреть имена.
deletedomuser
Удалить пользователя домена.
samquerysecobj
Запрос к SAMR объекту безопасности.
getdompwinfo
Получить информацию о пароле домена.
lookupdomain
Разрешить домен.
SPOOLSS
adddriver <arch> <config> [<version>]
Выпольнить запрос AddPrinterDriver()
RPC для установки информации о драйвере принтера на сервер. Обратите внимание что драйвера уже должны быть в директории возвращаемой командой getdriverdir
. Возможные значения для аргумента arch такие же как для команды getdriverdir
. Возможные значения для аргумента config
даны ниже:
Long Printer Name:\
Driver File Name:\
Data File Name:\
Config File Name:\
Help File Name:\
Language Monitor Name:\
Default Data Type:\
Comma Separated list of Files
Любые пустые поля воспримутся как строка "NULL".
В Samba нет необходимости поддерживать концепцию Мониторов Принтера, так как она используется только для локальных принтеров, локальный пользователь в этом случае может использовать двунаправленное соединение для общения с принтером. Это поле должно принимать значение "NULL". На удаленном сервере печати NT Монитор Принтера для драйвера должен быть установлер до добавления драйверов или RPC не выполнится.
Опция version
позволяет указать номер версии драйвера принтера. Если опция опущена будет использован драйвер по умолчанию для используемого оборудования. Эта опция может быть использована для загрузки драйвера принтера Windows 2000 (версии 3).
addprinter <printername> <sharename> <drivername> <port>
Добавить принтер на удаленном сервере. Этот принтер будет автоматически расшарен (прим. Переводчика: простите за сленг). Помните что драйвер принтера уже должен быть установлен на сервере (смотрите adddriver
) и параметр port
должен иметь действительное имя порта (смотрите enumports
).
deldriver
Удалить указаный драйвер принтера для всех архитектур. Это не удалит сам драйвер с сервера, а только изменит список доступных принтеров на сервере.
deldriverex <driver> [architecture] [version]
Удалить указанные драйвера принтера, включая файлы драйвера. Вы можете ограничить это действие для конкретной архитектуры и конкретной версии. Если не указана архитектура, все файлы драйверов этого принтера будут удалены.
enumdata
Перечислить все настройки принтера, хранящиеся на сервере. На клиентах Windows NT, эти значения хранятся в реестре, а Samba Servers хранит их в файле принтеров TDB. Эта команда соответствует функции MS Platform SDK GetPrinterData()
(* Эта команда в настоящее время невыполнима).
enumdataex
Перечислить ключи принтеров (Прим. переводчика: не понял о чем тут).
enumjobs <printer>
Список заданий и статус выбранного принтера. Эта команда соответствует функции MS Platform SDK EnumJobs()
.
enumkey
Перечислить ключи принтера.
enumports [level]
Выполнить вызов EnumPorts()
используя определенный уровень вывода информации. Сейчас поддерживаются уровни 1 и 2.
enumdrivers [level]
Выполнить запрос EnumPrinterDrivers()
. В этом списке перечислены различные установленные драйверы принтеров для всех архитектур. Обратитесь к документации MS Platform SDK для более подробной информации о различных флагах, опций вызовов. Сейчас поддерживаются уровни информации 1, 2 и 3.
enumprinters [level]
Выполнить запрос EnumPrinters()
. Выводит список установленных и совместно используемых принтеров. Обратитесь к документации MS Platform SDK для более подробной информации о различных флагах, опций вызовов. Сейчас поддерживаются уровни информации 1, 2 и 5.
getdata <printername> <valuename;>
Получить данные о текущих настройках принтера. См. enumdata
команды для получения дополнительной информации. Эта команда соответствует функции GetPrinterData()
MS Platform SDK.
getdataex
Получить данные о драйвере принтера с keyname
.
getdriver <printername>
Получить информацию (такую как файл драйвера, конфигурационный файл, зависимые файлы, и т.д.) для указаного принтера. Эта команда соответствует функции GetPrinterDriver()
MS Platform SDK. Сейчас поддерживаются уровни информации 1, 2 и 3.
getdriverdir <arch>
Выполнить запрос GetPrinterDriverDirectory()
RPC для получения имени общего ресурса SMB и поддиректорию для сохранения файлов драйверов принтера для выбранной архитектуры. Приемлимые значения для arch это "Windows 4.0" (for Windows 95/98), "Windows NT x86", "Windows NT PowerPC", "Windows Alpha_AXP" и "Windows NT R4000".
getprinter <printername>
Получить информацию с текущего принтера. Эта команда соответствует функции GetPrinter()
MS Platform SDK.
getprintprocdir
Получить директорию процессора принтера.
openprinter <printername>
Выполнить запросы OpenPrinterEx()
и ClosePrinter()
RPC на выбраном принтере.
setdriver <printername> <drivername>
Выполнить команду SetPrinter()
для обновления ассоциации драйверов принтера с установленными драйверами. Драйвер уже должен быть корректно установлен на принт сервере.
Смотрите также команды enumprinters
и enumdrivers
для получения списка установленных принтеров и драйверов.
addform
Добавить форму.
setform
Установить форму.
getform
Получить форму.
deleteform
Удалить форму.
enumforms
Вывести форму.
setprinter
Установить комментарий для принтера.
setprinterdata
Установить REG_SZ данные принтера.
setprintername <printername> <newprintername>
Установить имя для принтера.
rffpcnex
Тест Rffpcnex.
NETLOGON
logonctrl2
Контроль подключения 2.
logonctrl
Контроль подключения.
samsync
Синхронизация Sam.
samdeltas
Запрос Sam Deltas.
samlogon
Подключение Sam.
ОБЩИЕ КОМАНДЫ
debuglevel
Установить текущий уровень отладки логов.
help (?)
Выводит список всех существующих команд или расширеную помощь Print a listing of all known commands or extended help по конклетной команде.
quit (exit)
выход из rpcclient.
ОШИБКИ
rpcclient
разработана как инструмент тестирования для разработчиков и не может надежно работать в определенных областях (например при анализе опций командной строки). И создает core dump при передаче неправильных параметров полученых интерпретатором.
Из оригинального man Luke Leighton'на:
ВНИМАНИЕ! MSRPC через SMB была разработана на основе анализа трассировки сети. Нет официальной документации от создателей (Microsoft) о том, как работает MSRPC через SMB, или как работают отдельные сервисы MSRPC. Реализация от Microsoft's для этого сервиса была проанализирована (и сообщаем), что она … местами немного запутана.
Реализация для Samba также немного запутана, реализованы сервисы в которых удалось разобраться, и дальнейшее развитие smbd(8)
и rpcclient(1)
может привести к несовместимоси некоторых команд и сервисов. Кроме того разработчики отправляют в Microsoft отчеты об обнаруженых ошибках или Microsoft фиксит ошибки в Service Packs, что также приводит к несовместимости.
ВЕРСИЯ
Этот man написан для версии 3 пакета Samba.
АВТОР
Изначально Samba и сопутствующие утилиты были разработаны Эндрю Тридгеллом (Andrew Tridgell). Сейчас Samba разрабатывается Samba Team в качестве Open Source проекта – напоминает то, как разрабатывается ядро Linux.
Оригинальный текст этого man была написана Matthew Geddes, Luke Kenneth Casson Leighton и переработана впоследствии Gerald Carter. Перенос в формат DocBook для Samba 2.2 выполнил Gerald Carter. Конвертацию в формат DocBook XML 4.2 для Samba 3.0 выполнил Александр Боковой.
Перевод на русский язык выполнил Айзятуллен Рамиль.
Обсудить данный перевод можно в соответствующей ветке форума.
Ваш отзыв