Linux下搭建samba服务

243 阅读3分钟

Linux下搭建samba服务

samba介绍

​ Samba是一个在Unix系列操作系统中实现SMB(Server Message Block)协议的自由软件。通过Samba,Windows客户端可以像访问本地网络上的Windows服务器一样访问Unix服务器上的文件和打印服务。Samba适用于所有SMB/CIFS客户端,包括Linux、BSD、Solaris以及Windows等操作系统。

​ Samba适合用来在不同操作系统间共享文件和打印机,是一种实现跨平台文件共享的流行方式。

部署

安装samba

在基于Debian或Ubuntu的系统上安装Samba:

sudo apt update
sudo apt install samba smbclient -y

在基于RHEL、CentOS或Fedora的系统上安装Samba:

yum install samba samba-client -y

配置samba

编辑Samba的配置文件 /etc/samba/smb.conf,以设定资源共享的相关配置。您可以使用任何文本编辑器编辑此文件,如下:

vim /etc/samba/smb.conf

在配置文件中添加一个新的共享部分并保存,例如:

[share]
    comment = share
    path = share path
    browseable = yes
    read only = no
    guest ok = no
    create mask = 0644
    directory mask = 0755
    valid users = samba
    hosts allow = x.x.x.x
    hosts deny = 0.0.0.0/0

参数解释:

  • [share]:定义了共享名称,这里称为 "share"。在Windows中会显示为 "\你的服务器IP\share"。
  • comment:为共享提供注释或描述,这个字段是可选的。
  • path:指定了共享目录的路径,这需要替换为您的实际共享目录路径。
  • browseable:设置为 yes,表示这个共享在网络上可以被浏览;如果设置为no,这个共享不会出现在浏览列表中,但是如果知道共享名称还是可以访问的。
  • read only:设置为 no,表示允许用户读写文件;如果设置为yes,则表示共享是只读的,用户不能修改文件。
  • guest ok:设置为 no,表示不允许未授权的访问;如果是yes,则表示不需要用户名和密码即可访问。
  • create maskdirectory mask:设置新创建的文件和目录的默认权限。这里,新文件的权限被设置为644(即用户读写、组读、其他读),新目录的权限被设置为755(即用户读写执行、组和其他读执行)。
  • valid users:限制哪些用户可以访问这个共享。这里,只有名为 samba 的用户可以访问,用户名可以添加多个或一个,多个以逗号分隔。
  • hosts allow:定义哪些主机可以访问Samba服务器。这里仅允许IP x.x.x.x 访问。
  • hosts deny:定义哪些主机被禁止访问Samba服务器。这里禁止所有IP地址(0.0.0.0/0 代表所有网络)访问共享。

创建共享路径和用户

创建共享的路径,如果已存在则可不创建,直接使用,创建共享的samba用户,示例如下:

mkdir -p /share/path 
useradd samba #创建samba用户
smbpasswd -a test #为samba用户设置密码

启动并设置Samba服务

在基于Debian或Ubuntu的系统上启动服务:

systemctl start smbd 
systemctl enable smbd

在基于RHEL、CentOS或Fedora的系统上启动服务

systemctl start smb
systemctl enable smb

访问测试

在客户机上尝试访问共享目录。例如,在Windows上,您可以在文件资源管理器的地址栏输入\\ip_address\share并按回车。将ip_address替换为Samba服务器的IP。