我似乎很难理解 Ubuntu 上的 samba 配置。假设我在 /srv 中有 4 个文件夹,分别是 media、share、bob-personal 和 joe-personal。我还有 3 个用户:bob、joe 和 nas。用户 bob 和 joe 是标准用户(其中一个在 Ubuntu 中被禁用,因为我没有为其分配密码,对于这两个用户,他们在 AccountsService 中的文件都有一个条目“SystemAccount=true”,因此他们不会显示在登录屏幕上)。nas 是系统的管理员。我使用此用户设置 NAS(对于所有不必以 root 身份完成的操作),我目前以此用户身份登录。还有以下用户组:all-share(包括 bob、joe、nas)、media-share(包括 bob、nas)、joe(包括 joe、nas)和 bob(包括 bob、nas)。
最初,我设置了chown nas:media-share media
和chown nas:all-share share
。我还为所有这些文件夹设置了chown joe:joe joe-personal
和chown bob:bob bob-personal
和chmod 660 <foldername>
。然后按如下方式配置共享:
[media]
path = /srv/media
comment = Media Share
writeable = yes
valid users = @media-share
[share]
path = /srv/share
comment = Common Share
writeable = yes
valid users = @all-share
[joe-personal]
path = /srv/joe-personal
comment = Personal Folder Joe
writeable = yes
valid users = @joe
[bob-personal]
path = /srv/bob-personal
comment = Personal Folder Bob
writeable = yes
valid users = @bob
当然,我还将所有这些用户添加到了 Samba 用户数据库中。但是,我无法使用任何可能的用户帐户从任何机器访问这些文件夹(Windows 总是说“您无权访问...”)。
然后,我在每个共享声明中添加了一行force user = nas
,将每个文件夹的所有权更改为 nas:nas,并将用户权限更改为 700。现在一切都运行正常!
唯一的问题是,显然,在这些文件夹中创建的所有新文件都归 nas 所有,而不是实际创建它们的登录远程用户。这对我来说不是一个大问题,但查看谁创建了什么仍然非常方便(用于统计、指责等)。有人知道为什么无法使用旧配置访问任何内容吗?
这是我的全局配置的转储:
[global]
server string = %h Samba NAS
server role = standalone server
security = USER
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
username map = /etc/samba/smbusers
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d
idmap config * : backend = tdb
invalid users = root
系统信息:Ubuntu 16.04.02,最新,Samba 昨天安装
答案1
我想知道您为什么使用以下格式的规范:valid users = @media-share
。这是为了指定组访问权限:组中的所有用户media-share
都是有效用户。对于您的情况,我会使用:
valid users = joe
或者valid users = joe bob
如果要向两者授予访问权限。 write list
也可以使用。请参阅手动的更多细节。