为什么之前的挂载方式有问题?
挂载时需指定一个用户凭据(如 username=ws
),所有访问共享的用户(包括非 root 用户)会继承该身份,导致:
- 所有用户以
ws
的身份操作文件,无法区分实际用户。 - 文件权限混乱,难以审计和隔离用户行为。
挂载能读写,因为挂载的用户(凭据)具有写权限,而不是client的root有权限
samba的共享在系统看来是全局的, 但实际上每个用户应该用自己的samba凭据
samba多用户设计
- 使用最小权限用户
min
进行初始挂载,使用multiuser参数 - 用户通过
cifscreds
提交凭据 - Samba 服务端启用
vfs_multiuser
模块,Samba可以记录实际用户信息 - 服务端文件系统权限仅允许 Samba 进程用户读写
multiuser参数
- 允许多用户动态切换身份非 root 用户可以通过自己的凭据访问共享,而非依赖挂载时的初始用户。
- 权限隔离每个用户的操作会基于其自身身份(如 Linux UID/GID)被映射到服务端,确保权限正确分离。
1 | # 服务器侧 |
客户端挂载选项 multiuser
在客户端中,如果使用了multiuser参数进行挂载
那么就可以使用cifscreds来加载凭据
1 | vim /etc/fstab |