Управление доступом к Samba-серверу на уровне пользователей

Все учётные записи Samba-сервера хранятся в файле /etc/samba/smbpasswd. Учётные записи пользователей, используемые Samba-сервере делятся на две категории:

- записи о компьютерах, входящих в домен;

- записи о пользователях, зарегистрированных на данном сервере.

Следует учитывать, что для того, чтобы создать и использовать любую учётную запись в файле /etc/samba/smbpasswd, предварительно необходимо создать соответствующую запись в файле/etc/passwd. Общее правило — для каждого пользователя в файле /etc/samba/smbpasswd обязательно должен существовать пользователь в файле /etc/passwd. Обратное утверждение неверно.

Для управления учётными записями в ОС МСВС предназначены утилиты useradd иpasswd.

USERADD – регистрирует в ОС МСВС нового пользователя.

Синтаксис:

useradd [параметры] имя_пользователя

Useradd -D

useradd -D [параметры]

Описание:

При запуске без параметра -D команда useradd создаёт новую учётную запись пользователя, используя значения из командной строки и системные значения по умолчанию. В зависимости от параметров командной строки, команда useradd обновляет системные файлы, а также может создать домашний каталог нового пользователя и скопировать файлы настроек.

Основные параметры:

-d домашний_каталог – для создаваемого пользователя будет использован каталог домашний_каталог в качестве начального каталога. По умолчанию, это значение получается объединением имени_пользователя с базовым_каталогом, где находятся все домашние каталоги пользователей ОС МСВС, и используется как имя домашнего каталога.

-s оболочка – имя регистрационной оболочки пользователя. Если задать пустое значение, то будет использована регистрационная оболочка по умолчанию.

-p пароль – шифрованное значение пароля, которое возвращает функция crypt. По умолчанию учётная запись заблокирована.

-g главная_группа_пользователя – имя или числовой идентификатор новой начальной группы пользователя. Группа с таким именем должна существовать. Идентификатор группы должен указывать на уже существующую группу. Идентификатор группы по умолчанию равен 1 или значению указанному в файле /etc/default/useradd.

-G группа1[,группа2,...[,группаn]]] – список дополнительных групп, в которых числится пользователь. Перечисление групп осуществляется через запятую, без промежуточных пробелов. На указанные группы действуют те же ограничения, что и для группы указанной в параметре -g. По умолчанию пользователь входит только в начальную группу.

Примеры:

Создание нового пользователя test1 со всеми параметрами по-умолчанию (пока не будет новому пользователю определен пароль, этот пользователь будет заблокирован):

Useradd test1

Создание нового пользователя test2 с начальной группой primary_grp, дополнительной группой admin, оболочкой пользователя /bin/shell и домашним каталогом /home/user2:

useradd -g primary_grp -G admin -s /bin/shell -d /home/user2 test2

PASSWD – изменяет пароль пользователя в ОС МСВС.

Синтаксис:

passwd [параметры] имя

Описание:

Программа passwd изменяет пароли пользовательских учётных записей. Обычный пользователь может изменить пароль только своей учётной записи, суперпользователь (root) может изменить пароль любой учётной записи. Программа passwd также изменяет информацию об учётной записи: полное имя пользователя, регистрационную оболочку командной строки или дату устаревания пароля и интервал.

Основные параметры:

-d – удалить пароль пользователя (сделать его пустым). Это быстрый способ заблокировать пароль учётной записи.

-e – немедленно сделать пароль устаревшим. В результате это заставит пользователя изменить пароль при следующем входе в систему.

-i дней – этот параметр используется для блокировки учётной записи по прошествии заданного числа дней после устаревания пароля. То есть, если пароль устарел и прошло более указанных дней, то пользователь больше не сможет использовать данную учётную запись.

-l – заблокировать указанную учётную запись. Этот параметр блокирует учётную запись изменяя значение пароля на вариант, который не может быть шифрованным паролем.

-m мин_дней – задать минимальное количество дней между сменой пароля. Нулевое значение этого поля указывает на то, что пользователь может менять свой пароль когда захочет.

-S – показать состояние учётной записи. Информация о состоянии содержит 7 полей. Первое поле содержит имя учётной записи. Второе поле указывает, заблокирована ли учётная запись (L), она без пароля (NP) или у неё есть рабочий пароль (P). Третье поле хранит дату последнего изменения пароля. В следующих четырёх полях хранятся минимальный срок, максимальный срок, период выдачи предупреждения и период неактивности пароля. Эти сроки измеряются в днях.

