Аппаратные средства и архитектура


Листинг 2. Создание группы и добавление в нее пользователя



Скачать 10.18 Mb.
Pdf просмотр
страница60/68
Дата22.11.2016
Размер10.18 Mb.
Просмотров7406
Скачиваний0
1   ...   56   57   58   59   60   61   62   63   ...   68
Листинг 2. Создание группы и добавление в нее пользователя
[tbost@samba
]$ sudo groupadd accounting
[tbost@samba
]$ sudo usermod -G accounting monty
[tbost@samba
]$ less /etc/group | grep accounting accounting:x:506:monty
[tbost@samba
]$
Для создания группы и добавления в нее пользователя в листинге 2 используются команды
/sbin/groupadd и /sbin/usermod. Если необходимо добавить в группу несколько пользователей, то можно создать сценарий или добавить пользователей непосредственно в файл /etc/group. Члены группы должны быть перечислены в последнем поле и разделяться запятыми (
,). Если вы создаете группы вручную, то не забывайте о том, что каждая группа должна иметь уникальный идентификатор (GID).
Управление учетными записями Samba
В стандартной конфигурации Samba информация об учетных записях хранится в одной из следующих внутренних баз данных паролей:

smbpasswd

tdbsam

ldapsam
Использование smbpasswd и tdbsam
База данных smbpasswd используется по умолчанию во всех версиях Samba ниже 3.4. В
Samba версии 3.4 smbpasswd была объявлена устаревшей и вместо нее используется база данных tdbsam (эта база данных также рекомендуется для сред, содержащих менее 250 пользователей).
База данных tdbsam считается лучше масштабируемой по сравнению с smbpasswd. Если вы работаете с версией Samba, в которой по умолчанию используется smbpasswd, то можете заменить эту базу данных на tdbsam, указав в файле smb.conf параметр passdb = tdbsam в разделе global.
Однако smbpasswd – это не просто база данных, но еще и инструмент из состава пакета
Samba, позволяющий управлять учетными записями Samba в простых конфигурациях. Для создания учетной записи Samba необходимо иметь права пользователя root. Прежде чем создавать учетную запись Samba, она должна существовать на локальном сервере Linux. В листинге 3 приведен пример создания учетной записи пользователя Samba с помощью
smbpasswd.
Листинг 3. Создание учетной записи пользователя Samba с помощью smbpasswd
[tbost@samba
]$ sudo smbpasswd -a monty
New SMB password:
Retype new SMB password:
Added user monty.
Пользователи могут использовать smbpasswd для смены своих паролей, как показано в листинге 4.
Листинг 4. Локальный пользователь может изменять свой пароль с помощью
smbpasswd
[monty@samba
]$ smbpasswd
Old SMB password:
New SMB password:
Retype new SMB password:
Password changed for user monty
[monty@samba
]$
Можно также так настроить Samba для синхронизации паролей, чтобы при каждом изменении пользователем пароля своей локальной учетной записи также обновлялся и пароль Samba:
[global]
unix password sync = yes
Если в течение какого-то времени пользователю не нужен доступ к серверу Samba, то можно временно отключить учетную запись и включить ее позже. Если пользователю вообще не нужен доступ к Samba, то его учетную запись можно удалить. В листинге 5 показано, как это сделать.
Листинг 5. Отключение, включение и удаление учетной записи Samba с помощью
smbpasswd
[tbost@samba
]$ sudo smbpasswd -d monty
Disabled user monty.
[tbost@samba
]$ sudo smbpasswd -e monty
Enabled user monty.
[tbost@samba
]$ sudo smbpasswd -x monty
Deleted user monty.
[tbost@samba
]$
Использование pdbedit
В составе Samba имеется многофункциональный инструмент под названием pdbedit. Этот инструмент может работать с учетными записями, хранящимися в любой из трех вышеперечисленных баз данных. Помимо создания, изменения и удаления пользователей,
pdbedit позволяет выполнять следующие действия:

Отображать список учетных записей пользователей.

Указывать домашние директории.

Импортировать учетные записи пользователей.

