type
status
date
slug
summary
tags
category
icon
password

Samba是什么

Samba 是一个开源的软件套件,用于在 Linux 和类 Unix 系统上实现 SMB/CIFS 协议。它允许 Linux/Unix 系统上的文件和打印资源能够被 Windows 客户端访问,实现了在不同操作系统之间共享文件和打印机的功能。
Samba 使用的主要协议是 SMB(Server Message Block),它是一种在网络上共享文件、打印机和其他资源的通信协议。SMB 协议提供了一种客户端/服务器模型,客户端可以请求服务器上的共享资源,服务器则向客户端提供这些资源。
Samba 默认使用以下端口:
TCP 端口 139:早期版本的 SMB 服务使用此端口,主要用于文件共享和打印机服务。
TCP 端口 445:新版本的 SMB 服务通常使用此端口,它提供了更快速和安全的数据传输。
总的来说,Samba 是一个用于在 Linux 和类 Unix 系统上实现 Windows 文件和打印机共享的软件,它使用 SMB/CIFS 协议,并通常使用 TCP 端口 139 和 445。
 
添加Samba服务器作为文件服务器,工作组名为WORKGROUP,发布共享目录/share,共享名为public,这个共享目录允许公司所有员工访问。

安装 Samba

sudo yum install samba -y

创建共享目录

mkdir /share

编辑配置文件 /etc/samba/smb.conf

vim /etc/samba/smb.conf
notion image

设置 SELinux 上下文

配置防火墙

重启并启用 Samba 服务

systemctl restart smb

测试

Windows 打开 文件管理器输入 \目标IP地址或主机名 断开已连接的用户命令:net use * /del
Linux 系统 smbclient //目标IP地址或主机名/共享目录 -U 用户名%密码

Share Definitions 其他设置参数

public = yes #允许匿名访问
public = no #禁止匿名访问
browseable = yes #共享资源在网络浏览列表中可见
browseable = no #共享资源在网络浏览列表中隐藏,如需访问通过完全路径访问
hosts allow = 192.168.10. server.hello.com #表示允许来自192.168.10网段或server.hello.com的主机访问
hosts deny =192.168.1. #表示不允许192.168.1网段的主机访问。 如果allow和deny冲突,allow优先
valid users = username #指定哪些用户和组可以访问共享目录,多个用“,”隔开
valid users = @组名
read only = yes #只读
read only = no #读写
write list = 用户名
write list = @组名

举个栗子

建立共享目录student,它的本机路径为/home/student,只有teacher组的用户可以读写该目录,student用户只能读取
过程:
安装samba服务器
yum install samba -y
为了实验方便,关闭Selinux
vim /etc/selinux/config 改成disabled
查看selinux状态
sestatus
1.创建组别
2.新建用户并加入到组
3.创建目录
mkdir /home/student
4.更改目录所有者及权限
5.创建samba用户
6.编辑samba配置文件
vim /etc/samba/smb.conf
notion image
7.设置防火墙
8.重启samba服务,并开启开机自启
9.测试
 

再举个栗子

notion image
共4个组别:system test product develop
7个共享目录:system test product develop developandtest public ziliaoku
具体过程:
关闭selinux
[root@lanechow ~]#vim /etc/selinux/config 改成disabled
[root@lanechow ~]#mkdir -p /share/{system,develop,test,product,developandtest,public,ziliaoku}
[root@lanechow ~]# groupadd system [root@lanechow ~]# groupadd develop [root@lanechow ~]# groupadd test [root@lanechow ~]# groupadd product [root@lanechow ~]# useradd -G system user1 [root@lanechow ~]# useradd -G develop user2 [root@lanechow ~]# useradd -G test user3 [root@lanechow ~]# useradd -G product user4 [root@lanechow ~]# chown user2:develop /share/develop [root@lanechow ~]# chmod 770 /share/* [root@lanechow ~]# chown user3:test /share/test [root@lanechow ~]# chown user4:product /share/product [root@lanechow ~]# chown user1:system /share/system [root@lanechow ~]# chmod 644 /share/ziliaoku [root@lanechow ~]# chmod 777 /share/public [root@lanechow ~]# setfacl -m g:test:rwx /share/developandtest [root@lanechow ~]# setfacl -m g:develop:rwx /share/developandtest [root@lanechow ~]# chmod 700 /share/developandtest [root@lanechow ~]# setfacl -m g:system:rwx /share/ [root@lanechow ~]# setfacl -m d:g:system:rwx /share/ [root@lanechow ~]# vim /etc/samba/smb.conf
notion image
[root@lanechow ~]# smbpasswd -a user1 [root@lanechow ~]# smbpasswd -a user2 [root@lanechow ~]# smbpasswd -a user3 [root@lanechow ~]# smbpasswd -a user4 [root@lanechow ~]# chcon -t samba_share_t /share [root@lanechow ~]# restorecon -R /share [root@lanechow ~]# firewall-cmd --permanent --add-service=samba [root@lanechow ~]# firewall-cmd --reload [root@lanechow ~]# systemctl restart smb [root@lanechow ~]# systemctl enable smb
 
Linux NFS服务Windows server Web服务器
  • Twikoo