服务器配置教案 Help

3-2 Samba信息文件块

虚拟机准备

公共步骤:详见公共/0-2机房虚拟机调整简洁版.md

介绍

Samba,是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议做链接的自由软件。 第三版不仅可访问及分享SMB的文件夹及打印机,本身还可以集成入Windows Server的网域,扮演为网域控制站(Domain Controller)以及加入Active Directory成员。 简而言之,此软件在Windows与UNIX系列操作系统之间搭起一座桥梁,让两者的资源可互通有无。

准备

  1. 创建文件共享目录


    mkdir /share

  2. 在/share目录下创建测试文件 cd /share


    touch 1.txt


    touch 2.mp4

  3. 创建用户zhangsan ,密码设置111111 useradd zhangsan


    passwd zhangsan


    返回信息虽然说密码太简单无效,但其实能设置

新的 密码: 无效的密码: 密码是一个回文 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新。
  1. 创建用户组


    ``

  2. 关闭防火墙 systemctl stop firewalld 关闭防火墙 (可选) systemctl disable firewalld 关闭防火墙开机自启动

  3. (重要)关闭selinux


    setenforce 0


    不关闭将表现为客户端能看到共享文件夹但怎么设置都无权限访问。

  4. 记录下服务端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

看到全局配置、用户家目录、打印机共享等信息。

修改配置文件

  1. 编辑配置

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 ,有学习成本,总之权限放的开些先看到效果再说。

  1. 校验配置:

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

启动服务

  1. 启动服务,名为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.
  1. (可选)启动nmb服务,nmb服务负责主机名解析,可以访问主机名的方式访问。后面我们的是ip访问服务端。

测试

Windows

Windows系统本身天然支持作为samba协议,"网上邻居"中可发现samba服务(由于服务端配置问题,可能不可直接看见,但能访问)。

  1. 访问服务端IP: 在运行 (快捷键win+R )或资源管理器 (快捷键win+E )中输入服务端IP地址即可访问。


    3-2window客户端访问服务端ip.png
  1. 输入用户名密码: 初次访问输入之前添加的smb用户名zhangsan和smb密码222222


    3-2输入凭证.png
  1. 访问成功

    3-2访问共享文件夹成功.png

作业

实现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