在企业或家庭局域网中,我们经常需要将 Linux 服务器中的文件夹共享给 Windows 或其他 Linux 设备访问。本文将介绍如何在 CentOS Stream 9 上使用 Samba 搭建共享文件夹,并通过账号密码控制访问权限。
📦 一、Samba 是什么?
Samba 是一个开源软件,实现了 SMB/CIFS 协议,让 Linux 可以像 Windows 一样提供共享服务。Windows 和 Linux 客户端都可以访问。
🛠️ 二、安装 Samba 服务
打开终端,执行以下命令安装:
sudo dnf install samba samba-client samba-common -y
📁 三、创建共享文件夹
创建一个你要共享的目录,例如 /home/share
:
sudo mkdir -p /home/share
sudo chmod 770 /home/share
此目录权限限制为特定用户访问。
👤 四、添加 Samba 用户
为 Samba 专门添加一个账号,本文以 sambaguest
为例:
# 创建系统用户(不允许登录系统)
sudo useradd -M -s /sbin/nologin sambaguest
# 设置 Samba 访问密码
sudo smbpasswd -a sambaguest
系统会提示你输入两次密码。
⚙️ 五、配置 Samba 共享设置
编辑 Samba 配置文件:
sudo nano /etc/samba/smb.conf
在文件末尾添加如下内容:
[Share]
path = /home/share
browseable = yes
writable = yes
valid users = sambaguest
guest ok = no
read only = no
create mask = 0755
force create mode = 0755
directory mask = 0755
force directory mode = 0755
各配置项解释:
参数 | 作用 |
---|---|
create mask = 0664 | 设置新文件默认权限为 rw-rw-r– |
force create mode = 0664 | 强制将指定权限位打开 |
directory mask = 0775 | 新目录权限为 rwxrwxr-x |
force directory mode = 0775 | 强制目录权限位 |
保存并退出。
🔓 六、设置文件夹权限
让刚才创建的用户拥有文件夹权限:
sudo chown sambaguest:sambaguest /home/share
🚀 七、启动 Samba 并设置开机启动
sudo systemctl enable --now smb
sudo systemctl enable --now nmb
🔥 八、防火墙放行 Samba 服务
sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --reload
🧪 九、测试访问共享
✅ Windows 系统:
参考下面的教程
✅ Linux 系统(挂载共享):
安装 CIFS 工具:
sudo dnf install cifs-utils -y
挂载共享目录:
sudo mount -t cifs //192.168.1.100/Share /mnt/share -o username=sambaguest,password=你的密码,vers=3.0
如果你想开机自动挂载,可以在 /etc/fstab
添加如下内容:
# Samba 自动挂载
//192.168.1.100/Share /mnt/share cifs username=sambaguest,password=你的密码,vers=3.0 0 0
🔍 十、管理 Samba 用户
操作 | 命令 |
---|---|
查看 Samba 用户列表 | sudo pdbedit -L |
修改 Samba 用户密码 | sudo smbpasswd 用户名 |
删除 Samba 用户 | sudo smbpasswd -x 用户名 |
✅ 总结
功能 | 说明 |
---|---|
文件夹路径 | /home/share |
Samba 用户 | sambaguest |
访问方式 | \\服务器IP\Share |
兼容平台 | Windows / Linux |
权限控制 | 账号密码验证 |
到此为止。
发布者:彬彬笔记,转载请注明出处:https://www.binbinbiji.com/jianzhanjiaoliu/3721.html