सांबा सिंक डेबिन व्हीज़ पर यूनिक्स पासवर्ड के साथ सिंक पासवर्ड


11

मैंने अपने सर्वर पर सांबा स्थापित किया है और मैं उपयोगकर्ता को जोड़ने के लिए मुझे दो चरणों को छोड़ने के लिए एक स्क्रिप्ट लिखने की कोशिश कर रहा हूं, जैसे:

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:

पहली कोशिश, यूनिक्स उपयोगकर्ता अभी भी मौजूद नहीं है:

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

दूसरा प्रयास, यूनिक्स उपयोगकर्ता मौजूद है:

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. मैं यूनिक्स पासवर्ड के साथ सांबा पासवर्ड सिंक कैसे करूं?
  2. सांबा पासवर्ड कहाँ संग्रहीत हैं?

क्या कोई मेरी मदद कर सकता है?


पासवर्ड डेटाबेस में संग्रहीत हैं /var/lib/samba/, मेरा मानना ​​है कि पासवर्ड हैं, secrets.tdbलेकिन मैं निश्चित नहीं हूं। आपके पूर्व प्रश्न के लिए, मुझे संदेह है कि एक आसान तरीका है।
Zoredache

जवाबों:


10

खैर ... मिसिंग लिंक था:

 libpam-smbpass

इसलिए, इस पैकेज को स्थापित करने के बाद यह अपेक्षित रूप से काम करता है। इंटरनेट की दीर्घकालिक स्मृति कभी-कभी आंशिक जानकारी लाती है। तो इस से लड़ने के लिए मैं यहाँ पर सही लिंक प्रकाशित कर रहा हूँ कि कैसे साम्बा पासवर्ड को यूनिक्स पासवर्ड के साथ सिंक किया जाए , और मेरा खुद का टेस्ट भी।

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इसे प्राप्त करने के लिए पैकेज स्थापित कर सकते हैं । हालाँकि, यह अभी भी आपके यूनिक्स पासवर्ड के साथ सांबा पासवर्ड को सिंक नहीं करता है। इसके बजाय यह आपको Windows प्रमाणीकरण सर्वर (AD) के साथ यूनिक्स को प्रमाणित करने की अनुमति देता है। आप यहां उस पर जानकारी पा सकते हैं: https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller


2
लिंक टूट गया है, यही कारण है कि हम उत्तर में मूल्यवान जानकारी डालते हैं: /
ubiquibacon

@ubiquibacon मैंने इस उत्तर को संपादित किया है ताकि लिंक अब वेकब मशीन (इंटरनेट पुरालेख लोगों द्वारा किए गए अच्छे काम के लिए धन्यवाद) से संग्रहीत संस्करण को इंगित करता है।
एंथोनी जोगेगन

1
pam_smbpass को पदावनत किया गया प्रतीत होता है
alex.forencich

हां, मुझे libpam-smbpassअब डेबियन 9.1 सिस्टम नहीं मिल रहा है और यह मेरे लिए भी काम नहीं करता है। यह कैसे हो सकता है कि यह सरल प्रश्न इतनी बार पूछा गया है और अभी भी इसका कोई जवाब नहीं है?
फ्रैंक

@ Oz123 सेंटोस 7 में न तो libpam-winbindपाया जा सकता है।
CHENJIAN

3

पिछले उत्तर पर टिप्पणी करना चाहता था, लेकिन प्रतिष्ठा के अभाव में ऐसा नहीं कर सका। इस उत्तर पर पूरी सामग्री डालने की कोशिश की लेकिन यह नहीं कहा जा सकता है कि यह स्पैम की तरह लग रहा था। यहां वेकबैक मशीन पर पूर्ण सामग्री की पहुंच है, और मुख्य बिंदुओं का संक्षिप्त संस्करण निम्नलिखित है:

यूनिक्स और सांबा पासवर्ड डेबियन एच पर सिंक

निम्नलिखित पैकेज स्थापित करें:

# apt-get install libpam-smbpass smbclient

यूनिक्स -> सांबा

सांबा पासवर्ड को अपडेट करने के लिए जब भी कोई उपयोगकर्ता अपना यूनिक्स पासवर्ड बदलता है, बदल जाता है

