Android

Cách cài đặt và cấu hình samba trên Ubuntu 18.04

How to Install and Configure Samba on Ubuntu Server 19.10 - Video 2020

How to Install and Configure Samba on Ubuntu Server 19.10 - Video 2020

Mục lục:

Anonim

Samba là một triển khai lại miễn phí và nguồn mở của giao thức chia sẻ tệp mạng SMB / CIFS cho phép người dùng cuối truy cập các tệp, máy in và các tài nguyên được chia sẻ khác.

Hướng dẫn này giải thích cách cài đặt Samba trên Ubuntu 18.04 và định cấu hình nó như một máy chủ độc lập để cung cấp chia sẻ tệp trên các hệ điều hành khác nhau qua mạng.

Chúng tôi sẽ tạo các chia sẻ và người dùng Samba sau đây.

Người dùng:

  • sadmin - Một người dùng quản trị có quyền truy cập đọc và ghi vào tất cả các chia sẻ. josh - Một người dùng thường xuyên có chia sẻ tệp riêng của mình.

Cổ phiếu:

  • người dùng - Chia sẻ này sẽ có thể truy cập được với quyền đọc / ghi bởi tất cả người dùng. josh - Chia sẻ này sẽ có thể truy cập được với quyền đọc / ghi chỉ bởi người dùng josh và sadmin.

Chia sẻ tệp sẽ có thể truy cập được từ tất cả các thiết bị trên mạng của bạn. Sau đó trong hướng dẫn này, chúng tôi cũng sẽ cung cấp hướng dẫn chi tiết về cách kết nối với máy chủ Samba từ các máy khách Linux, Windows và macOS.

Điều kiện tiên quyết

Trước khi tiếp tục, hãy đảm bảo bạn đã đăng nhập vào hệ thống Ubuntu 18.04 của mình với tư cách là người dùng có quyền sudo.

Cài đặt Samba trên Ubuntu

Samba có sẵn từ kho Ubuntu chính thức. Để cài đặt nó trên hệ thống Ubuntu của bạn, hãy làm theo các bước dưới đây:

  1. Bắt đầu bằng cách cập nhật chỉ mục gói apt:

    sudo apt update

    Cài đặt gói Samba bằng lệnh sau:

    sudo apt install samba

    Sau khi cài đặt hoàn tất, dịch vụ Samba sẽ tự động bắt đầu. Để kiểm tra xem máy chủ Samba có đang chạy hay không, gõ:

    sudo systemctl status smbd

    Đầu ra sẽ trông giống như bên dưới cho biết dịch vụ Samba đang hoạt động và đang chạy:

    ● smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-11-27 09:25:38 UTC; 2min 12s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 15142 (smbd) Status: "smbd: ready to serve connections…" Tasks: 4 (limit: 1152) CGroup: /system.slice/smbd.service…

Tại thời điểm này, Samba đã được cài đặt và sẵn sàng để được cấu hình.

Cấu hình tường lửa

Giả sử bạn đang sử dụng UFW để quản lý tường lửa của mình, bạn có thể mở các cổng bằng cách bật cấu hình 'Samba':

sudo ufw allow 'Samba'

Cấu hình tùy chọn Samba toàn cầu

Trước khi thay đổi tệp cấu hình Samba, hãy tạo bản sao lưu cho các mục đích tham khảo trong tương lai:

sudo cp /etc/samba/smb.conf{,.backup}

Tệp cấu hình mặc định đi kèm với gói Samba được định cấu hình cho máy chủ Samba độc lập. Mở tệp và đảm bảo server role được đặt thành standalone server

sudo nano /etc/samba/smb.conf /etc/samba/smb.conf

… # Most people will want "standalone sever" or "member server". # Running as "active directory domain controller" will require first # running "samba-tool domain provision" to wipe databases and create a # new domain. server role = standalone server…

Theo mặc định, Samba lắng nghe trên tất cả các giao diện. Nếu bạn muốn hạn chế quyền truy cập vào máy chủ Samba từ mạng nội bộ của bạn, hãy bỏ qua hai dòng sau và chỉ định các giao diện để liên kết với:

/etc/samba/smb.conf

… # The specific set of interfaces / networks to bind to # This can be either the interface name or an IP address/netmask; # interface names are normally preferred interfaces = 127.0.0.0/8 eth0 # Only bind to the named interfaces and/or networks; you must use the # 'interfaces' option above to use this. # It is recommended that you enable this feature if your Samba machine is # not protected by a firewall or is a firewall itself. However, this # option cannot handle dynamic or non-broadcast interfaces correctly. bind interfaces only = yes…

