将 samba 有效用户链接到文本文件

将 samba 有效用户链接到文本文件

在我的 samba 配置中 - 我希望它将下面示例共享中的“有效用户”链接到示例文本文件:

security = user

[example share]
path = /example/path/here
read only = no
guest ok = no
valid users = (LINK TO TEXT FILE)

有效用户.txt

user1, user2, user3

答案1

您无法按照您的要求进行操作,但我将在此处描述三种替代方案

  1. 包含一个语法上有效的smb.conf片段来定义您的用户。

     valid users = user1, user2, user3
    

    将此片段包含在您的共享定义中。例如,如果调用该代码片段,/usr/local/etc/smb.valid_users.conf您将像这样声明您的份额

     [example share]
     path = /example/path/here
     read only = no
     guest ok = no
     include = /usr/local/etc/smb.valid_users.conf
    

    当您更改用户列表时,您可能需要重新启动 samba ( systemctl restart smbd)。请注意,因为这是一个include,所以可以添加任何有效的代码 - 包括提供比您预期更多的访问权限的整个共享。不允许不受信任的用户访问更改配置文件!

  2. 将用户放入一个组并在共享定义中引用该组。

     valid users = @usersgroup
    

    然后,像平常一样创建组usersgroup(请参阅groupaddaddgroup取决于您的操作系统变体)并将您的用户添加到其中

  3. 模板化smb.conf并根据需要替换到其中。 (我最不喜欢的选项。)复制smb.confsmb.conf.template共享定义中并使用此行,

     valid users = %USERSLIST%
    

    然后使用类似的东西sed替换到模板中

     sed 's/%USERSLIST%/user1, user2, user3/g' /etc/samba/smb.conf.template >/etc/samba/smb.conf
    

相关内容