/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 के लिए "अपेक्षित" को "बदलने" से यह सुनिश्चित हो जाएगा कि यदि यूनिक्स पासवर्ड परिवर्तन विफल हो जाता है, तो प्लगइन्स का निष्पादन तुरंत समाप्त हो जाता है।

इसे काम करने के लिए, उपयोगकर्ताओं के पास पहले से ही सांबा खाते होने चाहिए, और उनके सांबा पासवर्ड उनके यूनिक्स पासवर्ड से मेल खाने चाहिए। क्योंकि यह जरूरी नहीं है, हमें बदलना ही चाहिए

/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

यह एक सांबा उपयोगकर्ता बनाएगा, अगर यह पहले से मौजूद नहीं है, और यह यूनिक्स पासवर्ड के लिए पासवर्ड बदल देता है, जब भी उपयोगकर्ता एसएसएच या किसी अन्य सेवा का उपयोग करता है जो डिफ़ॉल्ट सिस्टम (सामान्य-सामान्य) प्रमाणीकरण का उपयोग करता है।

SSH का उपयोग करने वाले खाते के साथ लॉग इन करते समय आपको एक संदेश जोड़ा हुआ उपयोगकर्ता देखना चाहिए जिसमें पहले से ही Samba खाता नहीं है।

क्योंकि यह रूट के लिए एक सांबा खाता भी बनाएगा, आप सांबा में रूट एक्सेस को निष्क्रिय करना चाहते हैं (डेबियन एच ने इसे डिफ़ॉल्ट रूप से अक्षम कर दिया है):

/etc/samba/smb.conf:

invalid users = root

कैविएट : यह काम नहीं करेगा यदि उपयोगकर्ता पासवर्ड का उपयोग किए बिना एसएसएच या अन्य सेवाओं के माध्यम से लॉग इन करता है (उदाहरण के लिए सार्वजनिक / निजी नेटवर्क प्रमाणीकरण का उपयोग करके)। इस स्थिति में, PAM के पास सादा-पाठ पासवर्ड नहीं होगा, जिसे Samba पासवर्ड बनाने की आवश्यकता है।

सूचना : जब आप सामान्य-पासवर्ड को भी संशोधित करते हैं, तो सांबा पासवर्ड अपडेट की आवश्यकता होती है, जो वर्तमान में लॉग इन किए गए उपयोगकर्ता तब तक "पासवार्ड" का उपयोग करके अपना पासवर्ड नहीं बदल पाएंगे, जब तक कि वे फिर से लॉगिन न करें, जब तक कि उनके पास पहले से मौजूद पासवर्ड वाला समान सांबा खाता न हो उनके यूनिक्स पासवर्ड के लिए।

सांभा -> यूनिक्स

हम सांबा को पासवर्ड बदलते समय PAM का उपयोग करने का निर्देश देते हैं:

/etc/samba/smb.conf:

unix password sync = yes
pam password change = yes

/Etc/init.d/samba पुनरारंभ का उपयोग करके सांबा को पुनरारंभ करें।

Sinc द्वारा पासवर्ड को बदलने के लिए PAM कॉन्फ़िगर करें @include सामान्य पासवर्ड जोड़कर:

/etc/pam.d/samba:

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

यह "पासवार्ड" का उपयोग करते समय सांबा का उपयोग करते समय पासवर्ड बदलने के लिए उसी तंत्र का उपयोग करेगा। इसका अर्थ है कि सांबा पासवर्ड को बदलने का प्रयास करने से पहले इसे यूनिक्स पासवर्ड के अपडेट की आवश्यकता होगी।

नए उपयोगकर्ता बनाना

त्रुटि से बचने के लिए chpasswd का उपयोग करें:

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

pam_smbpass
alex.forencich

@ जोरो सेंटो 7 पर सांबा 4.9.1 का संकलन करके, की कोई फाइल नहीं है pam_smbpass.so। क्या आप मेरी मदद कर सकते हैं? लिंक: stackoverflow.com/questions/52932070/…
CHENJIAN

@CHENJIAN SAMBA.ORG ने SAMBA 4. के साथ सूत्रों से pam_smbpass.so को हटा दिया। इसलिए अंतिम सांबा संस्करण मैं इसे खोजने में सक्षम था सांबा 3.9.16
एक्सल वर्नर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.