centos7 samba配置

本文介绍在CentOS7中配置Samba服务的过程,包括安装Samba、调整防火墙设置、配置smb.conf文件实现文件共享及权限调整等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近来在调试centos7下samba,遇到了很多坑,这里简单说下centos7下 samba的配置

环境准备:

安装samba

[root@docker2 /]# yum -y install samba samba-client

设置或者关闭centos7防火墙,由于我自己安装了iptables,默认centos7只有firewalld这个fang防火墙

[root@docker2 /]# service firewalld status
Redirecting to /bin/systemctl status firewalld.service
● firewalld.service
   Loaded: masked (/dev/null; bad)
   Active: inactive (dead)

6月 29 16:41:45 docker2 systemd[1]: Cannot add dependency job for unit firewalld.service...ed.
Hint: Some lines were ellipsized, use -l to show in full.

可以看到firewalld已经关闭,如果查看状态是开启的,请自行添加规则或者干脆把防火墙关了

命令

[root@docker2 /]# systemctl disable firewalld.service
或者
[root@docker2 /]# service firewalld stop

至于systemctl和service有什么区别,大家可以参考我的一篇名为“关于Centos7 一些用法和区别”

上面说到了我的centos7安装了iptables,所以这里我把iptables也关闭了

[root@docker2 /]# service iptables stop 

进入samba配置

这里我想设置samba为共享模式(在centos6叫做share,但是centos7版本的samba4已经没有了share,改成了map to guest

[root@docker2 /]# more /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.

[global]
        workgroup = SAMBA
        security = user
        map to guest = bad user
        passdb backend = tdbsam
        hosts allow = 192.168.10.43
        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

[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

[datashare]
        comment = docker data share
        public = yes
        path = /data
        browseable = yes
        writable = yes
        guest ok = yes

可以看到我在[global]里面添加了map to guest,这个相当于以前samba版本的share模式,然后我限制了只有我本人192.168.10.43这个IP才能访问,注意hosts allow这个限制访问是在global模块配置才能生效的!

然后我在下面添加了自定义的datashare模块,想把这个模块的/data目录共享给自己访问,并且设置可以写模式。然后保存配置

service smb start启动samba服务,然后在windows服务器上面用 \\IP  试着访问目录,你会发觉目录是可以访问的,但是当我们想通过上传文件测试writable的功能时,发现报错“你需要权限操作”,为什么呢

因为仅仅在samba里面定义目录可写是不够的,linux默认会对目录文件进行用户和权限方面的限制,默认只有root用户可以进行写操作,所以这里需要对共享的/data目录的权限进行修改,并且把目录的归属改成匿名nobody

[root@docker2 /]# chmod -R 0777 data/
[root@docker2 /]# chown -R nobody:nobody data/

再试试,发现目录就可以写了

### CentOS 7配置 Samba 服务的指南 #### 1. 安装 Samba 及其依赖项 在 CentOS 7 中,可以通过 `yum` 包管理器安装 Samba 和相关组件。运行以下命令以完成安装: ```bash yum install samba samba-client samba-common -y ``` 此命令会自动下载并安装必要的软件包[^4]。 --- #### 2. 修改 Samba 配置文件 Samba 的核心配置文件位于 `/etc/samba/smb.conf`。以下是该文件的主要部分及其功能: - **全局设置 (Global Section)** 全局设置定义了整个 Samba 服务器的行为,例如工作模式、安全级别等。 ```ini [global] workgroup = WORKGROUP server string = Samba Server %v netbios name = centos security = user map to guest = bad user dns proxy = no ``` - **共享目录配置** 下面是一个典型的共享目录配置示例: ```ini [shared] path = /srv/share browsable = yes writable = yes valid users = zhangsan, lisi create mask = 0644 directory mask = 0755 ``` 在上述配置中: - `path`: 指定共享目录的位置。 - `browsable`: 是否允许网络中的其他设备看到此共享。 - `writable`: 是否允许写入数据。 - `valid users`: 允许哪些用户访问此共享。 - `create mask` 和 `directory mask`: 新建文件和目录的默认权限[^1][^2]。 保存更改后退出编辑器。 --- #### 3. 添加 Samba 用户并设置密码 为了确保安全性,需要为每个希望访问 Samba 共享的用户创建账户,并为其分配密码。执行以下命令: ```bash smbpasswd -a username ``` 替换 `username` 为你想要添加的实际用户名。按照提示输入两次密码即可完成设置[^4]。 --- #### 4. 启动与启用 Samba 服务 启动 Samba 服务并将其实现开机自启: ```bash systemctl start smb nmb systemctl enable smb nmb ``` 其中,`nmb` 负责 NetBIOS 名称解析;而 `smb` 是实际处理文件共享的服务[^3]。 --- #### 5. 防火墙配置 如果系统启用了防火墙,则需开放 Samba 所使用的端口(通常是 TCP 137–139 和 445)。运行以下命令更新防火墙规则: ```bash firewall-cmd --permanent --zone=public --add-service=samba firewall-cmd --reload ``` 这一步非常重要,因为未正确配置防火墙可能导致无法从外部访问 Samba 共享资源[^4]。 --- #### 6. 测试连接 最后,在 Windows 或其他支持 SMB 协议的操作系统上尝试访问新搭建的 Samba 服务器。假设服务器 IP 地址为 `192.168.1.100`,则可通过以下方式访问: ```plaintext \\192.168.1.100\shared ``` 当被要求输入凭证时,请使用已注册至 Samba 的用户名及对应密码登录。 --- ### 注意事项 - 如果遇到权限问题,可检查目标目录是否有适当读取/写入权限以及 ACL 权限设置是否合理[^5]。 - 建议定期备份 `smb.conf` 文件以防意外丢失重要配置信息。 --- 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值