Samba file server cho phép chia sẻ file trên các hệ điều hành khác nhau qua mạng thông qua giao thức smb. Hướng dẫn này bao gồm việc cài đặt và cấu hình Samba trên Ubuntu Server. Cài đặt SambaĐể cài đặt Samba, chúng ta chạy lệnh: $sudo apt update
$sudo apt install samba
Bạn có thể kiểm tra xem cài đặt có thành công hay không bằng cách chạy lệnh: $whereis samba
samba: /usr/sbin/samba /usr/lib/samba /etc/samba /usr/share/samba /usr/share/man/man7/samba.7.gz /usr/share/man/man8/samba.8.gz
OutputCấu hình SambaBây giờ Samba đã được
cài đặt, chúng ta cần tạo một thư mục để chia sẻ: $mkdir /home/<username>/sambashare/
File cấu hình cho Samba được đặt tại /etc/samba/smb.conf . Để chia sẻ file chúng ta sửa cấu với lệnh: $sudo nano /etc/samba/smb.conf
Và thêm nội dung sau: [sambashare]
comment = Samba on Ubuntu
path = /home/username/sambashare
read only = no
browsable = yes
Sau đó nhấn Ctrl-O để lưu và Ctrl-X để thoát khỏi trình chỉnh sửa văn bản nano. Diễn giải: - comment: Mô tả ngắn gọn về chia sẻ.
- path: Đường dẫn đến thư mục chia sẻ.
- read only: Quyền sửa đổi nội dung trong thư mục được chia sẻ, Giá trị
no nghĩa là sửa đổi,
giá trị yes là chỉ có quyền xem. - browsable: Khi giá trị là
yes , các trình quản lý file như Ubuntu’s default file manager sẽ liệt kê các chia sẻ này trên “Network”.
Bạn có thể giới hạn địa chỉ IP nào có thể kết nối với máy chủ Samba của mình khi thêm các dòng này: hosts allow = 127.0.0.1, 192.168.0.31, 192.168.0.32
hosts deny = 0.0.0.0/0
Chúng ta đã cấu hình chia sẻ thư mục của mình, hãy lưu và khởi động lại Samba để có hiệu lực: $sudo service smbd restart
Cập nhật các quy tắc của tường lửa để cho mở port cho Samba: $sudo ufw allow samba
Thiết lập tài khoản người dùng và kết nối đến thư mục chia sẻ:Vì Samba không sử dụng mật khẩu tài khoản hệ thống, chúng ta cần thiết lập mật khẩu Samba cho tài khoản người dùng: $sudo smbpasswd -a username
Lưu ý: username là tài khoản đã được tạo từ trước Kết nối đến thư mục chia sẻTrên Ubuntu: Mở trình quản lý tệp mặc định và nhấp vào Connect to Server , sau đó nhập: Trên macOS: Trên Finder menu, click Go > Connect to Server và nhập: Mac connect to samba serverTrên Windows: Nhấn tổ hợp phím Windows-R và nhập: \\ip-address\sambashare 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. 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':
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
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
:
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: -
và
- 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 [email protected]//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 ubfox |