LinuxForum.Fans
Тема

Синхронизация паролей samba и passwd на CentOS 6.4

Автор: therox 15 сообщений 4231 просмотров
#311991

Добрый день. Есть задача синхронизировать системные пароли и пароли samba.

Текущий конфиг выглядит так:

text

[root@ldap samba]# cat smb.conf
[global]
    netbios name = WSHARE
    workgroup = WORKGROUP
    encrypt passwords = yes
    unix password sync = yes
#    passwd chat debug = yes
#    pam password change = yes
    passwd program = passwd %u

passwd chat = *New*password* %n\n\ *Retype*new*password* %n\n\ *passwd*all*authentication*tokens*updated*successfully*

security = user log level = 5 log file = /tmp/smb.log

[data] path = /export/smb/data comment = Data Drive read only = no

но при смене пароля smbpasswd username (пользователь присутствует и там и там) пароль меняется только у самбы. Пытался посмотреть passwd chat debug при log level=100, ничего в лог не пишет.
Кто-нибудь настраивал такое?

PS:

text

[root@ldap pam.d]# rpm -q samba
samba-3.6.9-151.el6.x86_64

PPS: В идеале, поскольку passwd program обещают убрать, интересно решение и с помощью pam_smbpass.so. Гугление особо на данный момент не помогло.

#311993
i2ks написал:
[quote="therox⇓"]Добрый день. Есть задача синхронизировать системные пароли и пароли samba.

http://linuxpoison.blogspot.ru/2008/04/transfer-linux-user-to-samba-users.html[/quote]

Благодарю, интересная статья. Простой способ. Но в данном случае он больше напоминает костыль. Хотелось бы организовать сие средствами самой самбы.

#311997
i2ks написал:
[quote="therox⇓"]Хотелось бы организовать сие средствами самой самбы.

Ну а так:
http://oreilly.com/catalog/samba/chapter/book/ch06_04.html
раздел 6.4.3
ну и
http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/pam.html
http://jaka.kubje.org/infodump/2007-05-14-unix-samba-password-sync-on-debian-etch/[/quote]

Да, читал их. применить к centos 6.3-6.4 у меня не вышло. думал, может кто занимался лично...

PS: Посмотрел скрипт mksmbpasswd.sh. Там, как я понял, тоже ни о какой синхронизации паролей речи не идет. Он просто берет пользователей из /etc/passwd и кидает в базу самбы с невалидными паролями.

#311998
"therox⇓" написал:
Да, читал их. применить к centos 6.3-6.4 у меня не вышло. думал, может кто занимался лично...

там есть варианты с pam, да и в файле /etc/passwd только пользователи, сами пароли в файле /etc/shadow.

#312000
i2ks написал:
[quote="therox⇓"]Да, читал их. применить к centos 6.3-6.4 у меня не вышло. думал, может кто занимался лично...

там есть варианты с pam, да и в файле /etc/passwd только пользователи, сами пароли в файле /etc/shadow.[/quote]

Да-да, я про пам в т.ч. говорил. pam_smbpass занимается в т.ч. и shadow. Но не сложилось. :(
Поэтому хотелось бы это для начала осознать в контексте использования внешней программы (passwd)

#312001
"therox⇓" написал:
Но не сложилось.

а что не сложилось?

#312002
i2ks написал:
[quote="therox⇓"] Но не сложилось.

а что не сложилось?[/quote]

Ну, во-первых, я не очень хорошо пока понимаю технологию аутентификации с помощью pam, ну а во-вторых, даже следуя четким руководствам в какой файл какую строчку где писать, никаких видимых изменений при смене пароля я не увидел.

#312060
therox написал:
Добрый день. Есть задача синхронизировать системные пароли и пароли samba.

Не оспаривая поставленной задачи всё же непонятен смысл этой всей затеи. А именно - зачем юзерам файлового сервера, весь интерес которых только доступ к файлам через smb, иметь системный вход на этот сервер? По моему, совершенно правильно надо заблокировать вход таких юзерей на сервер через passwd -l. И проверить, что им в качестве шелла по умолчанию назначен /sbin/nologin|false. Нечего делать самбовым юзерям в системе.

#312062
Cruiser78 написал:
[quote=therox]Добрый день. Есть задача синхронизировать системные пароли и пароли samba.

Не оспаривая поставленной задачи всё же непонятен смысл этой всей затеи. А именно - зачем юзерам файлового сервера, весь интерес которых только доступ к файлам через smb, иметь системный вход на этот сервер? По моему, совершенно правильно надо заблокировать вход таких юзерей на сервер через passwd -l. И проверить, что им в качестве шелла по умолчанию назначен /sbin/nologin|false. Нечего делать самбовым юзерям в системе.[/quote]

Прекрасно понимаю, что в целях безопасности целесообразно держать разными пароли и того и другого, но эта упрощенная трактовка. От самбы нужны будут лишь домашние каталоги пользователей, а системный пароль используется в аутентификации БД. В текущей архитектуре проекта все-равно приходится давать одинаковые пароли.

#312066
therox написал:

Прекрасно понимаю, что в целях безопасности целесообразно держать разными пароли и того и другого, но эта упрощенная трактовка. От самбы нужны будут лишь домашние каталоги пользователей, а системный пароль используется в аутентификации БД. В текущей архитектуре проекта все-равно приходится давать одинаковые пароли.

Вообще перестал что-либо понимать. Я писал об ином - для самбы (третьей) нужно только наличие пользователя в системе (то есть - UID, GID соответствующих имени юзера) и ничего больше. То есть пользователи самбы в системе должны быть заблокированы. Нет им хода в систему. Соответственно, говорить об их паролях бессмысленно.
Теперь возникакет некая БД. Насколько я понимаю базы данных - им вообще глубоко положить на всех пользователей системы кроме одного. От чьего имени эта БД запусаться должна. А пользователи БД заводятся уже внутри БД и к системным пользователям не имеют вообще никакого отношения. Это отдельный мир, для которого системные пользователи вообще не требуются, там свои юзеры.

В принципе же задача (потенциально) решается просто. Если самба использует для изменения паролей своих пользователей программу smbpasswd (вот чего не знаю, того не знаю), то что мешает переименовать стандартный smbpasswd в иное имя, например, в smbpasswd.std, а вместо стандартного smbpasswd подложить свой скрипт, который примет пароли пользователй и передаст их как стандартному smbpasswd, так и иной процедуре, которая установит эти пароли в ином месте? Я бы копал в этом направлении, обернул бы стандартные модули своей оболочкой. Если, конечно, с настройками штатными не выйдет каменный цветок.

#312070
Cruiser78 написал:

В принципе же задача (потенциально) решается просто. Если самба использует для изменения паролей своих пользователей программу smbpasswd (вот чего не знаю, того не знаю), то что мешает переименовать стандартный smbpasswd в иное имя, например, в smbpasswd.std, а вместо стандартного smbpasswd подложить свой скрипт, который примет пароли пользователй и передаст их как стандартному smbpasswd, так и иной процедуре, которая установит эти пароли в ином месте? Я бы копал в этом направлении, обернул бы стандартные модули своей оболочкой. Если, конечно, с настройками штатными не выйдет каменный цветок.

Вот и не хочется оберткой пользоваться. Т.е. именно сейчас так и делается, но хочется менее криворуко.

#312078

менее криворуко будет при использовании ldap

#312081
alexfinn написал:
менее криворуко будет при использовании ldap

Добавлю и керберос (радиус) до кучи, как службы, обеспечивающие единую для кучи автоматизированных систем аутентификацию пользователей.

Войдите или зарегистрируйтесь, чтобы ответить.