Sau khi chạy testparm tiện ích testparm để kiểm tra lỗi cấu hình Samba. Nếu không có lỗi cú pháp, bạn sẽ thấy Loaded services file OK.

Cuối cùng, khởi động lại dịch vụ Samba với:

sudo systemctl restart smbd sudo systemctl restart nmbd

Tạo cấu trúc thư mục và người dùng Samba

Để dễ bảo trì và linh hoạt hơn thay vì sử dụng các thư mục nhà tiêu chuẩn ( /home/user ), tất cả các thư mục và dữ liệu Samba sẽ được đặt trong thư mục /samba .

Để tạo loại thư mục /samba :

sudo mkdir /samba

Đặt quyền sở hữu nhóm thành sambashare . Nhóm này được tạo trong quá trình cài đặt Samba, sau này chúng tôi sẽ thêm tất cả người dùng Samba vào nhóm này.

sudo chgrp sambashare /samba

Samba sử dụng người dùng Linux và hệ thống cấp phép nhóm nhưng có cơ chế xác thực riêng tách biệt với xác thực Linux tiêu chuẩn. Chúng tôi sẽ tạo người dùng bằng công cụ người dùng Linux tiêu chuẩn và sau đó đặt mật khẩu người dùng với tiện ích smbpasswd .

Như chúng tôi đã đề cập trong phần giới thiệu, chúng tôi sẽ tạo một người dùng thông thường sẽ có quyền truy cập vào chia sẻ tệp riêng tư và một tài khoản quản trị với quyền truy cập đọc và ghi vào tất cả các chia sẻ trên máy chủ Samba.

Tạo người dùng Samba

Để tạo một người dùng mới có tên josh sử dụng lệnh sau:

sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh

Các tùy chọn useradd có các ý nghĩa sau:

  • -M -không tạo thư mục chính của người dùng. Chúng tôi sẽ tự tạo thư mục này. -d /samba/josh - đặt thư mục nhà của người dùng thành /samba/josh . -s /usr/sbin/nologin - vô hiệu hóa quyền truy cập shell cho người dùng này. -G sambashare - thêm người dùng vào nhóm sambashare .

Tạo thư mục chính của người dùng và đặt quyền sở hữu thư mục thành người dùng josh và nhóm sambashare :

sudo mkdir /samba/josh sudo chown josh:sambashare /samba/josh

Lệnh sau sẽ thêm bit setgid vào thư mục /samba/josh để các tệp mới được tạo trong thư mục này sẽ kế thừa nhóm của thư mục mẹ. Bằng cách này, bất kể người dùng nào tạo tệp mới, tệp sẽ có chủ sở hữu nhóm của sambashare . Ví dụ: nếu bạn không đặt quyền của thư mục thành 2770 và người dùng sadmin tạo một tệp mới, người dùng sẽ không thể đọc / ghi vào tệp này.

sudo chmod 2770 /samba/josh

Thêm tài khoản người dùng josh vào cơ sở dữ liệu Samba bằng cách đặt mật khẩu người dùng:

sudo smbpasswd -a josh

Bạn sẽ được nhắc nhập và xác nhận mật khẩu người dùng.

New SMB password: Retype new SMB password: Added user josh.

Khi mật khẩu được đặt để cho phép tài khoản Samba chạy:

sudo smbpasswd -e josh

Enabled user josh.

Để tạo người dùng khác lặp lại quy trình tương tự như khi tạo người dùng josh .

Tiếp theo, hãy tạo một người dùng và nhóm sadmin . Tất cả các thành viên của nhóm này sẽ có quyền quản trị. Sau này nếu bạn muốn cấp quyền quản trị cho người dùng khác, chỉ cần thêm người dùng đó vào nhóm sadmin .

Tạo người dùng quản trị bằng cách gõ:

sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin

Lệnh trên cũng sẽ tạo một nhóm sadmin và thêm người dùng vào cả hai sadmin sambashare .

Đặt mật khẩu và cho phép người dùng:

sudo smbpasswd -a sadmin sudo smbpasswd -e sadmin

Tiếp theo, tạo thư mục chia sẻ Users :

sudo mkdir /samba/users

Đặt quyền sở hữu thư mục cho người dùng sadmin và nhóm sambashare :

sudo chown sadmin:sambashare /samba/users

Thư mục này sẽ được truy cập bởi tất cả người dùng xác thực. Lệnh chmod sau đây cung cấp quyền truy cập ghi / đọc cho các thành viên của nhóm sambashare trong thư mục /samba/users :

sudo chmod 2770 /samba/users

Định cấu hình Samba Shares

Mở tệp cấu hình Samba và nối các phần:

