samba服务器

发布于:2025-08-16 ⋅ 阅读:(20) ⋅ 点赞:(0)

samba服务器

samba服务的进程由smbd和nmbd组成
smbd进程:主要负责管理服务器上的共享目录、打印机、提供登录认证、创建对话进程和SMB资源共享等功能
端口 139和445

nmbd进程:主要负责提供NetBIOS的域名解析和浏览共享资源的服务
端口 137和138

工作原理:
1、由Samba客户端向Samba服务器端发送包含使用的协议版本等信息的数据请求包,
当服务器收到数据请求包后对数据包中的内容进行确认,
如果Samba服务器没有响应客户端的请求则本次会话请求连接失败。
2、当数据请求包的信息被Samba服务器确认后,
服务器就向客户端发送建议使用的协议版本、端口等相关信息
3、客户端在收到来自服务器端的信息后,开始根据服务器的要求确认自身的信息,
然后向服务器发送认证信息并等待服务器的响应,如果服务器端响应客户端的请求,
则本次会话请求连接成功,否则,则本次会话请求连接失败。
4、客户端与服务器端成功建立会话连接后,客户端就可以通过相应的命令访问所需的资源。

samba服务器部署
1、安装samba服务器所需的软件包
yum -y install samba samba-client

[root@ws yum.repos.d]# cd /etc/samba
[root@ws samba]# ls
lmhosts  smb.conf  smb.conf.example
[root@ws samba]# vim smb.conf.example 	//模板配置文件

smbd:SMB服务器,为客户端提供文件和打印服务
nmbd:NetBIOS名称服务器,可以提供浏览支持
smbclient:SMB客户端程序,用于从Linux或其他操作系统上访问SMB服务器上的资源
smbmount:挂载SMB文件系统的工具
smbumount:卸载SMB文件系统的工具
smbpasswd::添加、删除及管理SMB账户口令

#Security-Enhanced Linux (SELinux) Notes: // selinux的参数配置

#setsebool -P samba_enable_home_dirs on // 共享家目录,需要配置的bool值

#chcon -t samba_share_t /path/to/directory // 共享自定义的 ,需要更改目录的context值

#setsebool -P samba_export_all_ro on // 读权限共享目录时,需要设置的bool值

#setsebool -P samba_export_all_rw on读写权限共享目录时,需要设置的bool值

[global] —全局设置起始标签
workgroup = MYGROUP ----工作组名称设置
server string = Samba Server Version %v ----samba服务器的版本信息

; netbios name = MYSERVER --------主机的NetBIOS设置

; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 ----定义samba服务监听的
ip或者网络接口
; hosts allow = 127. 192.168.12. 192.168.13. —允许访问的主机列表

日志设置
log file = /var/log/samba/log.%m —日志文件路径及文件名设置
max log size = 50 ----日志文件最大大小设置,单位KB,若日志文件大小大于50KB,则循环写入

独立服务器选项
security = user --------samba运行模式
passdb backend = tdbsam ----存储用户信息

security参数值可以设置为3种模式 :
user:使用samba自身的数据库验证用户
share:无需共享密码,任何人都可以访问samba共享资源
server:在此级别下,身份验证由samba主机负责,但是不推荐使用

passdb backend参数值设置有3种:
tdbsam:使用数据库文件passdb.tdp,该文件存放在/etc/samba下,该参数值为默认
ldapsam:使用LDAP方式进行验证
smbpasswd:使用smbpasswd为系统用户设置samba密码

共享目录设置部分
[homes] ----共享名,可以自定义
comment = Home Directories ----共享描述信息
browseable = no ----共享不可以浏览
writable = yes ----共享权限为可写
valid users = %S —定义可访问的用户,这里表示所有合法登录的用户

共享设置部分有一系列的参数设置,常见的如下:
comment = :定义共享描述
path = :定义具体的共享目录(值为共享目录的绝对路径)
browseable = :定义是否可以浏览,yes为可以浏览,no为不能浏览,默认为yes
read only = :定义共享权限是否只读,yes表示只读,默认值为只读
writable = :定义共享权限是否可写,yes表示可写,no表示不可写,默认为no
write list = :定义具体读写共享权限的用户列表,不在列表的用户默认只有只读权限,参数值可以
设置为用户名和组名;设置用户名的格式为:username1,username2(中间用逗号隔开)
设置组名的格式:@groupname1,@groupname2(中间用逗号隔开)
guest ok = :定义是否允许匿名,yes表示允许匿名,no表示不允许匿名
valid users = :定义可以访问共享的samba用户列表,格式username1,username2
不允许列表以外的samba用户访问共享,若列表为空白,则表示所有的samba用户均可访问共享
public = : 定义是否为公共共享,yes为公共共享 no表示非公共共享
设置目录共享时,一定要事先创建需要共享的目录,且留意共享目录的文件系统权限和共享权限的一致性。

