CentOS7使用samba共享文件

安装samba

yum -y install samba

设置

# 备份
cp /etc/samba/smb.conf /etc/samba/smb.conf_bak
# 编辑
vim /etc/samba/smb.conf
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
[share]
comment = Share Directories
path=/home/share
public = yes
browseable = yes
writable = yes
create mask = 0777
directory mask = 0777

授权用户

  • 注意此用户必须存在 cat /etc/passwd

  • 设置的密码是smaba的密码与服务器登录密码是不同的

  • 如服务器有用户 www, 此用户是禁止登录的,我们用该账户共享

    pdbedit -a -u www
    

修改防火墙

  • 添加规则
    firewall-cmd --zone=public --permanent --add-service=samba
    
  • 立即生效防火墙规则
    firewall-cmd --reload
    

服务管理

# 启动
systemctl start smb 
# 重启
systemctl restart smb
# 停止
systemctl stop smb
# 开机自启动
systemctl enable smb

关于smb.conf中global的security说明

总共有4种可用参数。

share:代表主机无须验证密码。这相当于vsftpd服务的匿名公开访问模式,比较方便,但安全性很差。

user:代表登录Samba服务时需要使用账号密码进行验证,通过后才能获取到文件。这是默认的验证方式,最为常用。

domain:代表通过域控制器进行身份验证,用来限制用户的来源域。

server:代表使用独立主机验证来访用户提供的密码。这相当于集中管理账号,并不常用。

pdbedit 命令说明与使用

在最早期的RHEL/CentOS系统中,Samba服务使用的是PAM(可插拔认证模块)来调用本地账号和密码信息,后来在5、6版本中替换成了用smbpasswd命令来设置独立的Samba服务账号和密码。到了RHEL 7/8版本,则又进行了一次改革,将传统的验证方式换成使用tdbsam数据库进行验证。这是一个专门用于保存Samba服务账号密码的数据库,用户需要用pdbedit命令进行独立的添加操作 。

用于pdbedit命令的参数以及作用

参数 作用
-a 用户名 建立Samba用户
-x 用户名 删除Samba用户
-L 列出用户列表
-Lv 列出用户详细信息的列表

其他参考链接

[使用Samba或NFS实现文件共享 | 《Linux就该这么学》 (linuxprobe.com)](https://www.linuxprobe.com/basic-learning-12.html)