Ti m hiê u vê samba sever trên linux
Samba Server và SBMSamba 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 Show Mặc định Samba
Server sử dụng cổng Sử dụng Samba Server trên CentOS 7Cài đặt Samba Serveryum update -y yum install samba -y systemctl enable smb.service systemctl enable nmb.service systemctl restart smb.service systemctl restart nmb.service CentOS 7 có thể cần mở firewall cho Samba firewall-cmd --permanent --zone=public --add-service=samba firewall-cmd --reload Ngoài sử dụng smbcontrol smbd shutdown # Tắt Samba smbd # chạy Samba Chia sẻ một thư mục publicSau
khi cài đặt, có file cấu hình mặc định tại mv /etc/samba/smb.conf /etc/samba/smb.conf.bak # Sao lưu vi /etc/samba/smb.conf Nhập vào nội dung sau: [global] workgroup = WORKGROUP server string = My Samba Server netbios name = centos security = user map to guest = bad user dns proxy = no #=== BAT DAU THIET LAP CHIA SE FILE [PublicShare] path = /samba/publicshare browsable = yes writable = yes guest ok = yes read only = no Lưu file này lại. Ở đây định nghĩa một khối chia sẻ file có tên là 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 7 systemctl restart smb.service systemctl restart nmb.service # NẾU KHÔNG DÙNG ĐƯỢC systemctl smbcontrol smbd shutdown smbd Kết nối từ Windows đến Samba Server Giả sử Server trên có địa chỉ IP là 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ỉ Hoặc từ Ubuntu, ở Files chọn Other locations rồi điền địa chỉ Thư mục chia sẻ được bảo mậtNế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à useradd testuser # tạo testuser groupadd smbgroup # Tạo group smbgroup usermod -a -G smbgroup testuser # Gán group cho user smbpasswd -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à ở 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] path = /home/mydata/ valid users = @smbgroup guest ok = no writable = yes browsable = 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 Cài đặt Client Samba và sử dụngSamba 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 -y yum -y install samba-client cifs-utils samba-common -y Giờ ta sẽ mount ổ đĩa Server ở địa chỉ mkdir -p /mnt/mydata # Tạo thư mục để Mount groupadd --gid 2000 smbgroup # Thêm một Group giống tên group trên Server usermod -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 Nếu Client chạy bằng Docker, để mount được khi chạy
container cần cho tham số 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 -y apt-get install samba vim -y Tương tự CentOS, bạn có thể smbcontrol smbd shutdown # Tắt Samba smbd # chạy Samba Bạn cũng có thể chạy, để theo dõi lỗi nếu có 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 UbuntuBạ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 -y apt-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 ContainerBạn có thể chạy Samba Server trên Docker container, tham khảo ví dụ sau: Sambar Docker |