CentOS 7 部署 Samba 使用虚拟用户笔记

CentOS 7 部署 Samba 使用虚拟用户笔记

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置"NetBIOS over TCP/IP"使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

1. 安装必要软件包

bash 复制代码
yum update -y
yum install samba samba - client samba - winbind - clients - y

2. 配置 Samba 使用虚拟用户

说明:samba用户须是Linux用户,建议使用/sbin/nologin

2.1 创建映射文件

  • 创建/etc/samba/vuser.map文件:
bash 复制代码
touch /etc/samba/vuser.map
  • 编辑文件,添加虚拟用户到系统用户的映射,如:
plaintext 复制代码
samba_user1 = root
samba_user2 = root

2.2 配置Samba

主配置文件/etc/samba/smb.conf

  • 在配置文件开头添加全局设置:
plaintext 复制代码
[global]
    workgroup = WORKGROUP
    server string = Samba Server %v
    security = user
    passdb backend = tdbsam
    map to guest = bad user
    username map = /etc/samba/vuser.map
  • 在配置文件末尾添加共享目录配置:
plaintext 复制代码
[shared_folder]
    comment = Shared Folder for Virtual Users
    path = /data/shared
    browsable = yes
    writable = yes
    valid users = samba_user1, samba_user2

3. 创建共享目录并设置权限

bash 复制代码
mkdir -p /data/shared
chmod 777 /data/shared

4. 创建 Samba 虚拟用户并设置密码

bash 复制代码
smbpasswd -a samba_user1

5. 配置防火墙规则

bash 复制代码
firewall - cmd --permanent --add - service = samba
firewall - cmd --reload

6. 启动并设置 Samba 服务开机自启

bash 复制代码
systemctl start smb
systemctl enable smb