пароль синхронізації samba з паролем unix на дебіанській хрипі


11

Я встановив 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:

Перша спроба, користувача 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

Отже, зараз я запитую себе:

  1. як змусити синхронізацію паролів samba з паролями unix?
  2. де зберігаються паролі самби?

Чи може хтось допомогти мені просвітити?


Паролі зберігаються в базах даних в /var/lib/samba/, я вважаю, паролі є, secrets.tdbале я не впевнений. Що стосується вашого колишнього питання, я сумніваюся, що існує простий шлях.
Зоредаче

Відповіді:


10

Ну ... пропала посилання:

 libpam-smbpass

Отже, після встановлення цього пакету він працює як очікувалося. Довготривала пам'ять Інтернету просто іноді приносить часткову інформацію. Тому для боротьби з цим я публікую тут правильне посилання, як синхронізувати паролі samba з паролями unix , а також власний тест.

root@raspberrypi:/home/pi# passwd mag2
passwd: user 'mag2' does not exist
root@raspberrypi:/home/pi# useradd mag2
root@raspberrypi:/home/pi# echo "mag2:12345" | chpasswd
root@raspberrypi:/home/pi# smbclient -L localhost -U mag2
Enter mag2's password: 
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.6]

    Sharename       Type      Comment
    ---------       ----      -------
    print$          Disk      Printer Drivers
    IPC$            IPC       IPC Service (raspberrypi server)
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.6]

    Server               Comment
    ---------            -------
    RASPBERRYPI          raspberrypi server

    Workgroup            Master
    ---------            -------
    WORKGROUP            
root@raspberrypi:/home/pi# su pi
pi@raspberrypi ~ $ su mag2
Password: 
Added user mag2.

mag2@raspberrypi:/home/pi$ 

Я сподіваюся, що це допомагає комусь іншому.

оновлення 2017 року:

libpam-smbpassзастаріло . Здається, що це замінило pam_winbindd. Ви можете встановити пакет, libpam-winbindщоб отримати його. Однак це все ще не синхронізує паролі samba з вашими паролями unix. Натомість це дозволяє вам засвідчити автентифікацію з сервером автентифікації Windows (AD). Інформацію про це можна знайти тут: https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller


2
Посилання розірвано, тому ми поставимо цінну інформацію у відповідь: /
ubiquibacon

@ubiquibacon Я відредагував цю відповідь так, що посилання тепер вказує на архівовану версію з Wayback Machine (завдяки хорошій роботі, здійсненій людьми Інтернет-архіву).
Ентоні Геоґеган

1
Пам’ятка pam_smbpass застаріла
alex.forencich,

Так, я більше не можу знайти libpam-smbpassсистему Debian 9.1, і це також не працює для мене. Як може статися, що на це просте запитання задавали стільки разів і досі немає відповіді?
Френк Брейтлінг

@ Oz123 Неможливо libpam-winbindзнайти його у CentOS7.
ЧЕНДЖІАН

3

Хотів прокоментувати попередню відповідь, але не зміг цього зробити через відсутність балів репутації. Намагався викласти повний вміст на цю відповідь, але не міг, як сказано, схоже на спам. Ось доступ до повного вмісту на зворотній машині, а далі коротка версія основних моментів:

Синхронізація паролів Unix та Samba на Debian Etch

Встановіть наступні пакети:

# apt-get install libpam-smbpass smbclient

Unix -> Самба

Щоб оновити пароль Samba щоразу, коли користувач змінить свій пароль Unix, змініть

/etc/pam.d/common-password: від

password   required   pam_unix.so nullok obscure min=4 max=8 md5

до

password   requisite**  pam_unix.so nullok obscure min=4 max=8 md5
password   required   pam_smbpass.so nullok use_authtok try_first_pass

Якщо змінити "потрібно" на "реквізит" для pam_unix, переконайтеся, що якщо зміна паролю Unix не вдасться, виконання плагінів негайно закінчується.

Для того, щоб це працювало, користувачі повинні вже мати облікові записи Samba, і їх паролі Samba повинні відповідати їх паролям Unix. Оскільки це не обов'язково, треба змінити

/etc/pam.d/common-auth: від

auth    required        pam_unix.so nullok_secure

до

auth    requisite       pam_unix.so nullok_secure
auth    optional        pam_smbpass.so migrate

Це створить користувача Samba, якщо він ще не існує, і змінить його пароль на пароль Unix, коли кожен користувач увійде в систему за допомогою SSH або будь-якої іншої служби, яка використовує автентифікацію системи за замовчуванням (common-auth).

Ви повинні побачити повідомлення "Доданий користувач" під час входу за допомогою SSH з обліковим записом, у якому ще немає облікового запису Samba.

Оскільки це також створить обліковий запис Samba для root, ви, можливо, захочете вимкнути кореневий доступ у Samba (Debian Etch вимкнено його за замовчуванням):

/etc/samba/smb.conf:

invalid users = root

Caveat : Це не буде працювати, якщо користувач увійде в систему через SSH або інші сервіси без використання пароля (наприклад, за допомогою аутентифікації публічного / приватного ключа). У цьому випадку PAM не буде мати звичайний текст, необхідний для створення пароля Samba.

Зверніть увагу : Коли ви зміните звичайний пароль, щоб вимагати також оновлення паролів Samba, будь-який користувач, який зараз увійшов, не зможе змінити свій пароль, використовуючи "passwd", доки вони не повторно ввійдуть у систему, якщо у них вже немає облікового запису Samba з рівним паролем. до свого паролю Unix.

Самба -> Unix

Ми доручаємо Samba використовувати PAM під час зміни паролів:

/etc/samba/smb.conf:

unix password sync = yes
pam password change = yes

Перезавантажте Samba, використовуючи /etc/init.d/samba перезапуск.

Налаштуйте PAM для підтримки зміни пароля від Samba, додавши @include common-password:

/etc/pam.d/samba:

@include common-auth
@include common-account
@include common-session
@include common-password

Це використовує той же механізм для зміни паролів при використанні Samba, як і при використанні "passwd". Це означає, що перед спробою зміни пароля Samba потрібно буде оновити пароль Unix.

Створення нових користувачів

використовуйте chpasswd, щоб уникнути помилок:

# useradd test
# echo “test:newpass” | chpasswd

Пам’ятка pam_smbpass застаріла
alex.forencich

@Joru За джерелом компіляції samba 4.9.1 на CentOS7 файлу немає pam_smbpass.so. Можеш допомогти мені? посилання: stackoverflow.com/questions/52932070 / ...
CHENJIAN

@CHENJIAN SAMBA.ORG видалив pam_smbpass.so з джерел із SAMBA 4. Тож останньою версією Samba я зміг її знайти самбу 3.9.16
Axel Werner
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.