Эта страница является переводом 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 выполнил Александр Боковой.

Перевод на русский язык выполнил Айзятуллен Рамиль.

Обсудить данный перевод можно в соответствующей ветке форума.