主要安全特性:
每个用户有独立的目录
browseable = no 使其他用户看不到此共享
valid users 限制只有指定用户可以访问
严格的文件权限(0600/0700)
强制加密和 SMB2
完全禁用匿名访问
用户访问方式:
Windows: \server-ip\username
需要输入对应用户的凭据
每个用户只能看到和访问自己的共享
这样配置可以确保:
用户之间完全隔离
高安全性
私密性
每个用户都有自己的专属空间
首先在 Ubuntu 上创建用户和目录:
#创建用户组
sudo groupadd smbusers
# 为每个用户创建系统账户和 Samba 账户
for USER in user1 user2 user3; do
# 创建系统用户
sudo useradd -M -s /sbin/nologin -G smbusers $USER
# 创建用户目录
sudo mkdir -p /samba/$USER
# 设置目录权限
sudo chown $USER:smbusers /samba/$USER
sudo chmod 0700 /samba/$USER
# 设置 Samba 密码
sudo smbpasswd -a $USER
done
配置 Samba:
sudo vim /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
security = user
encrypt passwords = yes
server signing = mandatory
server min protocol = SMB2
client min protocol = SMB2
smb encrypt = required
map to guest = never
# 用户1的私有共享
[user1]
path = /samba/user1
valid users = user1
guest ok = no
browseable = no
writable = yes
create mask = 0600
directory mask = 0700
# 用户2的私有共享
[user2]
path = /samba/user2
valid users = user2
guest ok = no
browseable = no
writable = yes
create mask = 0600
directory mask = 0700
# 用户3的私有共享
[user3]
path = /samba/user3
valid users = user3
guest ok = no
browseable = no
writable = yes
create mask = 0600
directory mask = 0700
设置 SELinux 上下文(如果启用了 SELinux):
sudo semanage fcontext -a -t samba_share_t "/samba(/.*)?"
sudo restorecon -R /samba
重启 Samba 服务:
sudo systemctl restart smbd.service
sudo systemctl restart nmbd.service