例子

将samba服务器端目录/smbshare共享,共享名为myshare,共享可以浏览,允许用户rose和用户marry访问
用户rose具有只读权限,marry具有读写权限 (rose和marry系统存在的用户)

作为服务器

[root@ws samba]# mkdir /smbshare
[root@ws ~]# cd /smbshare/
[root@ws smbshare]# ls
[root@ws smbshare]# touch file1
[root@ws smbshare]# ls
file1
创建共享目录 在共享目录下创建file1文件

进入samba服务进行配置


lmhosts  smb.conf  smb.conf.example
[root@ws samba]# vim smb.conf

在这里插入图片描述

新建rose和marry用户

[root@ws samba]# useradd rose
[root@ws samba]# useradd marry

将rose和marry用户设置为samba用户

[root@ws samba]# smbpasswd -a rose
New SMB password:
Retype new SMB password:
Added user rose.
[root@ws samba]# smbpasswd -a marry
New SMB password:
Retype new SMB password:
Added user marry.

smbpasswd
-a:添加用户
-x:删除用户
-e:启用用户
-d:禁用用户

设置权限,保证samba用户的访问权限和服务设置的权限一致

[root@ws samba]# setfacl -m u:rose:r-x /smbshare
[root@ws samba]# setfacl -m u:marry:rwx /smbshare

列出系统上配置为samba用户的所有用户

[root@ws samba]# pdbedit -L
rose:1001:
marry:1002:

重启服务

[root@ws samba]# systemctl restart smb.service 
[root@ws samba]# systemctl enable smb.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
[root@ws samba]# systemctl restart nmb.service 
[root@ws samba]# systemctl enable nmb.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/nmb.service to /usr/lib/systemd/system/nmb.service

关闭防火墙selinux

[root@ws samba]# systemctl stop firewalld.service 
[root@ws samba]# systemctl disable firewalld.service 
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@ws samba]# setenforce 0

客户端

[root@ws2 ~]# yum -y install samba-client cifs-utils

1、匿名用户访问samba服务器共享资源列表

[root@ws2 ~]# smbclient -L 192.168.110.10 
Enter SAMBA\root's password: 
Anonymous login successful

	Sharename       Type      Comment
	---------       ----      -------
	myshare         Disk      
	print$          Disk      Printer Drivers
	IPC$            IPC       IPC Service (Samba 4.8.3)
Reconnecting with SMB1 for workgroup listing.
Anonymous login successful

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------
	SAMBA              

2、samba用户浏览samba服务器共享资源列表

[root@ws2 ~]# smbclient -L 192.168.110.10 -U rose
Enter SAMBA\rose's password: 

	Sharename       Type      Comment
	---------       ----      -------
	myshare         Disk      
	print$          Disk      Printer Drivers
	IPC$            IPC       IPC Service (Samba 4.8.3)
	rose            Disk      Home Directories
Reconnecting with SMB1 for workgroup listing.

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------
	SAMBA 

3、匿名用户访问samba服务器的共享资源

[root@w2 ~]# smbclient //192.168.110.10/myshare 
Enter SAMBA\root's password: 
Anonymous login successful

4、samba用户浏览samba服务器共享资源

[root@ws2 ~]# smbclient //192.168.110.10/myshare -U rose
Enter SAMBA\rose's password: 
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Thu Aug 14 16:46:11 2025
  ..                                 DR        0  Thu Aug 14 16:46:01 2025
  file1                               N        0  Thu Aug 14 16:46:11 2025

		52403200 blocks of size 1024. 48703920 blocks available
smb: \> 

5、使用mount命令讲samba服务器共享资源挂载到本地目录下
mkdir /smbmount

[root@ws2 ~]# mkdir /smbmount