Назначать политики учетных записей.
При работе с базой данных tdbsam можно использовать как pdbedit, так и smbpasswd
(листинг 6). Для выполнения всех команд pdbedit необходимо обладать правами пользователя root.
Листинг 6. Выполнение различных действий с внутренней базой данных при помощи
smbpasswd и pdbedit
[tbost@samba
]$ sudo smbpasswd -a monty
New SMB password:
Retype new SMB password:
Added user monty.
[tbost@samba
]$ sudo pdbedit -L
monty:504:Monty Python
[tbost@samba
]# sudo pdbedit -L --verbose
Unix username: monty
NT username:
Account Flags: [U ]
User SID: S-1-5-21-2247757331-3676616310-3820305120-1001
Primary Group SID: S-1-5-21-2247757331-3676616310-3820305120-513
Full Name: Monty Python
Home Directory: \\samba\monty
HomeDir Drive:
Logon Script:
Profile Path: \\samba\monty\profile
Domain: SAMBA
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: never
Kickoff time: never
Password last set: Tue, 24 May 2011 14:19:46 CDT
Password can change: Tue, 24 May 2011 14:20:16 CDT
Password must change: Tue, 24 May 2011 14:20:16 CDT
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
В листинге 6 продемонстрировано, как можно создать пользователя с помощью smbpasswd, а затем вывести список пользователей Samba с помощью pdbedit.
Утилиту pdbedit можно также использовать для задания политик учетных записей. Ниже перечислены названия политик, которыми можно управлять:

min password length (минимальная длина пароля)

password history (сохранять историю паролей)

user must logon to change password (требовать смену пароля при следующем входе в систему)

maximum password age (максимальный срок действия пароля)

minimum password age (минимальный срок действия пароля)


lockout duration (время блокировки при неудачном входе)

reset count minutes (сброс счетчика минут блокировки учетной записи)

bad lockout attempt (блокировка при неудачной попытке входа)

disconnect time (время до отключения)

refuse machine password change (отклонять изменение пароля компьютера)
В листинге 7 мы устанавливаем минимальную длину пароля равной восьми символам, а затем устанавливаем максимальный срок действия пароля равным 30 дням. Опция
-P принимает строковый аргумент, который в точности должен совпадать с именем одной из вышеперечисленных политик, а опция
-c задает значение для выбранной политики.
Листинг 7. Управление учетными записями с помощью pdbedit
[tbost@samba
]$ sudo pdbedit -P 'min password length' -C 8

account policy "min password length" description: Minimal password length (default: 5)
account policy "min password length" value was: 5
account policy "min password length" value is now: 8
[tbost@samba
]$ sudo pdbedit -P 'maximum password age' -C 30

account policy "maximum password age" value was: 4294967295
account policy "maximum password age" value is now: 30
Для получения дополнительной информации о доступных командах утилиты pdbedit обратитесь к ее man-странице или выполните команду pdbedit -h.
Использование ldapsam
Если ваша среда содержит более 250 пользователей, то можно использовать внутреннюю базу данных ldapsam. Из всех трех вышеперечисленных баз данных только ldapsam может хранить данные об учетных записях групп. Если вся информация о пользователях и группах хранится во внутренней базе данных ldap, то идентификаторы пользователей и групп (UIDs и
GIDs, соответственно) будут согласованы между всеми вашими серверами. Поскольку настройка LDAP выходит за рамки этой статьи, я ограничусь информацией о том, что расположение LDAP-сервера определяется параметром idmap backend в файле smb.conf.
В следующем примере параметр idmap backend говорит Samba о том, что в качестве хранилища учетных данных она должна использовать службу каталогов LDAP, запущенную на узле с именем directory-services.example.org. В этом случае необходимо иметь рабочий сервер LDAP, предварительно настроенный на работу с Samba (более подробно утилита idmap будет рассмотрен в следующем разделе).
[global]
idmap backend = ldap:ldap://directory-services.example.org:636
Сопоставление учетных записей
Если ваш сервер Samba является рядовым сервером одного домена, то, вероятно, вы просто будете использовать файлы сопоставлений. Однако, если в вашей среде есть пользователи, которые подключаются к серверу Samba из другого домена, то корректное сопоставление идентификаторов пользователей и групп помогает выполнить утилита idmap.
Сопоставление пользователей с помощью sampasswd и TDB -файлов
Если имена пользователей Windows, подключающихся к серверу Samba, совпадают с именами на сервере Samba, то необходимость в файле сопоставлений отсутствует. В противном случае можно создать файл сопоставлений, который связывает имена
пользователей. Не забывайте о том, что хотя в Linux все имена и команды различают регистр, в Windows это не так. Таким образом, имя Windows-пользователя TBost и локальная учетная запись tbost – это не то же самое. В таблице 1 показанв сопоставления учетных записей
Windows и UNIX.
Таблица 1. Учетные записи Windows и UNIX для сопоставления
Windows UNIX
Monty monty bostt tbost sue.georgesue
Когда вы создаете учетные записи Samba, используйте имена учетных записей Windows. В файле smb.conf можно указать местоположение файла, содержащего сопоставления учетных записей с соответствующими учетными записями UNIX. В листинге 8 показано сопоставление учетных записей в UNIX.
Листинг 8. Простое сопоставление учетных записей в UNIX
[tbost@samba
]$ sudo vi /etc/samba/smb.conf
[global]
username map = /etc/samba/smbusers
[tbost@samba
]$ sudo vi /etc/samba/smbusers
# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin nobody = guest pcguest smbguest
monty = Monty
tbost = bostt
sue = sue.george
Команда в листинге 8 настраивает параметр username map на использование файла use
/etc/samba/smbusers в качестве файла сопоставлений. Процедура сопоставления учетных записей достаточно простая: слева указываются учетные записи UNIX, справа – учетные записи Samba, а между ними ставится знак равенства (
=). При подключении пользователя
Samba выполняет сопоставление соответствующей учетной записи.
Сопоставление групп
В типовой среде Samba сопоставление групп настраивается при помощи команды groupmap из состава Samba. Предположим, что пользователи Monty, bostt и sue.george являются членами групп Domain Admins, Domain Users и Domain Guests. Если вы хотите установить для групп этих пользователей такие же разрешения, что и для групп UNIX на сервере Samba, то добавьте имена учетных записей пользователей UNIX в каждую группу: adm:x:4:root,adm,daemon,monty,tbost,sue users:x:100:monty,tbost,sue guests:x:507:monty,tbost,sue
Это лишь часть списка групп на сервере Samba. Группы adm и users били созданы во время инсталляции операционной системы Linux. Вам необходимо добавить каждого пользователя в соответствующую группу (таблица 2).

