Phương pháp để người dùng thay đổi mật khẩu Samba


10

Tôi có một máy chủ Samba cho khoảng 5 người dùng (security = user) và tôi muốn một cách để những người dùng này thay đổi mật khẩu của họ mà không cần sự tham gia của tôi để tôi có ý tưởng sau. Điều này có an toàn không? Có một cách tiếp cận tốt hơn (như trong đơn giản hơn). Chúng tôi đã từng có SWAT cho việc này nhưng không còn nữa.


Trên máy chủ: tạo người dùng bị hạn chế (/ bin / rbash + PATH vào thư mục đơn)

$ sudo adduser --shell /bin/rbash pwchange

$ cat /etc/passwd
  pwchange:x:1001:1001:pwchange,,,:/home/pwchange:/bin/rbash

$ sudo vi /home/pwchange/.bashrc
  Add:
  export PATH=/usr/local/pwchange

$ sudo ln -s /usr/bin/smbpasswd /usr/local/pwchange/smbpasswd

Ý tưởng này ở đây là chỉ có lệnh sambpasswd có thể được chạy bởi người dùng pwchange. Các tài khoản unix cho người dùng Samba không có mật khẩu (nghĩa là không đăng nhập thông qua các tài khoản này). Người dùng samba sẽ chỉ có thể sử dụng tài khoản bị hạn chế này để tự thay đổi mật khẩu Samba ... không cần khám phá máy chủ!


Máy khách: Thay đổi mật khẩu Samba qua Terminal hoặc Putty (Windows)

user1@A3700:~$ ssh pwchange@192.168.1.14

pwchange@V220:~$ smbpasswd -U user1
Old SMB password:
New SMB password:
Retype new SMB password:
Password changed for user user1

Nhưng tôi nghĩ smbpasswdlà để người dùng và quản trị viên thay đổi mật khẩu của họ ... Đó có phải là điều bạn muốn không?
George Udosen

Trong trường hợp này, tài khoản Unix của người dùng không có mật khẩu, do đó, user1 không thể đăng nhập với tên user1@192.168.1.14. Máy chủ Samba được thiết lập là "security = user" và các giới hạn tệp được đặt trong smb.conf. Người dùng không được phép đăng nhập Unix vì các quyền của tệp Unix cơ bản được cho phép nhiều hơn so với sự kết hợp của các quyền của tệp Samba và Unix (ACL mở rộng Unix không được sử dụng.)
brucehohl 18/12/17

Tại trường đại học của tôi, chúng tôi đã có một cổng thông tin tự phục vụ mà người dùng có thể xác thực bằng cách sử dụng xác minh id và sms, và trong nền chúng tôi đã ban hành lệnh smbpasswd
Rabin

Câu trả lời:


1

Cho phép tất cả họ truy cập vào cùng một tài khoản giả không có vẻ thông minh. Ngay cả khi bạn khóa nó để có quyền truy cập vào NHƯNG smbpasswdhọ vẫn có thể thay đổi mật khẩu của nhau. Và luôn có khả năng xảy ra một cuộc tấn công leo thang đặc quyền độc hại.

Về cơ bản những gì nghe có vẻ như bạn muốn là cho phép họ chạy CHỈ smbpasswdlệnh từ tài khoản người dùng của riêng họ trong khi vẫn có nologintài khoản tương đương .

Điều này có thể được thực hiện với việc sử dụng tùy chọn "ForceCommand" trong sshd_config của bạn.

Thử cái này xem sao:

  1. Cấp cho mỗi người dùng có tư cách thành viên tài khoản Samba cho cùng một nhóm. Ví dụ của chúng tôi, hãy nói "sambaOnly":

    #From Root
    groupadd sambaOnly
    usermod -a -G sambaOnly Joe
    
  2. Tiếp theo, chúng tôi muốn thay đổi tệp sshd_config để có các mục sau:

    #From Root
    cat << EOF >> /etc/ssh/sshd_config
    Match Group sambaOnly
        ForceCommand smbpasswd
    EOF
    

Mau. Theo hiểu biết của tôi (và thử nghiệm ngắn), điều này có nghĩa là khi họ đăng nhập qua SSH, họ sẽ tự động smbpasswdchạy lệnh và họ sẽ được nhắc nhở theo đó. Họ sẽ không bao giờ có cơ hội có quyền truy cập vỏ. Sau khi lệnh hoàn thành, chúng sẽ tự động bị ngắt kết nối, một lần nữa không bao giờ có cơ hội có quyền truy cập shell.

Tôi không chắc chắn 100% điều này sẽ loại bỏ tất cả quyền truy cập vào máy từ xa. Ví dụ: nếu bạn đang chạy một máy chủ SSH khác trên cùng một máy không có ForceCommandchúng, thì chúng có thể đăng nhập thông qua tùy thuộc vào cấu hình kiểm soát truy cập của nó.

Ngoài ra, nếu họ có cơ hội truy cập vật lý vào một thiết bị đầu cuối, họ có thể đăng nhập.

Tuy nhiên, tôi nghĩ đối với hầu hết các tình huống, đây là kiểm soát truy cập khá mạnh.

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.