Hướng dẫn cài đặt và cấu hình Samba Server trên CentOS, Ubuntu, Debian để tạo Server chia sẻ file với SMB, cài đặt Client Samba trên các hệ thống Linux




Bạn đang xem: Samba là gì

Samba Server và SBM

Samba là một phần mềm nguồn mở (https://samba.org), nó cho phép chia sẻ file (tạo file server) với giao thức SMB (Server Message Block) giữa các nền tảng Linux, Windows, macOS. Như đã biết SMB là giao thức chia sẻ file qua mạng mặc định được sử dụng trong hệ điều hành Windows. Tài liệu đầy đủ về Samba xem tại Samba Document

Mặc định Samba Server sử dụng cổng 139 và 445 (giao thức TCP), nhớ cổng này để mở firewall hoặc ánh xạ cổng nếu sử dụng với Docker ...

Sử dụng Samba Server trên CentOS 7

Cài đặt Samba Server

yum update -yyum install samba -ysystemctl enable smb.servicesystemctl enable nmb.servicesystemctl restart smb.servicesystemctl restart nmb.service CentOS 7 có thể cần mở firewall cho Samba

firewall-cmd --permanent --zone=public --add-service=sambafirewall-cmd --reload Ngoài sử dụng systemctl để quản lý dịch vụ sbm samba, bạn cũng có thể sử dụng một số lệnh, như (Những lệnh này có thể có ích khi bạn chạy Samba trên Docker):

smbcontrol smbd shutdown # Tắt Sambasmbd # chạy Samba

Chia sẻ một thư mục public

Sau khi cài đặt, có file cấu hình mặc định tại /etc/samba/smb.conf, ta sẽ lưu file cấu hình này lại và tạo file smb.conf mới cấu hình theo nhu cầu cụ thể như sau:

mv /etc/samba/smb.conf /etc/samba/smb.conf.bak # Sao lưuvi /etc/samba/smb.conf Nhập vào nội dung sau:

workgroup = WORKGROUPserver string = My Samba Servernetbios name = centossecurity = usermap to guest = bad userdns proxy = no#=== BAT DAU THIET LAP CHIA SE FILEpath = /samba/publicsharebrowsable = yeswritable = yesguest ok = yesread only = no Lưu file này lại. Ở đây định nghĩa một khối chia sẻ file có tên là PublicShare, nghĩa là sau này các máy client kết nối đến bằng địa chỉ IP/PublicShare (Có thể thay địa chỉ IP bằng domain, tên máy mạng nội bộ). Khối này chia sẻ thư mục /samba/publicshare, nên nếu chưa có cần tạo và thiết lập:

mkdir -p /samba/publicshare/chmod -R 0755 /samba/publicshare/chown -R nobody:nobody /samba/publicshare/ Sau thiết lập trên, khởi động lại Samba

# CentOS 7systemctl restart smb.servicesystemctl restart nmb.service# NẾU KHÔNG DÙNG ĐƯỢC systemctlsmbcontrol smbd shutdownsmbd Kết nối từ Windows đến Samba Server

Giả sử Server trên có địa chỉ IP là 192.168.1.5, thì tạo chỉ việc Map ổ đĩa mạng trong Windows, như sau:

Trong File Explorer phải chuột chọn Map network drive ...

*
*
*

Như vậy đã có thể truy cập thư mục chia sẻ từ máy chạy CentOS qua mạng. Tương tự nếu trên macOS, kết nối đến thì từ Finder nhấn Command + K và điền địa chỉ smb://192.168.1.5/PublicShare

*

Hoặc từ Ubuntu, ở Files chọn Other locations rồi điền địa chỉ smb://192.168.1.5/PublicShare vào mục connect to Server, xong bấm Connect

*
*

Thư mục chia sẻ được bảo mật

Nếu muốn tạo ra một thư mục chia sẻ qua Samba mà cần phải đăng nhập (cung cấp user / pass) thì làm tương như sau:

Đầu tiện tạo ra một group có tên là smbgroup và một user thuộc group này tên là testuser

useradd testuser # tạo testusergroupadd smbgroup # Tạo group smbgroupusermod -a -G smbgroup testuser # Gán group cho usersmbpasswd -a testuser # Tạo password cho testuser trong Samba (Khi hỏi, Nhập 2 lần password để thiết lập - nhớ kỹ password này, nếu quyên chạy lại để reset) Giả sử thư mục có thiết lập bảo mật là ở /samba/mydata, hãy tạo thư mục và các thiết lập bằng lệnh:

mkdir -p /home/mydata/chown -R testuser:smbgroup /home/mydata/chmod -R 0770 /home/mydata/chcon -t samba_share_t /home/mydata/ Mở lại file cấu hình

vi /etc/samba/smb.conf Thêm vào khối mới, đặt tên là Mydata như sau

path = /home/mydata/valid users =
smbgroupguest ok = nowritable = yesbrowsable = yes Sau đó cần khởi động lại Samba (xem phần trên). Giờ khi ở các máy Client (Windows, macOS, Ubuntu) truy cập đến smb://192.168.1.5/Mydata nó sẽ hỏi User/Password, cần điền đúng mới truy cập được.

Cài đặt Client Samba và sử dụng

Samba ngoài cung cấp tạo Server chia sẻ file SBM như trên, nó cũng cung cấp gói phần mềm có thể cài ở các máy Client ví dụ ở một máy CentOS khác để tạo chức năng kết nối đến server Samba ở trên.

Để cài đặt, ở Client CentOS gõ lệnh:

yum update -yyum -y install samba-client cifs-utils samba-common -y Giờ ta sẽ mount ổ đĩa Server ở địa chỉ //192.168.1.5/Mydata vào máy Client

mkdir -p /mnt/mydata # Tạo thư mục để Mountgroupadd --gid 2000 smbgroup # Thêm một Group giống tên group trên Serverusermod -aG smbgroup root # Gán group cho user (login) ví dụ root Kết nối thử với testuser (user do server cung cấp)

smbclient -L //192.168.1.5/Mydata -U testusers Nếu sau khi nhập Password thành công thì dùng lệnh sau để Mount ổ đĩa

mount -t cifs -o user=testuser,password=123456 //192.168.1.5/Mydata /mnt/mydata Như vậy từ giờ ở máy Client truy cập vào /mnt/mydata chính là đang truy cập ổ mạng //192.168.1.5/Mydata

Nếu Client chạy bằng Docker, để mount được khi chạy container cần cho tham số --cap-add SYS_ADMIN --cap-add DAC_READ_SEARCH

Samba Server trên Debian

Đối với Debian cấu hình và sử dụng tương tự CentOS, sau đây là lệnh cài đặt, bạn có thể áp dụng với Container chạy Debian (từ Image debian:stretch)

apt-get update -yapt-get install samba vim -y Tương tự CentOS, bạn có thể

smbcontrol smbd shutdown # Tắt Sambasmbd # chạy Samba Bạn cũng có thể chạy, để theo dõi lỗi nếu có smbd -FS -d 2

Chú ý, nếu muốn thực hành trên Container có thể tạo nó

docker run -it --rm -v $(pwd):/data/ -p 139:139 -p 445:445 debian:stretch

Samba Server trên Ubuntu

Bạn cũng có thể thực hành trên Ubuntu Container

docker run -it --rm -v $(pwd):/data/ -p 139:139 -p 445:445 ubuntu Gõ các lệnh để cài đặt:

apt-get update -yapt-get install samba vim -y Sử dụng và cấu hình tương tự trên CentOS, Debian

Samba Server trên Docker Container

Bạn có thể chạy Samba Server trên Docker container, tham khảo ví dụ sau:

Sambar Docker


Xem thêm: Nghĩa Của Từ : Measurable Là Gì Trong Tiếng Việt? Từ Điển Anh Việt Measurable

Samba Server và SBMSử dụng Samba Server trên CentOS 7Cài đặt Samba ServerCấu hình chia sẻ Public - kết nốiCấu hình chia sẻ bảo mậtCài đặt Client SambaSử dụng trên DebianSử dụng trên UbuntuSamba Docker