samba đồng bộ mật khẩu với mật khẩu unix trên whianzy whianzy


11

Tôi đã cài đặt samba trên máy chủ của mình và tôi đang cố gắng viết một kịch bản để dành cho tôi hai bước để thêm người dùng, ví dụ:

adduser username
smbpasswd -a username

Tiểu smb.confbang của tôi :

# 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

Đọc thêm đưa tôi đến pdbedittrang người đàn ông trong đó nêu:

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

Vì vậy, ... bây giờ tôi quyết định thử thêm người dùng bằng smbpasswd:

Lần thử đầu tiên, người dùng unix vẫn không tồn tại:

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

Lần thử thứ 2, người dùng unix tồn tại:

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

Vì vậy, bây giờ tôi đang tự hỏi:

  1. Làm cách nào để tôi đồng bộ hóa mật khẩu samba với mật khẩu unix?
  2. mật khẩu samba được lưu trữ ở đâu?

Ai đó có thể giúp soi sáng cho tôi?


Mật khẩu được lưu trữ trong cơ sở dữ liệu /var/lib/samba/, tôi tin rằng mật khẩu nằm trong secrets.tdbnhưng tôi không chắc chắn. Đối với câu hỏi trước đây của bạn, tôi nghi ngờ có một cách dễ dàng.
Zoredache

Câu trả lời:


10

Chà ... liên kết còn thiếu là:

 libpam-smbpass

Vì vậy, sau khi cài đặt gói này, nó hoạt động như mong đợi. Bộ nhớ dài hạn của Internet đôi khi chỉ mang lại một phần thông tin. Vì vậy, để chống lại điều này, tôi xuất bản ở đây liên kết chính xác làm thế nào để đồng bộ hóa mật khẩu samba với mật khẩu unix , và cả thử nghiệm của riêng tôi.

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$ 

Tôi mong điều này giúp được người nào khác.

cập nhật 2017:

libpam-smbpassbị phản đối . Có vẻ như những gì thay thế nó là pam_winbindd. Bạn có thể cài đặt gói libpam-winbindđể có được nó. Tuy nhiên, điều này vẫn không đồng bộ hóa mật khẩu samba với mật khẩu unix của bạn. Thay vào đó, nó cho phép bạn xác thực để hủy kết hợp với máy chủ Xác thực Windows (AD). Bạn có thể tìm thấy thông tin về điều đó tại đây: https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controll


2
Liên kết bị hỏng, đó là lý do tại sao chúng tôi đưa thông tin có giá trị vào câu trả lời: /
ubiquibacon

@ubiquibacon Tôi đã chỉnh sửa câu trả lời này để bây giờ liên kết trỏ đến phiên bản được lưu trữ từ Wayback Machine (nhờ vào công việc tốt được thực hiện bởi những người Lưu trữ Internet).
Anthony Geoghegan

1
pam_smbpass dường như không được dùng nữa
alex.forencich

Có, tôi không thể tìm thấy libpam-smbpassở hệ thống Debian 9.1 nữa và nó cũng không hoạt động với tôi. Làm thế nào có thể là câu hỏi đơn giản này đã được hỏi rất nhiều lần mà vẫn không có câu trả lời?
Frank Breitling

@ Oz123 Không libpam-winbindthể tìm thấy trong CentOS7.
CHENJIAN

3

Muốn bình luận về câu trả lời trước nhưng không thể làm điều đó vì thiếu điểm danh tiếng. Đã cố gắng để đưa nội dung đầy đủ vào câu trả lời này nhưng không thể nói rằng nó trông giống như thư rác. đây là quyền truy cập vào toàn bộ nội dung trên máy wayback và sau đây là phiên bản ngắn gọn của các điểm chính:

Đồng bộ hóa mật khẩu Unix và Samba trên Debian Etch

Cài đặt các gói sau:

# apt-get install libpam-smbpass smbclient

Unix -> Samba

Để cập nhật mật khẩu Samba mỗi khi người dùng thay đổi mật khẩu Unix, hãy thay đổi

/etc/pam.d/common-password: từ

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

đến

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

Thay đổi "bắt buộc" thành "cần thiết" cho pam_unix sẽ đảm bảo rằng nếu thay đổi mật khẩu Unix không thành công, việc thực thi các plugin kết thúc ngay lập tức.

Để làm việc này, người dùng phải có tài khoản Samba và mật khẩu Samba của họ phải khớp với mật khẩu Unix của họ. Bởi vì điều này không nhất thiết phải như vậy, chúng ta phải thay đổi

/etc/pam.d/common-auth: từ

auth    required        pam_unix.so nullok_secure

đến

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

Điều này sẽ tạo một người dùng Samba, nếu nó chưa tồn tại và thay đổi mật khẩu của nó thành mật khẩu Unix, bất cứ khi nào người dùng đăng nhập bằng SSH hoặc bất kỳ dịch vụ nào khác sử dụng xác thực hệ thống mặc định (chung-auth).

Bạn sẽ thấy một thông báo Người dùng đã thêm khi đăng nhập bằng SSH bằng tài khoản chưa có tài khoản Samba.

Bởi vì điều này cũng sẽ tạo một tài khoản Samba cho root, bạn có thể muốn tắt quyền truy cập root trong Samba (Debian Etch đã bị tắt theo mặc định):

/etc/samba/smb.conf:

invalid users = root

Hãy cẩn thận : Điều này sẽ không hoạt động nếu người dùng đăng nhập thông qua SSH hoặc các dịch vụ khác mà không sử dụng mật khẩu (ví dụ: bằng cách sử dụng xác thực khóa chung / riêng). Trong trường hợp này, PAM sẽ không có mật khẩu văn bản đơn giản, cần thiết để tạo mật khẩu Samba.

Lưu ý : Khi bạn sửa đổi mật khẩu chung để yêu cầu cập nhật mật khẩu Samba, mọi người dùng hiện đang đăng nhập sẽ không thể thay đổi mật khẩu của họ bằng cách sử dụng "passwd" cho đến khi họ đăng nhập lại, trừ khi họ đã có tài khoản Samba hiện tại có mật khẩu bằng nhau mật khẩu Unix của họ.

Samba -> Unix

Chúng tôi hướng dẫn Samba sử dụng PAM khi thay đổi mật khẩu:

/etc/samba/smb.conf:

unix password sync = yes
pam password change = yes

Khởi động lại Samba bằng cách sử dụng /etc/init.d/samba khởi động lại.

Định cấu hình PAM để hỗ trợ thay đổi mật khẩu bằng Samba bằng cách thêm @incolee mật khẩu chung:

/etc/pam.d/samba:

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

Điều này sẽ sử dụng cùng một cơ chế để thay đổi mật khẩu khi sử dụng Samba như khi sử dụng "passwd". Điều này có nghĩa là nó sẽ yêu cầu cập nhật mật khẩu Unix trước khi thử thay đổi mật khẩu Samba.

Tạo người dùng mới

sử dụng chpasswd để tránh lỗi:

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

pam_smbpass dường như không được dùng nữa
alex.forencich

@Joru Bằng cách biên dịch nguồn samba 4.9.1 trên CentOS7, không có tệp nào của pam_smbpass.so. Bạn có thể giúp tôi được không? link: stackoverflow.com/questions/52932070/
hy

@CHENJIAN SAMBA.ORG đã xóa pam_smbpass.so khỏi các nguồn với SAMBA 4. Vì vậy, phiên bản Samba cuối cùng tôi đã có thể tìm thấy nó là samba 3.9.16
Axel Werner
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.