我正在尝试在运行 Debian 安装和 proftpd 的服务器上设置一个 FTP 帐户。我需要一些基本命令,以便查看、编辑和创建 ftp 用户。我还不清楚是否需要将这些用户专门添加到 proftpd,或者只要将它们放在服务器上就足够了。
最终,我希望有一个 FTP 用户,我可以使用 beanstalkapp(一个 svn 部署工具)连接到该用户,以便它可以将内容部署到我的 /var/www/ 目录。
任何帮助都将不胜感激,即使它只是我应该用来查看和更新用户的一些 shell 命令的链接。
答案1
ProFTPd 确实支持仅 FTP 用户的概念。为了实现此功能,您需要首先对 proftpd.conf 文件进行以下更改:
AuthOrder mod_auth_unix.c mod_auth_file.c #add mod_auth_file.c
AuthUserFile /etc/proftpd/ftpasswd #Add this entire line
确保文件 /etc/proftpd/ftpasswd 存在,并且可以被运行 proftpd 守护进程的用户可以读取。
此外,您还需要添加以下几行:
RequireValidShell off
UseFtpUsers off
重新启动 ProFTPd 守护程序。您的 FTP 服务现在将允许来自仅 FTP 帐户的连接。您可以使用以下语法创建仅 FTP 帐户:
ftpasswd --passwd --file=/etc/proftpd/ftpasswd --name=ftpuser --uid=5001 --gid=5001 --home=/var/www/beanstalkapp --shell=/bin/false
请密切注意选项“--uid”和“--gid”。如果您在此处提供的数值与任何现有用户/组都不对应,则 FTP 用户将具有与运行 proftpd 守护程序的用户相同的文件权限(通常对大多数目录具有只读访问权限)。如果您想允许 FTP 用户能够实际覆盖文件,请将 uid 设置为与拥有该目录的实际系统用户的 UID 匹配(我从另一个 SF 问题中发现了一些问题)。
为了增加安全性,您还可以在 proftpd.conf 文件中添加以下行:
<Directory "/var/www/beanstalkapp">
DirFakeUser on ~
DirFakeGroup on ~
</Directory>
这将欺骗 FTP 客户端,使其显示的文件好像属于 FTP 用户根目录中的 FTP 用户/FTP 组所有。
答案2
为什么不使用 SSH/SFTP?它比 FTP 安全得多,并且只需要最少的配置。
答案3
据我所知,proFTPd 默认使用系统帐户。您只需使用 useradd 创建系统帐户即可……
不过,我习惯使用纯 ftpd,其中有命令可以创建映射到同一系统帐户的“虚拟”用户,这是我喜欢的理念。