6.交互式挂载—等待你输入密码
mount -t cifs -o username=marry //192.168.110.10/myshare /smbmount
----输入samba用户rose的samba密码

[root@ws2 ~]# mount -t cifs -o username=marry //192.168.110.10/myshare /smbmount
Password for marry@//192.168.110.10/myshare:  *****
[root@ws2 ~]# 
[root@ws2 ~]# 
[root@ws2 ~]# df -TH
文件系统                 类型      容量  已用  可用 已用% 挂载点
/dev/sda2                xfs        54G  3.8G   50G    8% /
devtmpfs                 devtmpfs  2.1G     0  2.1G    0% /dev
tmpfs                    tmpfs     2.1G     0  2.1G    0% /dev/shm
tmpfs                    tmpfs     2.1G   14M  2.1G    1% /run
tmpfs                    tmpfs     2.1G     0  2.1G    0% /sys/fs/cgroup
/dev/sda1                xfs       1.1G  171M  893M   17% /boot
tmpfs                    tmpfs     413M   29k  413M    1% /run/user/0
/dev/sr0                 iso9660   4.6G  4.6G     0  100% /mnt
//192.168.110.10/myshare cifs       54G  3.8G   50G    8% /smbmount
[root@ws2 ~]# cd /smbmount/
[root@ws2 smbmount]# ls
file1

7.非交互式挂载—直接挂载上
mount -t cifs -o username=rose,password=rose,sec=ntlmssp //192.168.110.10/myshare /smbmount

[root@ws2 ~]# mount -t cifs -o username=rose,password=rose,sec=ntlmssp //192.168.110.10/myshare /smbmount
[root@ws2 ~]# df -Th
文件系统                 类型      容量  已用  可用 已用% 挂载点
/dev/sda2                xfs        50G  3.6G   47G    8% /
devtmpfs                 devtmpfs  2.0G     0  2.0G    0% /dev
tmpfs                    tmpfs     2.0G     0  2.0G    0% /dev/shm
tmpfs                    tmpfs     2.0G   13M  2.0G    1% /run
tmpfs                    tmpfs     2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda1                xfs      1014M  163M  852M   17% /boot
tmpfs                    tmpfs     394M   28K  394M    1% /run/user/0
/dev/sr0                 iso9660   4.3G  4.3G     0  100% /mnt
//192.168.110.10/myshare cifs       50G  3.6G   47G    8% /smbmount
[root@ws2 ~]# cd /smbmount/
[root@ws2 smbmount]# ls
file1

上面是临时挂载 交互式需要输密码 非交换式不需要密码

8.永久挂载vim /etc/fstab

[root@ws2 ~]# vim /etc/fstab 
[root@ws2 ~]# mount -a
[root@ws2 ~]# df -Th
文件系统                 类型      容量  已用  可用 已用% 挂载点
/dev/sda2                xfs        50G  3.6G   47G    8% /
devtmpfs                 devtmpfs  2.0G     0  2.0G    0% /dev
tmpfs                    tmpfs     2.0G     0  2.0G    0% /dev/shm
tmpfs                    tmpfs     2.0G   13M  2.0G    1% /run
tmpfs                    tmpfs     2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda1                xfs      1014M  163M  852M   17% /boot
tmpfs                    tmpfs     394M   28K  394M    1% /run/user/0
/dev/sr0                 iso9660   4.3G  4.3G     0  100% /mnt
//192.168.110.10/myshare cifs       50G  3.6G   47G    8% /smbmount

在这里插入图片描述

多用户挂载,使用multiuser选项,
//192.168.110.10/myshare /smbmount cifs multiuser,username=rose,password=rose,sec=ntlmssp 0 0

创建一个abc用户

普通用户abc使用cifscreds命令向samba服务器提交samba用户marry的凭证,此时普通用户abc
临时具有samba用户marry的权限,实现其对myshare共享具有marry的读写权限

在这里插入图片描述

[abc@ws2 ~]$ cifscreds add 192.168.110.10 -u marry
Password: 
[abc@ws2 ~]$ cd /smbmount/
[abc@ws2 smbmount]$ ls
6949  file1  test1
[abc@ws2 smbmount]$ touch 96496
[abc@ws2 smbmount]$ ls
6949  96496  file1  test1

windows操作系统
\172.16.30.20 回车
输入samba用户和密码

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到