我有 100 个用户。因此我需要为每个用户创建一个 samba 文件夹,以便使用单独的用户名和密码访问个人文件夹。
我将使用以下格式创建它们(在 smb.conf samba 版本 4.7.6-Ubuntu 中)
[finance]
comment = finance PC
path = /home/user/finance
writeable = yes
browseable = no
read only = no
create mask = 0774
directory mask = 0777
valid users = finance
admin users = finance2018
[secretary1]
comment = secretary1 PC
path = /home/user/secretary1
writeable = yes
browseable = no
read only = no
create mask = 0774
directory mask = 0777
valid users = secretary1
admin users = secretary11976
问题是我有 100 个用户(每台 PC)。然后我必须创建 100 个 Linux 用户、100 个 Samba 用户(使用 100 个密码)和 100 个单独的文件夹。
有没有什么方法可以使这个任务更容易一些?
答案1
- 理论上是无限制的。硬件就是你的极限。
- Samba 支持 [homes] 设置。请参阅手动的。
[homes] browsable = no writable = yes
[homes] 共享是 Samba 配置文件的一个特殊部分如果用户尝试连接到 smb.conf 文件中未出现的普通共享(例如在 Windows 资源管理器中使用 UNC 指定它),Samba 将搜索 [homes] 共享。如果存在,则传入的共享名称将被视为用户名,并在 Samba 服务器的密码数据库(/etc/passwd 或等效文件)文件中进行查询。如果出现,Samba 会假定客户端是尝试连接到其主目录的 Unix 用户。
对于许多用户来说,这可能是最容易管理的方法。
我们有一个users
组(GID 100),您可以使用它来对这些用户进行分组并将设置应用于该组。
但更明显的方法是使用活动目录(如果有的话)。设置几乎完全在 Windows 端而不是在服务器上。
请注意粗体部分。
答案2
一个简单的bash
脚本:(阅读man seq
)
#!/bin/bash
for i in $( seq 1 100 ) ; do printf "%s\n" "[user$i]
comment = user$i
path = /home/user/user$i
writeable = yes
browseable = no
read only = no
create mask = 0774
directory mask = 0777
valid users = user$i
admin users = user12018
"
done