Linux-centos8-samaba配置

  • 安装samba:yum install samba samba-client samba-swat
  • 检查是否安装成功:rpm -qa | grep samba
  • samba文件配置
    • 先将smb.conf备份,网上很多人都用rm,后面再建立个新文件
    • cp /etc/samba/smb.conf /etc/samba/smb2.conf
  • ls -laF /etc/samba/
  • 创建目录文件, 并进行权限和安全相关设置, 将这个目录创建到了 /home/ 目录下
    • mkdir -p /home/data            # 创建文件夹,-P的作用为:如果文件路径不存在则创建路径
    • chmod -R 0755 /home/data         # 改变文件权限为drwxr-xr-x,-R:改变指定目录及其下的所有子目录和文件的拥有者
    • chown -R nobody:nobody /home/data    # 修改文件夹权限
  • 对 samba 配置文件 smb.conf 进行配置
    • vim /etc/samba/smb.conf         # 打开配置文件
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = MySambaServer
security = user
map to guest = bad user
dns proxy = no

[data]
path = /home/data/
browsable =yes
writable = yes
guest ok = yes
read only = no

[global]
workgroup = WORKGROUP             # 设定 SambaServer 所要加入的工作组或者域,需要与 Windows 工作组一致

server string = Samba Server %v   # 设定 SambaServer 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号

netbios name = centos-8           # 设置 SambaServer 的 NetBIOS 名称。如果不填则默认会使用该服务器的DNS名称的第一部分。netbios name和workgroup名字不要设置成一样了

security = user                   # 设置用户访问 SambaServer 的验证方式,一共有四种验证方式
                                  # 1. share:用户访问 SambaServer 不需要提供用户名和口令, 安全性能较低。
                                  # 2. user:SambaServer 共享目录只能被授权的用户访问,由 SambaServer 负责检查账号和密码的正确性。账号和密码要在本 SambaServer
                     中建立。
                                  # 3. server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的
                      Windows用户和口令集中到一个NT系统上,使用Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用
                      用户级安全模式作为替代的方式。
                                  # 4. domain:域安全级别,使用主域控制器(PDC)来完成认证。


map to guest = bad user           # 将匿名用户映射为nobody用户,这个是Samba4.0之前版本的 security=share,4.0之后改成了 security 和 map to guest

dns proxy = no                    # 设置 SambaServer 是否开启dns代理服务

[Anonymous]              # 共享文件夹配置 windows 显示 “Anonymous” 文件名

path = /srv/samba/shared          # centos 服务器中,共享目录路径
                                  # path用来指定共享目录的路径。可以用%u、%m这样的宏来代替路径里的unix用户和客户机的Netbios名,用宏表示主要用于[homes]共享域。
                     例如:如果我们不打算用home段做为客户的共享,而是在/home/share/下为每个Linux用户以他的用户名建个目录,作为他的共享目录,
                     这样path就可以写成:path = /home/share/%u; 。用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定
                     要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问
                     samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,就可以这样写:path = /home/share/%m


browsable =yes                     # 允许该目录被显示在系统资源中

writable = yes                     # 用来指定该共享路径是否可写,是否是只读,如果有read only的配置,二者冲突会以 writable 为准

guest ok = yes                     # 意义同“public”,公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)

read only = no                     # 以只读方式共享,当与 writable 发生冲突时以 writable 为准
  • 检查配置文件的正确:要验证配置是否正确,请运行命令:testparm # 需要在samaba目录下,敲回车出2次确认
  • 防火墙的处理
    • firewall-cmd --add-service=samba --zone=public --permanent
    • firewall-cmd --reload
如果提示防火墙未开启可通过以下命令开启
开启 firewalld 防火墙
systemctl start firewalld.service    # 启用firewalld服务
systemctl enable firewalld.service   # 开机启用firewalld服务
验证防火墙开启状态
systemctl status firewalld.service  # 查看开启状态
  • 启动并启用Samba服务

  • systemctl start smb

  • systemctl enable smb

  • 确认smb服务是否正在运行

  • systemctl status smb

  • 在Windows PC上,按Windows键+ R启动“运行”对话框,然后键入\samba主机名服务器 或 \服务器的IP地址

  • Windows无法访问samba共享的文件夹,显示无权限:setenforce 0 , iptables -F

  • 进去后可以手动邮件打开文件夹的网络文件映射驱动器,设置成Z盘等

posted @ 2024-05-02 12:34  starc再起航  阅读(5)  评论(0编辑  收藏  举报