我正在尝试在 Ubuntu 12.04 上设置 pure-ftpd 并使其与 pure-authd 一起工作。我已经创建了一个用户和组,并让 authd 守护进程运行。我还准备了一个脚本,可以很好地为守护进程执行自定义身份验证。但是,我不知道如何让 pure-ftpd 使用 authd 身份验证方法。我看到配置选项在 /etc/pure-ftpd/conf 中设置为单独的文件,其值是设置的值。我进行了广泛的搜索,但没有找到如何让 pure-ftpd 使用 authd 而不是其他身份验证选项之一。有人能告诉我使用什么标志或设置才能使其工作吗?
更新
以下是我迄今为止所做的工作,以使事情比以前取得更大进步
- 创建 ftp 用户和 ftp 组
sudo useradd -s /bin/bash -M -G ftpupload ftpupload
- 确保以下文件位于 /etc/pure-ftpd/conf 中
- 创建主目录- 内容:“是”
- 外部认证- 内容:[身份验证脚本的路径]
- 确保 ftp 用户组可以读取/写入 /var/run/pure-ftpd,以使其能够创建套接字和 pid 文件
- 创建从 /etc/pure-ftpd/conf/ExtAuth 到 /etc/pure-ftpd/auth/ExtAuth 的符号链接
sudo ln -s /etc/pure-ftpd/conf/ExtAuth /etc/pure-ftpd/auth/ExtAuth
- 删除了 /etc/pure-ftpd/auth 中的其他符号链接
- pure-authd 调用示例:
sudo pure-authd -p /var/run/pure-ftpd/pure-authd.pid -u 1012 -g 1013 -s /var/run/pure- ftpd/pure-ftpd.sock -r /usr/bin/auth_script.sh
- 示例 /etc/init.d/pure-ftpd 重启调用
sudo /etc/init.d/pure-ftpd 重启
重新启动 ftp 服务器:运行:/usr/sbin/pure-ftpd -l extauth:/var/run/pure-ftpd/pure-ftpd.sock -j -d -p 30000:35000 -E -u 1000 -O clf:/var/log/pure-ftpd/transfer.log -8 UTF-8 -B
答案1
我相信您的 conf 目录中的 ExtAuth 文件应该指向套接字,而不是身份验证脚本(因为 pure-ftpd 不直接运行身份验证脚本,pure-authd 会执行此操作,并且它们通过套接字进行通信)
http://download.pureftpd.org/pub/pure-ftpd/doc/README.Authentication-Modules