Работа с net
В состав Эллес входит утилита командной строки net, предназначенная для выполнения административных операций, аналогичных возможностям команды net в ОС Windows (полный путь к утилите после установки пакета inno-samba: /app/inno-samba/bin/net). Она обеспечивает унифицированный интерфейс для управления локальными и удаленными общими ресурсами, пользователями, доменами и конфигурацией Эллес.
Утилита может работать в трех режимах (если не указан, определяется автоматически): ADS (Active Directory Service), DCE/RPC (Distributed Computing Environment / Remote Procedure Calls) и RAP (Remote Administration Protocol).
В данном разделе приводится описание команд и подкоманд, связанных с управлением общими сетевыми ресурсами и конфигурацией Эллес в части работы с такими ресурсами.
См. полное описание всех доступных команд, подкоманд, общих параметров и аргументов в справочном руководстве по net после установки Эллес на ОС Linux:
man net
Общий формат вызова
Общий формат вызова утилиты:
net [режим] <команда> [подкоманда] [аргументы] [параметры]
Элементы формата:
-
режим— протокол/контекст вызова (ads,rap,rpc); если не указан, определяется автоматически; -
команда— группа подкоманд (share,conf,usershareи др.); -
подкоманда— определенное действие (add,list,deleteи др.); -
аргументы— аргументы подкоманды; -
параметры— параметры подключения, аутентификации, отладки, логирования, вывода и другие параметры.
Пример выполнения подкоманды list команды share с параметром --long с помощью RPC-вызова на удаленном сервере от имени указанного доменного пользователя:
net rpc share list --long \
-S fs01.elles.inno.tech \
-U Administrator@ELLES.INNO.TECH
Общие параметры
Общие параметры управляют подключением, аутентификацией, отладкой и другими аспектами работы утилиты.
Приводятся описания только основных параметров.
Подключение
Параметры подключения:
-
параметры подключения к удаленному серверу:
-
-I IP|--ipaddress=IP— IP-адрес удаленного сервера для подключения; -
-p PORT|--port=PORT— TCP-порт на удаленном сервере для подключения (по умолчанию используется сначала порт 445, а затем — 139); -
-S SERVER|--server=SERVER— DNS/NetBIOS-имя хоста удаленного сервера для подключения; -
-w TARGETWORKGROUP|--target-workgroup=TARGETWORKGROUP— домен/рабочая группа для подключения;
-
-
параметры локального сервера, используемые при подключении:
-
-n NETBIOSNAME|--netbiosname=NETBIOSNAME— NetBIOS-имя локального сервера (по умолчанию совпадает с первой частью DNS-имени хоста; переопределяет значение соответствующего параметра в smb.conf); -
-r REALM|--realm=REALM— область безопасности Kerberos локального сервера (по умолчанию соответствует DNS-имени сервера Kerberos; переопределяет значение соответствующего параметра в smb.conf); -
-W WORKGROUP|--workgroup=WORKGROUP— рабочая группа локального сервера (по умолчанию совпадает с первой частью DNS-имени домена; переопределяет значение соответствующего параметра в smb.conf).
-
Аутентификация
Параметры аутентификации:
-
-A AUTHFILE|--authentication-file=AUTHFILE— файл с реквизитами для аутентификации в формате:username = <value> password = <value> domain = <value>
-
-N|--no-pass— указывает на отсутствие необходимости запрашивать у пользователя пароль; -
-P|--machine-pass— использовать сохраненный пароль учетной записи компьютера; -
--password— пароль пользователя для передачи в командной строке; -
--simple-bind-dn=DN— уникальное имя для использованияnetпри простом удаленном подключении; -
-U [DOMAIN/]USERNAME[%PASSWORD]|--user=[DOMAIN/]USERNAME[%PASSWORD]— имя пользователя либо имя пользователя и пароль; -
--use-kerberos=desired|required|off— необходимость аутентификации с использованием Kerberos;Для аутентификации с помощью Kerberos при подключении к службе вместо IP-адресов необходимо использовать DNS-имена.
-
--use-krb5-ccache=CCACHE— расположение кэша учетных данных для аутентификации с использованием Kerberos.Задание данного параметра означает, что
--use-kerberos=required.
Отладка и логирование
Параметры отладки и логирования:
-
-d LEVEL|--debuglevel=LEVEL— уровень логирования (целое число от 0 до 10); значение по умолчанию —1); -
--debug-stdout— выводить отладочные сообщения в stdout; -
-l PATH|--log-basename=PATH— временный путь для логов; -
-v|--verbose— расширенный вывод.
Формат вывода
Параметры формата вывода (поддерживаются некоторыми контекстами и подкомандами):
-
--long— вывод подробной информации о каждом элементе перечня; -
--json— вывод в JSON.
Прочее
Прочие параметры:
-
--configfile=FILE— путь к конфигурационному файлу smb.conf (если отличается от пути по умолчанию: /app/inno-samba/etc/smb.conf); -
-h|--help— краткая справка; -
--option="NAME=VALUE"— переопределение параметра в конфигурационном файле smb.conf в момент вызова; -
-V|--version— версия Эллес.
Управление общими ресурсами
Команда net [rpc] share предназначена для работы со списком общих ресурсов, доступных по протоколу SMB на локальном или удаленном сервере.
Формат вызова:
-
просмотр всех существующих общих ресурсов на локальном или указанном удаленном сервере:
net [rpc] share [list] [параметры]
-
добавление общего ресурса с локального или указанного удаленного сервера:
net [rpc] share add <имя_ресурса=путь_к_ресурсу_на_сервере> [-C <комментарий>] [-M <макс_кол_во_польз>] [параметры]
Дополнительные параметры:
-
-C COMMENT|--comment=COMMENT— произвольное текстовое описание общего ресурса; -
-M NUM|--maxusers=NUM— максимальное количество пользователей, которые могут работать с общим ресурсом одновременно.
-
-
удаление общего ресурса с локального или указанного удаленного сервера:
net [rpc] share delete <имя_ресурса> [параметры]
-
получение информации о пользователях, которым разрешен доступ ко всем общим ресурсам или к указанному общему ресурсу на локальном или указанном удаленном сервере:
net [rpc] share allowedusers [<имя_ресурса>] [параметры]
-
перенос файлов из общих ресурсов, общих ресурсов и/или разрешений на общие ресурсы с удаленного сервера на локальный:
net [rpc] share migrate [all|files|shares|security] [параметры]
Примеры:
-
просмотр всех существующих общих ресурсов на указанном сервере:
net rpc share list --long \ -S fs01.elles.inno.tech \ -U Administrator@ELLES.INNO.TECH Enumerating shared resources (exports) on remote server: Share name Type Description ---------- ---- ----------- ADMIN$ Disk Remote Admin C$ Disk Default share documents Disk Internal documents IPC$ IPC Remote IPC NETLOGON Disk Logon server share software Disk Internal software SYSVOL Disk Logon server share -
добавление общего ресурса с указанного удаленного сервера:
net rpc share add documents="C:\shares\documents" -C "Shared documents" \ -S fs01.elles.inno.tech \ -U Administrator@ELLES.INNO.TECH -
удаление общего ресурса с указанного удаленного сервера:
net rpc share delete documents \ -S fs01.elles.inno.tech \ -U Administrator@ELLES.INNO.TECH
Управление конфигурацией
Команда net [rpc] conf предназначена для работы с конфигурацией Эллес, хранящейся в реестре. Сервер Эллес может хранить настройки не только в конфигурационном файле smb.conf, но и в специальной базе реестра. Это позволяет централизованно редактировать и распространять конфигурацию.
Перед использованием команды необходимо включить поддержку конфигурирования через реестр одним из следующих способов:
-
смешанный режим — часть конфигурации хранится в smb.conf, часть — в реестре; чтобы включить режим, добавьте в раздел
globalфайла smb.conf:[global] include = registry registry shares = yes -
реестровый режим — вся конфигурация берется из базы реестра; чтобы включить режим, добавьте в раздел
globalфайла smb.conf:[global] config backend = registry
Формат вызова:
-
получение полной конфигурации из реестра в формате настроек, принятом в smb.conf:
net [rpc] conf list [параметры]
-
импорт настроек из файла в формате smb.conf в реестр:
net [rpc] conf import <имя_файла> [-T] [<раздел>] [параметры]
Дополнительные параметры:
-
-T|--test— тестовый режим, в котором изменения фактически не вносятся, а только передаются в вывод; -
раздел, настройки из которого необходимо импортировать.
-
-
получение списка общих ресурсов, определенных в реестре:
net [rpc] conf listshares [параметры]
-
удаление всей конфигурации из реестра:
net [rpc] conf drop [параметры]
-
получить содержимое конкретного раздела конфигурации в реестре, определяющего общий ресурс:
net [rpc] conf showshare <имя_ресурса>
-
добавление общего ресурса в реестр:
net [rpc] conf addshare <имя_ресурса> <путь> [writeable={y|n}] [guest_ok={y|n}] [параметры]Дополнительные параметры:
-
writeable={y|n}— возможность записи (значение по умолчанию —n); -
guest_ok={y|n}— гостевой (анонимный) доступ (значение по умолчанию —n); -
описание ресурса.
-
-
удаление общего ресурса из реестра:
net [rpc] conf delshare <имя_ресурса> [параметры]
-
добавление параметра в раздел конфигурации в формате «ключ = значение»:
net [rpc] conf setparm <раздел_конфигурации> <имя_параметра> <значение> [параметры]
-
получение значения параметра из раздела конфигурации:
net [rpc] conf getparm <раздел_конфигурации> <имя_параметра> [параметры]
-
удаление параметра из раздела конфигурации:
net [rpc] conf delparm <раздел_конфигурации> <имя_параметра> [параметры]
-
получение include-файлов для раздела конфигурации:
net [rpc] conf getincludes <раздел_конфигурации> [параметры]
-
добавление include-файлов в раздел конфигурации:
net [rpc] conf setincludes <раздел_конфигурации> <путь_к_файлу_1> <путь_к_файлу_N> [параметры]
-
удаление include-файлов из раздела конфигурации:
net [rpc] conf delincludes <раздел_конфигурации> <путь_к_файлу_1> <путь_к_файлу_N> [параметры]
Примеры:
-
пример добавления общего ресурса в реестр:
net rpc conf addshare projects /srv/shared/projects \ writeable=y \ guest_ok=n \ "Project workspace" \ -U Administrator@ELLES.INNO.TECH -
получение определения общего ресурса из реестра:
net rpc conf showshare projects \ -U Administrator@ELLES.INNO.TECH ... [projects] path = /srv/shared/projects read only = no guest ok = no comment = Project workspace -
установка значения параметра для общего ресурса:
net rpc conf setparm projects \ valid users "@projectteam" \ browseable yes \ -U Administrator@ELLES.INNO.TECH -
удаление параметра для общего ресурса:
net rpc conf delparm projects \ browseable \ -U Administrator@ELLES.INNO.TECH
Управление пользовательскими общими ресурсами
Команда net usershare предназначена для управления пользовательскими общими ресурсами.
Эллес позволяет рядовым пользователям (не root) публиковать собственные общие ресурсы для доступа по сети без изменения конфигурации в файле smb.conf. Определения таких ресурсов размещаются в специальном каталоге, указанном в конфигурационном параметре usershare path в разделе global. Каждое определение представляет собой текстовый файл с описанием параметров конкретного ресурса (путь, ACL, комментарий и др.).
Также для указанного каталога должно быть ограничено максимальное количество пользовательских общих ресурсов, которое может быть в нем размещено, с помощью конфигурационного параметра usershare max shares в разделе global файла smb.conf.
Пример задания параметров:
[global]
usershare path = /srv/usershares
usershare max shares = 100
Формат вызова:
-
добавление пользовательского общего ресурса:
net usershare add <имя_польз_ресурса> <путь> [<комментарий>] [<имя_пользователя_1:{R|D|F}>,<имя_пользователя_N:{R|D|F}>] [guest_ok={y|n}] [параметры]Дополнительные параметры:
-
произвольное описание ресурса;
-
список пользователей с указанием уровня доступа в формате:
-
username:F— полный доступ (чтение и запись); -
username:R— только чтение; -
username:D— запрет доступа;
Если уровень доступа не задан, по умолчанию используется значение
Everyone:R— доступ на чтение для всех авторизованных пользователей. -
-
guest_ok={y|n}— гостевой (анонимный) доступ (значение по умолчанию —n);
-
-
удаление пользовательского общего ресурса:
net usershare delete <имя_польз_ресурса> [параметры]
-
получение информации о пользовательском общем ресурсе:
net usershare info <имя_польз_ресурса> [параметры]
Вместо имени конкретного ресурса может быть указан шаблон с использованием специальных символов "*" (соответствует любому количеству символов) и "?" (соответствует одному символу) для фильтрации ресурсов по имени.
-
получение списка имен пользовательских общих ресурсов, созданных текущим пользователем, или всеми пользователями (если передается параметр
--long):net usershare info [<шаблон_имени_польз_ресурса>] [--long] [параметры]
Может быть указан шаблон с использованием специальных символов "*" (соответствует любому количеству символов) и "?" (соответствует одному символу) для фильтрации ресурсов по имени.
Примеры:
-
добавление пользовательского общего ресурса:
net usershare add documents /srv/shared/documents "Shared documents" "user1:F,user2:R" guest_ok=n
-
получение информации о пользовательском общем ресурсе:
net usershare info documents [documents] path=/srv/shared/documents comment=Shared documents usershare_acl=user1:F,user2:R guest_ok=n