Таблица 2. Учетные записи групп Windows и UNIX для сопоставления
Windows
UNIXWindows relative ID (RID)UNIX GID
Domain Admins adm 512 4
Domain Users users 513 100
Domain Guests guests 514 507
Команда net groupmap может выполнять сопоставление доменных групп (листинг 9), а команда net groupmap list выводит список этих сопоставлений. Начиная с Samba версии 3.х, доступна новая функциональность, предназначенная для сопоставления относительных идентификаторов Windows (RID) и идентификаторов групп UNIX (GID).
Листинг 9. Сопоставление групп с помощью команды groupmap
[tbost@samba
]$sudo net groupmap add ntgroup="Domain Admins" unixgroup=adm \
rid=512 type=d
Successfully added group Domain Admins to the mapping db as a domain group
[tbost@samba
]$ sudo net groupmap add ntgroup="Domain Users" unixgroup=users \
rid=513 type=d
Successfully added group Domain Users to the mapping db as a domain group
[tbost@samba
]$sudo net groupmap add ntgroup="Domain Guests" unixgroup=guests \
rid=514 type=d
Successfully added group Domain Guests to the mapping db as a domain group
[tbost@samba
]$sudo net groupmap list
Domain Users (S-1-5-21-2247757331-3676616310-3820305120-513) -> users
Domain Guests (S-1-5-21-2247757331-3676616310-3820305120-514) -> guests
Domain Admins (S-1-5-21-2247757331-3676616310-3820305120-512) -> adm
В листинге 9 выполняется следующая последовательность действий для сопоставления групп:
1. Выполнение команды net groupmap add с правами пользователя root для сопоставления Windows-группы Domain Admin (ntgroup='Domain Admin") с группой
UNIX adm (unixgroup=adm).
Выполнение этих действий для сопоставления каждой группы.
2. Последняя команда листинга 9 выводит список сопоставлений групп.
Сопоставление идентификационных данных
Рассмотренные сопоставления оказываются достаточными в большинстве сред. Тем не менее, если вы управляете более сложной средой, например, средой с несколькими серверами Samba или рабочими станциями из различных доменов, которые подключаются к серверу Samba, то следует знать о сопоставлении идентификационных данных (IDMAP) и
Winbind. IDMAP может помочь решить проблемы функциональной совместимости между идентификаторами безопасности Windows (SID) и локальными идентификаторами пользователей (UID) или групп (GID) UNIX.
Если сервер Samba является членом домена Windows, то для сопоставления идентификаторов
SID и UID (или GID) можно использовать Winbind. В файле smb.conf можно настроить диапазон значений параметра idmap и указать время, в течение которого Winbind должен кэшировать информацию об учетных записях:
[global]
idmap uid = 20000-50000
idmap gid = 20000-50000
winbind cache time = 300
Параметры, заданные в этом примере, указывают Winbind использовать диапазон локальных идентификаторов UID 20000-50000 и диапазон идентификаторов GID 20000-50000. Эта конфигурация относительно безопасна для сервера Samba, на котором не предполагается размещать несколько тысяч локальных учетных записей пользователей или групп. Параметр winbind cache time = 300 говорит Winbind о том, что информация об учетных записей должна кэшироваться 300 секунд. По умолчанию Winbind хранит сопоставления в файле winbind_idmap.tdb.
Принудительное назначение учетных записей по умолчанию
Вместо добавления каждого пользователя в группу более удобным может оказаться использование параметров force user и force group. Когда эти параметры заданы, они говорят Samba о том, что авторизованный пользователь при подключении должен иметь те права доступа, которые были установлены для указанного пользователя и группы. Это особенно полезно при настройке общего ресурса, доступного многим пользователям, для которых достаточно использовать общие права доступа:
[global]
username map = /etc/samba/smbusers
force user = guest
force group = +employees
В приведенном примере параметр force user рассматривает всех подключившихся пользователей, обращающихся к файлам, в качестве пользователя guest. При этом каждый пользователь должен подключаться с использованием действующей учетной записи. В рассмотренном примере в качестве учетных записей пользователей будет принудительно использоваться учетная запись guest, а в качестве учетных записей групп – учетная запись
employees.
Ресурсы

Оригинал статьи:
Learn Linux, 302 (Mixed environments): Managing user accounts and groups
(EN).

Базы данных для хранения учетных записей Samba
(EN) – глава 11 руководства Samba
3.х.

Сопоставление групп
(EN) – глава 12 руководства Samba 3.х.

Детальное описание инструмента pdbedit
(EN) из руководства pdbedit.

Сопоставление идентификационных данных (IDMAP)
(EN) для автономных и основных контроллеров домена – глава 14 руководства Samba.

На Web-сайте программы сертификации LPIC
(EN) вы найдете подробные цели, списки задач и примерные вопросы всех трех уровней сертификации на администратора Linux-систем профессионального института Linux. В частности, на этом сайте представлены подробные цели экзамена LPI 302
(EN), а также примеры заданий и вопросов
(EN).

Просмотрите всю серию статей для подготовки к экзаменам института LPI
(EN) на сайте developerWorks, основанных на предыдущих целях, определенных до апреля
2009 года, чтобы изучить основы администрирования Linux и подготовиться к экзаменам для получения сертификата администратора Linux.

Изучаем Linux, 302 (смешанные среды):
Аутентификация и авторизация
Механизмы проверки подлинности и настройка контроля доступа
Шон Уолберг
, старший сетевой инженер, P.Eng
Описание: Эта статья поможет вам подготовиться к сдаче экзамена LPI 302 (специализация "Смешанные среды") для получения сертификата системного администратора Linux. Из этой статьи вы узнаете, как задавать и хранить пароли, интегрировать Samba с LDAP и использовать списки контроля доступа для защиты операционной системы Linux.
Больше статей из этой серии
Дата: 05.07.2012
Уровень сложности: сложный
Об этой серии
Эта серия статьей поможет вам освоить задачи администрирования операционной системы
Linux. Вы можете использовать материалы этих статей для подготовки к экзаменам программы LPIC третьего уровня (LPIC-3)
Чтобы посмотреть описания статей этой серии и получить ссылки на них, обратитесь к нашему перечню материалов для подготовки к экзаменам LPIC-3
. Этот перечень постоянно дополняется новыми статьями по мере их готовности и содержит текущие (по состоянию на
ноябрь 2010 года) цели экзаменов сертификации LPIC-3.
В этой статье рассматриваются следующие темы:

Настройка локальной базы данных паролей.

Формат файла smbpasswd.

Синхронизация паролей между Samba и другими системами.

Другие хранилища паролей.

Интеграция Samba с протоколом Lightweight Directory Access Protocol (LDAP).

Списки контроля доступов (Access control lists, ACLs).
Эта статья поможет вам подготовиться к сдаче экзамена LPI 302 (специализация "Смешанные среды") и содержит материалы цели 313.2 темы 313. Цель имеет вес 8.
Предварительные требования
Чтобы извлечь наибольшую пользу из наших статей, необходимо обладать продвинутыми знаниями о Linux и иметь работоспособный компьютер с Linux, на котором можно будет выполнять все встречающиеся команды. Кроме этого, у вас должен быть доступ к среде
Windows, которую можно использовать для проверки работы механизмов проверки подлинности и авторизации.
Механизмы аутентификации Samba
Samba позволяет по-разному хранить пароли во внутренних хранилищах паролей, как с хранением данных хранятся на локальном диске, так и с использованием сетевых функций.
Кроме того, в Samba имеются механизмы, позволяющие серверу Linux использовать систему аутентификации подлинности Samba при входе пользователей в систему.
Поскольку Samba существует на протяжении почти двух десятилетий, в ее арсенале накопился определенный технический инструментарий. Несмотря на то, что на смену старым механизмам аутентификации пришли новые, старые механизмы все еще поддерживаются. В
документации Samba вы найдете ссылки на эти старые механизмы. Эта путаницу еще более усложняют инструменты командной строки, названия которых похожи на названия определенных технологий.
Несмотря на свое название, внутреннее хранилище паролей хранит не только пароли, но также различную информацию об учетных записях и другие атрибуты. Сами данные могут также хранится на сервере LDAP, а внутреннее хранилище Samba в этом случае выступает посредником между Samba и LDAP.
Все становится еще интереснее в результате того, что операционные системы Microsoft используют хэши паролей, формат которых отличается от формата паролей UNIX. Эти пароли хэшируются, т. е. подвергаются одностороннему шифрованию, в результате чего их невозможно сопоставить паролям в формате UNIX и Samba. В результате аутентификация клиента Samba в базе данных паролей UNIX становится невозможной.
Параметры локальной базы данных паролей
Локальной базой данных паролей называется хранилище паролей, которое хранит информацию на сервере, а не осуществляет проверку подлинности через сеть. У таких хранилищ низкая производительность, но зато они просты в использовании.
В литературе можно встретить упоминания о хранилищах открытых паролей. Много лет назад клиенты Windows передавали на сервер учетные данные в незашифрованном
(открытом) виде. Тогда было возможно хэшировать пароли в UNIX-формате и сопоставлять полученные результаты с локальной базой данных паролей. Сегодня клиенты Windows не передают по сети пароли в открытом виде (по крайней мере, без дополнительного вмешательства в системный реестр), и все стараются избегать этого. Таким образом, вы можете встретить упоминания о хранилищах открытых паролей, но вряд ли стоит использовать их на практике.
Большинство старых система аутентификации используют хранилище паролей smbpasswd.
Эта база данных хранит информацию об учетных записях в простом текстовом файле. Эта информация включает в себя имя учетной записи, хэши паролей и некоторую базовую информацию. Эта базовая информация достаточно простая и не содержит дополнительных атрибутов, с которыми работают различные инструменты администрирования Microsoft.
На сегодняшний день предпочтительным локальным хранилищем является tdbsam.
Вспомните файлы Trivial Database (TDB), которые рассматривались в теме 310.3 (см. раздел
Ресурсы): TDB-файлы позволяют получать быстрый и надежный доступ к информации, хранящейся в виде пар "ключ-значение". В tdbsam информация хранится в формате, похожем на формат базы данных Microsoft Windows NT Security Account Manager (SAM), поэтому почти все, что может хранится в SAM, сможет понять сервер Samba. Именно поэтому tdbsam обеспечивает высокий уровень совместимости с операционными системами Microsoft.
Недостатком tdbsam является то, что информация хранится в двоичном формате, поэтому невозможно быстро просмотреть ее, просто заглянув внутрь файла. В статье "
Изучаем Linux,
302 (смешанные среды): файлы базы данных Trivial Database
" (developerWorks, март 2011 г.) показано, как можно извлекать из TDB-файла отдельные ключи и их значения, но как использовать это на практике – предстоит решать вам. Этот файл называется passdb.tdb.
Использование базы данных smbpasswd
При новой инсталляции Samba вы вряд ли захотите использовать базу данных smbpasswd, но в некоторых старых инсталляциях она все еще применяется, поэтому важно знать принципы ее работы.
База данных для хранения паролей настраивается с помощью параметра passdb backend.
В следующем примере показано, как выбрать в качестве хранилища базу данных smbpasswd:

[global]
passdb backend=smbpasswd:/etc/samba/smbpasswd
Мы видим, что в данном примере используется глобальный параметр passdb backend, которому присвоены значение smbpasswd и путь к файлу, разделенные двоеточием (:).
Двоеточие и путь не являются обязательными, однако лучше использовать их. Если этого не сделать, то Samba разместит файл в директории по своему усмотрению. Samba создает этот пустой файл при перезапуске.
Для добавления пользователя используется команда smbpasswd. В листинге 1 приведен пример добавления пользователя и показан итоговый результат в файле smbpasswd.



Поделитесь с Вашими друзьями:
1   ...   56   57   58   59   60   61   62   63   ...   68


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал