Я установил samba на свой сервер и пытаюсь написать скрипт, чтобы избавить меня от двух шагов для добавления пользователя, например:
adduser username
smbpasswd -a username
Мои smb.conf
штаты:
# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
unix password sync = yes
Дальнейшее чтение привело меня на pdbedit
страницу руководства, где говорится:
-a This option is used to add a user into the database. This com-
mand needs a user name specified with the -u switch. When adding
a new user, pdbedit will also ask for the password to be used.
Example: pdbedit -a -u sorce
new password:
retype new password
Note
pdbedit does not call the unix password syncronisation script if
unix password sync has been set. It only updates the data in the
Samba user database.
If you wish to add a user and synchronise the password that im-
mediately, use smbpasswd’s -a option.
Итак ... теперь я решил попробовать добавить пользователя с smbpasswd
:
1-я попытка, пользователь unix все еще не существует:
root@raspberrypi:/home/pi# smbpasswd -a newuser
New SMB password:
Retype new SMB password:
Failed to add entry for user newuser.
Вторая попытка, пользователь Unix существует:
root@raspberrypi:/home/pi# useradd mag
root@raspberrypi:/home/pi# smbpasswd -a mag
New SMB password:
Retype new SMB password:
Added user mag.
# switch to user pi, and try to switch to mag
root@raspberrypi:/home/pi# su pi
pi@raspberrypi ~ $ su mag
Password:
su: Authentication failure
Итак, теперь я спрашиваю себя:
- как синхронизировать пароли Samba с паролями Unix?
- где хранятся пароли самбы?
Может ли кто-нибудь помочь мне просветить?
/var/lib/samba/
, я верю, что пароли есть,secrets.tdb
но я не уверен. Что касается вашего первого вопроса, я сомневаюсь, что есть легкий путь.Ответы:
Ну ... недостающее звено было:
Итак, после установки этих пакетов все работает как положено. Долгосрочная память Интернета иногда приносит частичную информацию. Поэтому, чтобы бороться с этим, я публикую здесь правильную ссылку, как синхронизировать пароли Samba с паролями Unix , а также мой собственный тест.
Я надеюсь, что это помогает кому-то еще.
Обновление 2017:
libpam-smbpass
устарела . Кажется, это заменило этоpam_winbindd
. Вы можете установить пакет,libpam-winbind
чтобы получить его. Это, однако, по-прежнему не синхронизирует пароли Samba с вашими паролями Unix. Вместо этого он позволяет вам проходить аутентификацию в Unix на сервере аутентификации Windows (AD). Вы можете найти информацию об этом здесь: https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controllerисточник
libpam-smbpass
систему Debian 9.1, и она также не работает для меня. Как так получилось, что этот простой вопрос задавался так много раз и до сих пор не имеет ответа?libpam-winbind
может быть найден в CentOS7.Хотел прокомментировать предыдущий ответ, но не смог сделать это из-за отсутствия очков репутации. Пытался выложить полное содержание на этот ответ, но не смог, так как сказал, что это похоже на спам. здесь есть доступ к полному содержанию на машине обратного хода, а ниже приведена краткая версия основных пунктов:
Синхронизация паролей Unix и Samba в Debian Etch
Установите следующие пакеты:
Unix -> Самба
Чтобы обновить пароль Samba всякий раз, когда пользователь меняет свой пароль Unix, измените
/etc/pam.d/common-password: от
в
Если для pam_unix изменить «required» на «Requisite», то после сбоя смены пароля Unix выполнение плагинов немедленно прекратится.
Чтобы это работало, у пользователей уже должны быть учетные записи Samba, а их пароли Samba должны совпадать с их паролями Unix. Поскольку это не обязательно так, мы должны изменить
/etc/pam.d/common-auth: от
в
Это создаст пользователя Samba, если он еще не существует, и изменит его пароль на пароль Unix, когда пользователь входит в систему, используя SSH или любую другую службу, которая использует системную аутентификацию по умолчанию (common-auth).
При входе в систему с использованием SSH с учетной записью, у которой еще нет учетной записи Samba, вы должны увидеть сообщение «Добавлен пользователь».
Поскольку это также создаст учетную запись Samba для root, вы можете отключить root-доступ в Samba (в Debian Etch по умолчанию он отключен):
/etc/samba/smb.conf:
Предупреждение : это не будет работать, если пользователь входит в систему через SSH или другие службы без использования пароля (например, с использованием аутентификации с открытым / закрытым ключом). В этом случае PAM не будет иметь текстовый пароль, который необходим для создания пароля Samba.
Примечание . Когда вы изменяете общий пароль, чтобы он также требовал обновления паролей Samba, все зарегистрированные в настоящее время пользователи не смогут изменить свой пароль с помощью «passwd», пока они не войдут в систему повторно, если только у них уже нет существующей учетной записи Samba с паролем, равным на их пароль Unix.
Самба -> Юникс
Мы инструктируем Samba использовать PAM при смене паролей:
/etc/samba/smb.conf:
Перезапустите Samba, используя /etc/init.d/samba restart.
Настройте PAM для поддержки изменения пароля с помощью Samba, добавив @include common-password:
/etc/pam.d/samba:
Это будет использовать тот же механизм для изменения паролей при использовании Samba, как и при использовании «passwd». Это означает, что перед изменением пароля Samba потребуется обновить пароль Unix.
Создание новых пользователей
используйте chpasswd, чтобы избежать ошибки:
источник
pam_smbpass.so
. Вы можете мне помочь? ссылка: stackoverflow.com/questions/52932070/…