samba debian wheezy üzerinde unix şifresi ile senkronizasyon şifresi


11

Sunba sunucuma samba yükledim ve bana kullanıcı eklemek için iki adımı yedeklemek için bir komut dosyası yazmaya çalışıyorum, örneğin:

adduser username
smbpasswd -a username

Benim smb.confdevletler:

# 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

Daha fazla okuma beni şu pdbeditsayfaya yönlendirdi:

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

Yani ... şimdi bir kullanıcı eklemeyi denemeye karar verdim smbpasswd:

1. deneme, unix kullanıcısı hala mevcut değil:

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

2. deneme, unix kullanıcısı var:

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

Şimdi kendime soruyorum:

  1. samba şifrelerini unix şifreleriyle nasıl senkronize edebilirim?
  2. samba şifreleri nerede saklanır?

Birisi beni aydınlatmaya yardımcı olabilir mi?


Parolalar veritabanlarında saklanır /var/lib/samba/, parolaların olduğuna inanıyorum secrets.tdbama emin değilim. Önceki sorunuza gelince, kolay bir yol olduğundan şüpheliyim.
Zoredache

Yanıtlar:


10

Şey ... kayıp halka:

 libpam-smbpass

Yani, bu paketleri kurduktan sonra beklendiği gibi çalışır. İnternet'in uzun süreli hafızası bazen sadece kısmi bilgi getirir. Bununla mücadele etmek için samba şifrelerini unix şifreleriyle nasıl senkronize edeceğimi ve ayrıca kendi testimi burada yayınlıyorum .

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$ 

Umarım bunun bir başkasına yardımı olur.

2017 güncellemesi:

libpam-smbpasskullanımdan kaldırıldı . Onun yerini almış gibi görünüyor pam_winbindd. Paketi libpam-winbindalmak için yükleyebilirsiniz . Ancak bu yine de samba şifrelerini unix şifrelerinizle senkronize etmiyor. Bunun yerine, bir Windows Kimlik Doğrulama sunucusuyla (AD) unix olarak kimlik doğrulaması yapmanızı sağlar. Bununla ilgili bilgileri burada bulabilirsiniz: https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller


2
Bağlantı koptu, bu yüzden cevaba değerli bilgiler koyduk: /
ubiquibacon

@ubiquibacon Bu yanıtı düzenledim, böylece bağlantı şimdi Wayback Machine'den arşivlenen sürüme işaret ediyor (İnternet Arşivi çalışanları tarafından yapılan iyi çalışmalar sayesinde).
Anthony Geoghegan

1
pam_smbpass kullanımdan kaldırıldı gibi görünüyor
alex.forencich

Evet, libpam-smbpassartık Debian 9.1 sisteminde bulamıyorum ve benim için de çalışmıyor. Bu basit sorunun birçok kez sorulmuş olması ve hala cevabı olmaması nasıl olabilir?
Frank Breitling

@ Oz123 CentOS7'de ikisi libpam-winbindde bulunamaz.
CHENJIAN

3

Önceki cevap hakkında yorum yapmak istedim ama itibar puan eksikliği için yapamadı. Tüm içeriği bu yanıta koymaya çalıştım, ancak spam gibi göründüğü gibi yapamadı. İşte geri dönüş makinesindeki tüm içeriğe erişim ve ana noktaların kısa versiyonu aşağıdadır:

Debian Etch'te Unix ve Samba şifre senkronizasyonu

Aşağıdaki paketleri yükleyin:

# apt-get install libpam-smbpass smbclient

Unix -> Samba

Bir kullanıcı Unix şifresini her değiştirdiğinde Samba şifresini güncellemek için,

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

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

için

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 için "zorunlu" olarak "gerekli" olarak değiştirilirse, Unix şifre değişikliği başarısız olursa eklentilerin yürütülmesi derhal sona erer.

Bunun çalışması için kullanıcıların zaten Samba hesapları olması ve Samba şifrelerinin Unix şifreleriyle eşleşmesi gerekir. Bu her zaman böyle değildir, değişmeliyiz

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

auth    required        pam_unix.so nullok_secure

için

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

Bu, önceden yoksa, bir Samba kullanıcısı oluşturur ve kullanıcı SSH'yi veya varsayılan sistem (ortak kimlik doğrulaması) kimlik doğrulamasını kullanan başka bir hizmeti her oturum açtığında parolasını Unix parolasıyla değiştirir.

Zaten bir Samba hesabı olmayan bir hesapla SSH kullanarak oturum açarken Eklenen kullanıcı mesajını görmelisiniz.

Bu ayrıca kök için bir Samba hesabı oluşturacağından, Samba'da kök erişimini devre dışı bırakmak isteyebilirsiniz (Debian Etch varsayılan olarak devre dışı bırakılmıştır):

/etc/samba/smb.conf:

invalid users = root

Uyarı : Kullanıcı bir şifre kullanmadan SSH veya diğer hizmetler üzerinden oturum açarsa (örneğin, genel / özel anahtar kimlik doğrulaması kullanarak) çalışmaz. Bu durumda, PAM, Samba şifresini oluşturmak için gereken düz metin şifresine sahip olmayacaktır.

Uyarı : Samba parola güncellemelerini de gerektirecek şekilde ortak parolayı değiştirdiğinizde, şu anda oturum açmış olan kullanıcılar, zaten eşit bir parolaya sahip mevcut bir Samba hesabına sahip olmadıkları sürece, yeniden giriş yapana kadar parolalarını "passwd" kullanarak değiştiremezler. Unix parolalarını girin.

Samba -> Unix

Samba'ya şifreleri değiştirirken PAM kullanma talimatı veriyoruz:

/etc/samba/smb.conf:

unix password sync = yes
pam password change = yes

/Etc/init.d/samba restart komutunu kullanarak Samba'yı yeniden başlatın.

@İnclude ortak parolasını ekleyerek PAM'ı Samba tarafından parola değiştirilmesini destekleyecek şekilde yapılandırın:

/etc/pam.d/samba:

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

Bu, Samba kullanırken "passwd" kullanırken kullanılan parolaları değiştirmek için aynı mekanizmayı kullanır. Bu, Samba şifresini değiştirmeye çalışmadan önce Unix şifresinin güncellenmesini gerektireceği anlamına gelir.

Yeni kullanıcılar oluşturma

hatayı önlemek için chpasswd kullanın:

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

pam_smbpass kullanımdan kaldırıldı gibi görünüyor
alex.forencich

@Joru CentOS7'de samba 4.9.1'in kaynak derlemesiyle, dosyası yoktur pam_smbpass.so. Bana yardımcı olabilir misiniz? bağlantı: stackoverflow.com/questions/52932070/…
CHENJIAN

@CHENJIAN SAMBA.ORG, SAMBA 4 ile kaynaklardan pam_smbpass.so'yu kaldırdı. Bu yüzden son Samba sürümü, samba olduğunu bulabildi 3.9.16
Axel Werner
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.