-u – разблокировать указанную учётную запись. Этот параметр активирует учётную запись изменяя пароль на прежнее значение (которое было перед использованием параметра -l).

-w пред_дней – установить число дней выдачи предупреждения, перед тем как потребуется смена пароля. В параметре пред_дней указывается число дней перед тем как пароль устареет, в течении которых пользователю будут напоминать, что пароль скоро устареет.

-x макс_дней – установить максимальное количество дней, в течении которых пароль остаётся рабочим. После макс_дней пароль нужно изменить.

Примеры:

Установить пользователю test1 новый пароль:

Passwd test1

Заблокировать учётную запись test2:

passwd –l test2

Показать состояние учётной записи test3:

passwd –S test3

Для управления учётными записями в Samba-сервере предназначена утилита smbpasswd, далее рассмотрены наиболее частые методы использования:

SMBPASSWD – изменяет пароль пользователя Samba-сервера.

Синтаксис:

smbpasswd [параметры] [имя_пользователя]

Описание:

smbpasswd позволяет пользователю изменить его зашифрованный пароль Samba-сервера, который записывается в файл smbpasswd. Обычные пользователи могут только запускать команду без указания опций. Им будет выдано приглашение на ввод их старого пароля а затем приглашение на ввод нового пароля два раза для того, чтобы убедится в правильности ввода пароля.

Основные параметры:

-a– задает имя пользователя, которое должно быть добавлено в файл smbpasswd, при вводе нового пароля. Эта опция игнорируется если имя_пользователя уже существует в файле smbpasswd. В этом случае команда с данной опцией трактуется просто как команда без опции, для изменения пароля. Пользователь, которого нужно добавить должен уже существовать в файле паролей ОС МСВС (обычно /etc/passwd) иначе пользователь добавлен не будет.

-d – эта опция отключит пользователя в локальном файле smbpasswd. Она установит пользователю флаг 'D' в параметрах пользователя в файле smbpasswd. При активации этого параметра все попытки аутентификации через SMB с этим именем пользователя станут невозможны.

-x – эта опция определяет имя пользователя для удаления из локального файла smbpasswd. Этот параметр используется только при запуске программы smbpasswd с правами пользователя root.

-e – эта опцияактивирует ранее отключенное имя пользователя в локальном файле smbpasswd. Не будет иметь эффекта если учетная запись не была ранее отключена. После активации пользователь снова сможет аутентифицироваться по протоколу SMB.

Примеры:

Создание нового пользователя:

smbpasswd -a <имя_пользователя>

Смена пароля у существующего пользователя:

smbpasswd <имя_пользователя>

Удаление существующего пользователя:

smbpasswd -x <имя_пользователя>

Приостановление учётной записи без удаления:

smbpasswd -d <имя_пользователя>

Активация учетной записи пользователя:

smbpasswd -e <имя_пользователя>

Операции создания нового пользователя и активация учетной записи пользователя необходимо последовательно выполнять для каждого пользователя, которого необходимо добавить в Samba-сервер.

Настройка Samba-клиента

Для подключения компьютера с ОС МСВС к локальным сетям Windows существуют клиентские функции Samba. Клиентские функции Samba представлены средствами просмотра сетевого окружения и монтирования файловых систем smbclient и smbmount соответственно. При запуске эти программы считывают текущую конфигурацию из файла /etc /smb.conf и используют доменные функции в случае, если машина подключена к домену Windows.

Также файловые системы возможно монтировать системной командой mount, указав в качестве типа файловой системы smbfs.

Например, для того, чтобы смонтировать в каталог /mnt/disk ресурс public с машины smallserver под именем cooluser, нужно выполнить команду:

smbmount //smallserver/public /mnt/disk -o username=cooluser

или команду:

mount -t smbfs //smallserver/public /mnt/disk -o username=cooluser

Регистр написания имён компьютеров, ресурсов и пользователей роли не играет. Для того, чтобы получить список Samba-ресурсов данной машины и список машин рабочей группы или домена достаточно выполнить команду:

smbclient -L localhost –N

где параметр:

-L – позволяет просмотреть список Samba-ресурсов;

localhost– указывает на имя хоста (localhost – имя локального хоста);

-N – отключает приглашение ввода пароля. Это бывает полезно, когда используется служба, не требующая пароля.