Linux Samba服务器

Gweek Lv4

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

设置 SELinux 上下文

1
2
chcon -t samba_share_t /share
restorecon -R /share

配置防火墙

1
2
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload

重启并启用 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.创建组别

1
2
groupadd teacher
groupadd student

2.新建用户并加入到组

1
2
useradd -G teacher user1
useradd -G student user2

3.创建目录

mkdir /home/student

4.更改目录所有者及权限

1
2
chown user1:teacher /home/student
chmod 775 /home/student

5.创建samba用户

1
2
smbpasswd -a user1
smbpasswd -a user2

6.编辑samba配置文件

vim /etc/samba/smb.conf


7.设置防火墙

1
2
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload

8.重启samba服务,并开启开机自启

1
2
systemctl restart smb
systemctl enable smb

9.测试

  • Title: Linux Samba服务器
  • Author: Gweek
  • Created at : 2024-04-26 00:00:00
  • Updated at : 2024-09-13 14:08:11
  • Link: https://gweek.nyc.mn/2024/04/25/2024-04-26-samba/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments