3-2 Samba信息文件块 介绍 Samba,是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议做链接的自由软件。 第三版不仅可访问及分享SMB的文件夹及打印机,本身还可以集成入Windows Server的网域,扮演为网域控制站(Domain Controller)以及加入Active Directory成员。 简而言之,此软件在Windows与UNIX系列操作系统之间搭起一座桥梁,让两者的资源可互通有无。
准备 创建文件共享目录
mkdir /share
在/share目录下创建测试文件 cd /share
touch 1.txt
touch 2.mp4
创建用户zhangsan ,密码设置111111 useradd zhangsan
passwd zhangsan
返回信息虽然说密码太简单无效,但其实能设置
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
创建用户组
``
关闭防火墙 systemctl stop firewalld
关闭防火墙 (可选) systemctl disable firewalld
关闭防火墙开机自启动
(重要)关闭selinux
setenforce 0
不关闭将表现为客户端能看到共享文件夹但怎么设置都无权限访问。
记录下服务端ip地址
nmcli
桥接网络下教室的ip形如172.31.5.123,本文中假设服务端IP为
服务端:CentOS,桥接,假设IP172.31.5.100 客户端:Windows,资源管理器
安装
yum install samba
安装过程中有询问是否确认安装和接受软件源的公钥,键入y 然后↵ 。返回信息如下
上次元数据过期检查:0:03:13 前,执行于 2024年10月11日 星期五 07时43分27秒。
依赖关系解决。
================================================================================
软件包 架构 版本 仓库 大小
================================================================================
安装:
samba x86_64 4.19.4-4.el8 baseos 1.0 M
安装依赖关系:
libnetapi x86_64 4.19.4-4.el8 baseos 217 k
samba-common-tools x86_64 4.19.4-4.el8 baseos 543 k
samba-dcerpc x86_64 4.19.4-4.el8 baseos 756 k
samba-ldb-ldap-modules x86_64 4.19.4-4.el8 baseos 113 k
samba-libs x86_64 4.19.4-4.el8 baseos 205 k
事务概要
================================================================================
安装 6 软件包
总下载:2.8 M
安装大小:8.1 M
确定吗?[y/N]: y
下载软件包:
(1/6): libnetapi-4.19.4-4.el8.x86_64.rpm 1.3 MB/s | 217 kB 00:00
(2/6): samba-common-tools-4.19.4-4.el8.x86_64.r 2.0 MB/s | 543 kB 00:00
(3/6): samba-4.19.4-4.el8.x86_64.rpm 2.9 MB/s | 1.0 MB 00:00
(4/6): samba-dcerpc-4.19.4-4.el8.x86_64.rpm 3.4 MB/s | 756 kB 00:00
(5/6): samba-ldb-ldap-modules-4.19.4-4.el8.x86_ 881 kB/s | 113 kB 00:00
(6/6): samba-libs-4.19.4-4.el8.x86_64.rpm 1.4 MB/s | 205 kB 00:00
--------------------------------------------------------------------------------
总计 5.7 MB/s | 2.8 MB 00:00
CentOS Stream 8 - BaseOS 1.6 MB/s | 1.6 kB 00:00
导入 GPG 公钥 0x8483C65D:
Userid: "CentOS (CentOS Official Signing Key) <security@centos.org>"
指纹: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
来自: /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
确定吗?[y/N]: y
导入公钥成功
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : samba-libs-4.19.4-4.el8.x86_64 1/6
安装 : libnetapi-4.19.4-4.el8.x86_64 2/6
安装 : samba-dcerpc-4.19.4-4.el8.x86_64 3/6
安装 : samba-ldb-ldap-modules-4.19.4-4.el8.x86_64 4/6
安装 : samba-common-tools-4.19.4-4.el8.x86_64 5/6
安装 : samba-4.19.4-4.el8.x86_64 6/6
运行脚本: samba-4.19.4-4.el8.x86_64 6/6
验证 : libnetapi-4.19.4-4.el8.x86_64 1/6
验证 : samba-4.19.4-4.el8.x86_64 2/6
验证 : samba-common-tools-4.19.4-4.el8.x86_64 3/6
验证 : samba-dcerpc-4.19.4-4.el8.x86_64 4/6
验证 : samba-ldb-ldap-modules-4.19.4-4.el8.x86_64 5/6
验证 : samba-libs-4.19.4-4.el8.x86_64 6/6
已安装:
libnetapi-4.19.4-4.el8.x86_64 samba-4.19.4-4.el8.x86_64
samba-common-tools-4.19.4-4.el8.x86_64 samba-dcerpc-4.19.4-4.el8.x86_64
samba-ldb-ldap-modules-4.19.4-4.el8.x86_64 samba-libs-4.19.4-4.el8.x86_64
完毕!
配置文件 原始信息
cat /etc/samba/smb.conf
返回信息如下
[global]
workgroup = SAMBA
security = user # 安全级别
passdb backend = tdbsam # 用户密码和权限存储于数据库
printing = cups
printcap name = cups
load printers = yes
cups options = raw # 没有host allow配置代表允许所有客户端ip访问
# Install samba-usershares package for support
include = /etc/samba/usershares.conf
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No # 在共享邻居中是否可见
read only = No # 是否所有人只读
inherit acls = Yes
[printers] # 打印机用不上,放着不动或注释掉
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
看到全局配置、用户家目录、打印机共享等信息。
修改配置文件 编辑配置
nano /etc/samba/smb.conf
在文件最后添加新配置块配置/share目录行为。
# ...
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
# 接着文件原内容的[print$]块后继续写
[share]
path = /share # 共享文件夹路径
hosts allow = ALL # 允许的客户端IP,允许网段的写法是172.31.5. ,ALL代表允许所有客户端ip
browsable = yes # 可浏览
writeable = yes # 可读写
guest ok = yes # 允许匿名访问不需要密码
# 下面#开头的行不用写
# comment = My Custom Share # 描述
# valid users = root,zhangsan,xiaoming # 允许的用户。不写也行,用户已经由smbpasswd命令加入数据库
# valid users = @smbgroup # 允许的用户组。不写也行,本节没做用户组的权限实验。
参数详见英文文档samba doc ,有学习成本,总之权限放的开些先看到效果再说。
校验配置:
testparm
配置文件尚未修改,当然返回信息ok
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed by GnuTLS (e.g. NTLM as a compatibility fallback)
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
添加用户授权
smbpasswd -a zhangsan
跟随向导设置为linux用户添加smb访问授权和smb密码,设置密码为222222
New SMB password:
Retype new SMB password:
Added user zhangsan.
(可选)修改文件夹和文件允许所有人访问。可选,因为配置中已经允许所有人访问guest ok。 chmod -R 777 /share
chown -R zhangsan:zhangsan /share
启动服务 启动服务,名为smb
systemctl start smb
(可选)设置为开机自启动systemctl enable smb
3. 查看服务状态
systemctl status smb
返回信息active(running)为成功
smb.service - Samba SMB Daemon
Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset:>
Active: active (running) since Fri 2024-10-11 08:25:23 EDT; 12s ago
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
Main PID: 34890 (smbd)
Status: "smbd: ready to serve connections..."
Tasks: 3 (limit: 14017)
Memory: 11.5M
CGroup: /system.slice/smb.service
├─34890 /usr/sbin/smbd --foreground --no-process-group
├─34892 /usr/sbin/smbd --foreground --no-process-group
└─34893 /usr/sbin/smbd --foreground --no-process-group
10月 11 08:25:23 localhost.localdomain systemd[1]: Starting Samba SMB Daemon...
10月 11 08:25:23 localhost.localdomain smbd[34890]: [2024/10/11 08:25:23.294607>
10月 11 08:25:23 localhost.localdomain smbd[34890]: smbd version 4.19.4 start>
10月 11 08:25:23 localhost.localdomain smbd[34890]: Copyright Andrew Tridgell>
10月 11 08:25:23 localhost.localdomain systemd[1]: Started Samba SMB Daemon.
(可选)启动nmb服务,nmb服务负责主机名解析,可以访问主机名的方式访问。后面我们的是ip访问服务端。
测试 Windows Windows系统本身天然支持作为samba协议,"网上邻居"中可发现samba服务(由于服务端配置问题,可能不可直接看见,但能访问)。
访问服务端IP: 在运行 (快捷键win+R )或资源管理器 (快捷键win+E )中输入服务端IP地址 即可访问。
输入用户名密码: 初次访问输入之前添加的smb用户名zhangsan 和smb密码222222
访问成功
作业 实现samba服务。建议网络模式桥接,两人一组。
(以下内容不要求掌握) (可选)Linux客户端 (不要求掌握,下面为参考文章内容)
[root@node01 ~]# dnf -y install samba-client cifs-utils
# with [smbclient] command access
# smbclient (share name) -U (user name)
[root@node01 ~]# smbclient '\\smb.srv.world\Share01' -U cent
Enter SAMBA\cent's password:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Mon Mar 15 21:38:38 2021
.. D 0 Mon Mar 15 21:35:20 2021
testfile.txt N 15 Mon Mar 15 21:38:33 2021
testdir D 0 Mon Mar 15 21:38:38 2021
27245572 blocks of size 1024. 24883772 blocks available
# download a file
smb: \> mget testfile.txt
Get file testfile.txt? y
getting file \testfile.txt of size 15 as testfile.txt (4.9 KiloBytes/sec) (average 4.9 KiloBytes/sec)
smb: \> !ls
anaconda-ks.cfg testfile.txt
smb: \> exit
# with [mount] command access
# [vers=(SMB protocol version)]
[root@node01 ~]# mount -t cifs -o vers=3.0,username=cent '\\smb.srv.world\Share01' /mnt
Password for cent@\smb.srv.world\Share01: ******** # password
[root@node01 ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 8.6M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/cs-root xfs 26G 2.3G 24G 9% /
/dev/vda1 xfs 1014M 259M 756M 26% /boot
tmpfs tmpfs 374M 0 374M 0% /run/user/0
\\smb.srv.world\Share01 cifs 26G 2.3G 24G 9% /mnt
# if share does not require authentication, specify [none] for username
[root@node01 ~]# mount -t cifs -o vers=3,username=none,password=none '\\smb.srv.world\Share' /mnt
管理 不要求掌握,略,用到再上网查。 smbstatus
,查看当前分享的目录和连接的客户端用户。
Last modified: 14 十月 2024