samba sync password dengan kata sandi unix pada debian wheezy

11

Saya menginstal samba di server saya dan saya mencoba menulis skrip untuk memberi saya dua langkah untuk menambahkan pengguna, misalnya:

adduser username
smbpasswd -a username

smb.confStatus saya :

# 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

Bacaan lebih lanjut membawa saya ke pdbedithalaman manual yang menyatakan:

   -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.

Jadi ... sekarang saya memutuskan untuk mencoba menambahkan pengguna dengan smbpasswd:

Percobaan pertama, pengguna unix masih belum ada:

root@raspberrypi:/home/pi# smbpasswd -a newuser
New SMB password:
Retype new SMB password:
Failed to add entry for user newuser.

Percobaan kedua, ada pengguna 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

Jadi, sekarang saya bertanya pada diri sendiri:

  1. bagaimana cara saya membuat kata sandi samba disinkronkan dengan kata sandi unix?
  2. di mana kata sandi samba disimpan?

Adakah yang bisa membantu mencerahkan saya?

Oz123
sumber
Kata sandi disimpan dalam basis data di /var/lib/samba/, saya percaya kata sandi ada di secrets.tdbtetapi saya tidak yakin. Adapun pertanyaan Anda sebelumnya, saya ragu ada cara mudah.
Zoredache

Jawaban:

10

Ya ... tautan yang hilang adalah:

 libpam-smbpass

Jadi, setelah menginstal paket ini berfungsi seperti yang diharapkan. Memori jangka panjang Internet terkadang hanya membawa sebagian informasi. Jadi untuk mengatasi ini saya menerbitkan di sini tautan yang benar bagaimana menyinkronkan kata sandi samba dengan kata sandi unix , dan juga pengujian saya sendiri.

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$ 

Saya harap ini membantu orang lain.

perbarui 2017:

libpam-smbpasssudah usang . Sepertinya apa yang menggantikannya pam_winbindd. Anda dapat menginstal paket libpam-winbinduntuk mendapatkannya. Namun ini, masih tidak menyinkronkan kata sandi samba dengan kata sandi unix Anda. Alih-alih itu memungkinkan Anda untuk mengautentikasi unix dengan server Windows Authentication (AD). Anda dapat menemukan info tentang itu di sini: https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller

Oz123
sumber
2
Tautan terputus, itulah sebabnya kami memberikan info berharga pada jawabannya: /
ubiquibacon
@ubiquibacon Saya telah mengedit jawaban ini sehingga tautannya sekarang menunjuk ke versi yang diarsipkan dari Wayback Machine (terima kasih atas kerja baik yang dilakukan oleh orang-orang Internet Archive).
Anthony Geoghegan
1
pam_smbpass tampaknya sudah ditinggalkan
alex.forencich
Ya, saya tidak dapat menemukan libpam-smbpassdi sistem Debian 9.1 lagi dan itu juga tidak berfungsi untuk saya. Bagaimana mungkin pertanyaan sederhana ini telah ditanyakan berkali-kali dan masih belum ada jawaban?
Frank Breitling
@ Oz123 Tidak libpam-winbinddapat ditemukan di CentOS7.
CHENJIAN
3

Ingin mengomentari jawaban sebelumnya tetapi tidak dapat melakukannya karena kurangnya poin reputasi. Mencoba meletakkan konten lengkap pada jawaban ini tetapi tidak bisa seperti yang dikatakannya itu seperti spam. di sini adalah akses ke konten lengkap di mesin wayback, dan berikut ini adalah versi singkat poin utama:

Sinkronisasi kata sandi Unix dan Samba pada Debian Etch

Instal paket-paket berikut:

# apt-get install libpam-smbpass smbclient

Unix -> Samba

Untuk memperbarui kata sandi Samba setiap kali pengguna mengubah kata sandi Unix mereka, ubah

/etc/pam.d/common-password: from

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

untuk

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

Mengubah "wajib" menjadi "syarat" untuk pam_unix akan memastikan bahwa jika perubahan kata sandi Unix gagal, eksekusi plugin segera berakhir.

Agar ini berfungsi, pengguna harus sudah memiliki akun Samba, dan kata sandi Samba mereka harus cocok dengan kata sandi Unix mereka. Karena ini belum tentu demikian, kita harus berubah

/etc/pam.d/common-auth: from

auth    required        pam_unix.so nullok_secure

untuk

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

Ini akan membuat pengguna Samba, jika belum ada, dan mengubah kata sandi itu menjadi kata sandi Unix, setiap kali pengguna login menggunakan SSH atau layanan lain yang menggunakan otentikasi sistem default (umum-auth).

Anda akan melihat pesan Ditambahkan pengguna saat masuk menggunakan SSH dengan akun yang belum memiliki akun Samba.

Karena ini juga akan membuat akun Samba untuk root, Anda mungkin ingin menonaktifkan akses root di Samba (Debian Etch menonaktifkannya secara default):

/etc/samba/smb.conf:

invalid users = root

Peringatan : Ini tidak akan berfungsi jika pengguna masuk melalui SSH atau layanan lain tanpa menggunakan kata sandi (misalnya dengan menggunakan otentikasi kunci publik / pribadi). Dalam hal ini, PAM tidak akan memiliki kata sandi teks biasa, yang diperlukan untuk membuat kata sandi Samba.

Perhatian : Ketika Anda memodifikasi kata sandi umum untuk juga memerlukan pembaruan kata sandi Samba, setiap pengguna yang masuk saat ini tidak akan dapat mengubah kata sandi mereka menggunakan "passwd" sampai mereka masuk kembali, kecuali mereka sudah memiliki akun Samba yang ada dengan kata sandi yang sama dengan ke kata sandi Unix mereka.

Samba -> Unix

Kami menginstruksikan Samba untuk menggunakan PAM saat mengubah kata sandi:

/etc/samba/smb.conf:

unix password sync = yes
pam password change = yes

Restart Samba menggunakan /etc/init.d/samba restart.

Konfigurasikan PAM untuk mendukung perubahan kata sandi oleh Samba dengan menambahkan @include common-password:

/etc/pam.d/samba:

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

Ini akan menggunakan mekanisme yang sama untuk mengubah kata sandi saat menggunakan Samba seperti saat menggunakan "passwd". Ini berarti akan memerlukan pembaruan kata sandi Unix sebelum mencoba mengubah kata sandi Samba.

Menciptakan pengguna baru

gunakan chpasswd untuk menghindari kesalahan:

# useradd test
# echo “test:newpass” | chpasswd
Joru
sumber
pam_smbpass tampaknya sudah tidak digunakan lagi
alex.forencich
@Joru Berdasarkan kompilasi sumber samba 4.9.1 pada CentOS7, tidak ada file pam_smbpass.so. Bisakah kamu membantuku? tautan: stackoverflow.com/questions/52932070/...
CHENJIAN
@CHENJIAN SAMBA.ORG menghapus pam_smbpass.so dari sumber dengan SAMBA 4. Jadi versi Samba terakhir saya dapat menemukannya adalah samba 3.9.16
Axel Werner