sudo nano /etc/samba/smb.conf /etc/samba/smb.conf

path = /samba/users browseable = yes read only = no force create mode = 0660 force directory mode = 2770 valid users = @sambashare @sadmin path = /samba/josh browseable = no read only = no force create mode = 0660 force directory mode = 2770 valid users = josh @sadmin

Các tùy chọn có các ý nghĩa sau:

  • - Tên của các chia sẻ mà bạn sẽ sử dụng khi đăng nhập. path - Đường dẫn đến chia sẻ. browseable - Liệu chia sẻ có nên được liệt kê trong danh sách cổ phiếu có sẵn hay không. Bằng cách đặt thành no người dùng khác sẽ không thể xem chia sẻ. read only - Người dùng được chỉ định trong danh sách valid users có thể ghi vào chia sẻ này hay không. force create mode - Đặt quyền cho các tệp mới được tạo trong chia sẻ này. force directory mode - Đặt quyền cho các thư mục mới được tạo trong chia sẻ này. valid users - Danh sách người dùng và nhóm được phép truy cập vào chia sẻ. Các nhóm được bắt đầu bằng ký hiệu @ .

Để biết thêm thông tin về các tùy chọn có sẵn, xem trang tài liệu tệp cấu hình Samba.

Sau khi hoàn tất, hãy khởi động lại dịch vụ Samba với:

sudo systemctl restart smbd sudo systemctl restart nmbd

Trong các phần sau, chúng tôi sẽ chỉ cho bạn cách kết nối với chia sẻ Samba từ các máy khách Linux, macOS và Windows.

Kết nối với Chia sẻ Samba từ Linux

Người dùng Linux có thể truy cập chia sẻ samba từ dòng lệnh, sử dụng trình quản lý tệp hoặc gắn kết chia sẻ Samba.

Sử dụng ứng dụng khách smbclient

smbclient là một công cụ cho phép bạn truy cập Samba từ dòng lệnh. Gói smbclient không được cài đặt sẵn trên hầu hết các bản phân phối Linux, do đó bạn sẽ cần cài đặt nó với trình quản lý gói phân phối của mình.

Để cài đặt smbclient trên Ubuntu và Debian chạy:

sudo apt install smbclient

Để cài đặt smbclient trên CentOS và Fedora chạy:

sudo yum install samba-client

Cú pháp để truy cập chia sẻ Samba như sau:

mbclient //samba_hostname_or_server_ip/share_name -U username

Ví dụ: để kết nối với chia sẻ có tên josh trên máy chủ Samba có địa chỉ IP 192.168.121.118 với tư cách là người dùng bạn sẽ chạy:

smbclient //192.168.121.118/josh -U josh

Bạn sẽ được nhắc nhập mật khẩu người dùng.

Enter WORKGROUP\josh's password:

Khi bạn nhập mật khẩu, bạn sẽ đăng nhập vào giao diện dòng lệnh Samba.

Try "help" to get a list of possible commands. smb: \>

Gắn kết chia sẻ Samba

Để gắn kết chia sẻ Samba trên Linux trước tiên, bạn cần cài đặt gói cifs-utils .

Trên Ubuntu và Debian chạy:

sudo apt install cifs-utils

Trên CentOS và Fedora chạy:

sudo yum install cifs-utils

Tiếp theo, tạo một điểm gắn kết:

sudo mkdir /mnt/smbmount

Gắn kết chia sẻ bằng lệnh sau:

sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount

Ví dụ: để gắn kết một chia sẻ có tên josh trên máy chủ Samba có địa chỉ IP 192.168.121.118 khi người dùng josh đến điểm gắn kết /mnt/smbmount bạn sẽ chạy:

sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount

Bạn sẽ được nhắc nhập mật khẩu người dùng.

Password for josh@//192.168.121.118/josh: ********

Sử dụng GUI

Các tệp, trình quản lý tệp mặc định trong Gnome có tùy chọn tích hợp để truy cập vào các chia sẻ Samba.

  1. Mở tập tin và nhấp vào các vị trí khác trên địa chỉ khác trong thanh bên. Trong Kết nối với máy chủ, nhập địa chỉ của chia sẻ Samba theo định dạng sau smb://samba_hostname_or_server_ip/sharename Nhấp vào Kết nối và màn hình sau sẽ xuất hiện:

Phần kết luận

Trong hướng dẫn này, bạn đã học cách cài đặt máy chủ Samba trên Ubuntu 18.04 và tạo các loại người dùng và người dùng khác nhau. Chúng tôi cũng đã chỉ cho bạn cách kết nối với máy chủ Samba từ các thiết bị Linux, macOS và Windows.

samba ubfox