How to Install and Configure Samba on Ubuntu Server 19.10 - Video 2020
Mục lục:
- Điều kiện tiên quyết
- Cài đặt Samba trên Ubuntu
- Cấu hình tường lửa
- Cấu hình tùy chọn Samba toàn cầu
- Tạo cấu trúc thư mục và người dùng Samba
- Tạo người dùng Samba
- Định cấu hình Samba Shares
- Kết nối với Chia sẻ Samba từ Linux
- Sử dụng ứng dụng khách smbclient
- Gắn kết chia sẻ Samba
- Sử dụng GUI
- Phần kết luận
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:
-
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':
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ómsambashare
.
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
và
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
:
Đị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:
-
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ànhno
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áchvalid 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.
- 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 ubfoxKhông thể cài đặt hoặc gỡ cài đặt chương trình trong Trình gỡ rối cài đặt và gỡ cài đặt chương trình Windows 10/8/7
Của Microsoft sẽ giúp bạn khắc phục sự cố nếu bạn không thể cài đặt hoặc gỡ cài đặt chương trình trong Windows 7/8/10.
Cách định cấu hình cài đặt & tùy chọn bảo mật của Windows 10 bằng Cài đặt
Tìm hiểu cách định cấu hình cài đặt bảo mật và tùy chọn trong Windows 10 bằng Cài đặt Ứng dụng & kiểm soát PC & chia sẻ dữ liệu và thông tin với Microsoft.
Cách cài đặt và cấu hình samba trên centos 7
Trong hướng dẫn này, chúng tôi sẽ giới thiệu cách cài đặt Samba trên CentOS 7 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.