基于Rocky8的samba服务

284 阅读3分钟

Rocky8下的文件共享

一 、samba简介

  • samba主要是用来实现 Linux与windows之间的文件共享

  • samba是基于 NetBios协议 ,每台samba主机必须有一个唯一的NetBios Name,samba主机之间通过这个NetBios Name进行通信。

  • samba服务启动的时候至少启动两个服务,nmbd和smbd,nmbd主要用来做NetBios Name的解析,然后剩下的操作都是由smbd服务来管理的

  • samba采用的是TDB的数据格式,samba服务还有一个作用就是不同的samba用户去访问可以获得不同的数据。

二、samba安装

准备环境:

一台安装好的Rocky8 Linux保证能访问互联网

安装步骤:

1、关闭selinux、关闭防火墙

[root@localhost ~]# sed -i 's/enforcing/disabled/g' /etc/selinux/config
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl disable firewalld --now

2、安装smb

[root@localhost ~]# dnf -y install samba

3、创建samba系统用户并为系统用户设置密码

[root@localhost ~]# useradd zxp
[root@localhost ~]#  id zxp
uid=1000(lichao) gid=1000(lichao) groups=1000(lichao)
[root@localhost ~]# smbpasswd -a zxp
New SMB password:
Retype new SMB password:
Added user zxp.
[root@localhost ~]#

4、创建共享文件夹并修改属主

[root@localhost ~]# mkdir -p /opt/shared/zxp
[root@localhost ~]# chown lichao /opt/shared/zxp

5、在/etc/samba/smb.conf配置文件下加入指定共享的用户和目录

[XXX] path=XXX (共享目录) Valid users = XXX (允许哪个用户能够访问)

read only =no 允许写

[root@localhost ~]# tee >> /etc/samba/smb.conf <<-'EOF'
[lichao]
        path = /opt/shared/zxp
        valid users = zxp
        read only = No
EOF

6、启动samba服务并配置开机自启

[root@localhost ~]# systemctl enable smb nmb --now

配置文件其它项参考:

[Global]:这是一个配置区域,用于定义全局的Samba选项。
workgroup = MYGROUP:定义了Samba服务器所属的工作组名称。
netbios name = MYSERVER:定义了此Samba服务器在网络上的名称。
server string = %h server (Samba %v) %S:描述服务器的字符串,其中%h是主机名,%v是Samba版本,%S是当前section的名称。
security = user:定义了安全模式。user模式要求每个用户在Samba服务器上都有一个账户。
map to guest = bad user:当一个用户没有在Samba服务器上的账户时,他们将被映射到“guest”用户。
usershare allow guests = yes:允许用户共享允许访客访问。
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192:设置套接字的选项。TCP_NODELAY禁用Nagle算法,从而提高数据传输的实时性。SO_RCVBUF和SO_SNDBUF设置接收和发送缓冲区的大小。

[homes]:定义用户的个人主目录共享。
comment = Home Directories:描述此部分的注释。
browseable = yes:目录对其他用户可见。
writable = yes:允许其他用户写入。

[printers] 和 [print$]:定义打印机共享。

[ftpdir]:定义一个FTP服务器共享。这通常不与Samba相关,但可能是为了集成其他FTP服务。

include = /etc/samba/smb.conf.d/:包含在指定目录中的所有.conf文件。这是一个常见的做法,用于组织大量的配置或分离配置到多个文件中。

[homes] 和 [printers] 的重复定义:这些可能是复制的,或者是为了演示目的而包括的。在实际配置中,应该避免重复定义相同的部分。

注释:对配置文件的总结或备注。

# The following are examples of different ways to use the include option: 这是一条注释,说明如何使用include选项来包含其他配置文件。

include = /etc/samba/smb.conf.d/customercerts.ldif: 包含一个特定的LDIF文件,通常用于定义LDAP目录中的用户和组。这可能是为了与LDAP集成或提供额外的认证方法。

include = /etc/samba/smb.conf.d/servercert.ldif: 类似地,这可能包含服务器的证书信息,用于SSL/TLS加密连接。

三、测试

win+r打开

![1705891517515](rocky8下的 smba服务搭建.assets/1705891517515.png)

输入密码:

![1705891540824](rocky8下的 smba服务搭建.assets/1705891540824.png)