如果用户连接到 samba 服务器,则可以使用该include = /somepath/%u.smb.conf
部分global
中的 调用脚本。
不幸的是,这不适合我,因为总是给我/somepath/cb0.smb.conf
cb0
testparm
Can't find include file /somepath/.smb.conf
当我连接到服务器时,我可以输入用户名并通过,但它总是拒绝连接。
我正在使用 Samba 版本 3.2.5
如何根据正在连接的用户加载自定义用户脚本?
你做对了!但是,
testparm
只是没有用于测试的用户名。方法 1. 如果您无法让 samba 执行此操作,请安装Fail2Ban——一个日志文件监控和安全套件(可通过大多数 Linux 发行版软件管理系统获得的软件包)——然后配置 Fail2Ban 以查看登录的 samba 日志行,将要检测的行数设置为 1,并将操作设置为一个脚本,该脚本将执行您在登录时想要执行的任何操作。要完成所有这些,您需要编辑 /etc/fail2ban 下的文件,并熟悉正则表达式和需要查看的日志文件。
这不会像与 samba 集成的脚本那样干净。例如,它可能不会与用户登录的确切时刻同步。
方法 2. 同样,不像我们想要的那样干净。将您的 samba 配置为为每个连接输出一个日志文件。创建名为“未处理”和“已处理”的目录,并配置 samba 以将每个连接的日志文件转储到“未处理”目录。编写一个 cron 作业或一个循环脚本(可能在迭代之间休眠 1 或 2 秒)来循环遍历未处理目录中的文件并执行您需要完成的任何操作,然后将它们 mv 到已处理目录。
可能如果您更详细地准确描述您想要做什么,其他人可以帮助您。