Samba服务器搭建(基于rhel8)
时间:2022-11-13 16:00:00
一、Samba介绍
Samba是在Linux和UNIX系统上实现SMB由服务器和客户端程序组成的协议免费软件;SMB是一种在局域网上共享文件和打印机的一种通信协议。
Samba模式:C/S模式
二、Samba解决了哪些问题?
不同系统之间的文件共享通过网络实现。(一般是局域网)
三、Samba什么是工作原理?
Samba服务由两个过程组成,即smbd和nmbd。
smbd:主要用于管理samba服务器上的共享目录、打印机等;主要用于网络上共享资源的管理。
nmbd:主要功能是执行NetBIOS提供浏览服务,显示网络上的共享资源列表。
Samba一般工作流程:
四、Samba配置
网络主机规划
服务端 | 客户端 |
---|---|
Rhel8:192.168.24.9 | 192.168.24.x 主机名:docker |
主机名:node1 | Windows:192.168.24.y |
安装Samba并启动服务
服务端:
[root@node1 ~]# yum install -y samba [root@node1 ~]# systemctl enable --now smb nmb
Linux客户端安装Samba客户端:
[root@docker ~]# yum install -y samba-client
注意:samba服务依赖于rpc如果不是,服务yum提前安装安装rpc包,起rpc服务。
Samba分析配置文件
samba主配文件://etc/samba/smb.conf
详细配置文件:/etc/samba/smb.conf.example(可查看更多全局配置)
主配文件:
默认Samba用户家目录可以自己浏览,有读写权限。
Samba全局配置:
workgroup | 工作组 |
---|---|
security | 安全级别 user/share/server/domain |
安全级别 | 解释 |
share: | 无需提供用户和密码即可访问共享资源。 |
user: | 用户和密码需要连接samba提供服务器端验证。 |
server: | 需要用户和密码的,可以指定其他机器进行验证。验证失败user处理等级。 |
domain: | 指定域服务器需要用户和密码进行验证 |
Samba共享配置:
[共享名] | |
---|---|
comment | 描述 |
path | 共享目录的绝对路径/test |
browseable | 是否允许浏览。yes/no |
hosts allow | 允许访问这些网段。.168.24.0/24 |
public | 是否开放浏览网段中的所有主机。yes/no |
valid users | 哪些用户可以访问共享文件。 oyys |
writable | 是否打开所有人的写作权限。 yes/no |
write list | 上一行为yes允许谁不能写;为了no允许谁写。 @组 |
readonly | 是否只读共享。yes/no |
read list | 上一行为yes也就是说,谁不仅能读;为了no谁只能读。 @组 |
注意:public和valid users不能同时使用,否则public设置无效。
5.案例实践(共享设置和客户端挂载)
要求:
①设置共享文件夹/设置共享文件夹/test
②samba服务器是WORKGROUP工作组成员
③设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享目录/设置共享设置共享目录/设置共享设置共享设置共享目录/设置共享设置共享设置共享目录/设置共享设置共享设置/设置共享设置共享设置/设置共享设置共享设置共享设置共享设置共享设置/设置/设置/设置共享设置共享设置共享设置/设/设置共享设置共享设置共享设/设/共享设/设/设/设/设/设/设/设置共享设置共享设置共享设/设/共享设/设/设/设/设/设/设/设/设/共享设/设/设/设/设/设/设/共享设/设/设/设/共享设置共享设/共享设/共享设/设/设/共享设/共享设/设/共享设/设/共享设/设/共享设/设/设/共享设/设/设/设/设/共享设/设/设/共享设/设/共享设/共享设/共享设/设/共享设/设/共享设/设/设/共享设/设/设/设/设/共享设/设/共享设/设/设/设test 的共享名为test
④只有192.168.24.0/24网段可访问共享文件夹
⑤test共享可以被浏览
⑥samba用户oyys可以读写共享目录中的内容,验证密码是redhat
创建共享目录,修改他人权限
[root@node1 ~]# mkdir /test [root@node1 ~]# chmod 757 /test
编辑主配置文件:
重启服务
[root@node1 ~]# systemctl restart smb nmb
添加samba用户:
[root@node1 ~]# smbpasswd -a oyys //必须是已存在的本地用户
New SMB password: //设置登陆密码
Retype new SMB password:
Added user oyys.
Windows客户端临时挂载共享:
第一次需要输入samba用户名和密码,就可以看到家目录和共享出来的test文件夹。
在test共享下可以创建文件夹和文件。
Windows客户端永久挂载共享:
输入服务端共享文件夹绝对路径
Linux客户端临时挂载共享:(smbclient命令)
[root@docker ~]# smbclient //192.168.24.9/test -U oyys%redhat
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Thu Jul 28 13:09:39 2022
.. D 0 Thu Jul 28 13:04:55 2022
aaa D 0 Thu Jul 28 13:09:22 2022
bbb.txt A 0 Thu Jul 28 13:09:36 2022
18351104 blocks of size 1024. 14096636 blocks available
smb: \> mkdir ccc
smb: \> ls
. D 0 Thu Jul 28 13:19:57 2022
.. D 0 Thu Jul 28 13:04:55 2022
aaa D 0 Thu Jul 28 13:09:22 2022
bbb.txt A 0 Thu Jul 28 13:09:36 2022
ccc D 0 Thu Jul 28 13:19:57 2022
18351104 blocks of size 1024. 14096636 blocks available
smb: \>
Linux客户端永久挂载共享
[root@docker ~]# mkdir /mnt/samba //创建挂载点
[root@docker ~]# mount -o username=oyys,password=redhat -t cifs //192.168.24.9/test /mnt/samba
[root@docker ~]# vim /etc/fstab //永久挂载
[root@docker ~]# mount -a //检查挂载完整性
[root@docker ~]# df /mnt/samba/ //查看挂载状态
Filesystem 1K-blocks Used Available Use% Mounted on
//192.168.24.9/test 18351104 4254384 14096720 24% /mnt/samba
[root@docker ~]# cd /mnt/samba/ //查看
[root@docker samba]# ll
total 0
drwxr-xr-x 2 root root 0 Jul 28 13:09 aaa
-rwxr-xr-x 1 root root 0 Jul 28 13:09 bbb.txt
drwxr-xr-x 2 root root 0 Jul 28 13:19 ccc