我被要求根据vsftpd
包配置一个 FTP 服务器。服务器在我有超级用户权限访问的远程机器上运行。
由于不熟悉 FTP 服务器的机制,我试图弄清楚用户 ftp 帐户是如何配置的。之前的维护者使用了一个 shell 脚本,它在我们维护的一个列表上工作,以跟踪用户帐户和密码,来配置 ftp 帐户。通过阅读脚本,我看到他生成了一个用户名和密码列表,并且实际上在 Linux 机器上创建了一个用户帐户。这意味着对于我们在列表中配置的每个用户,adduser
命令都会添加一个新用户帐户:
adduser --home /home/ftp --no-create-home $user
Run Code Online (Sandbox Code Playgroud)
(但没有私人/home/username
目录 - 使用/home/ftp
instaed)。
这些用户中的每一个都可以使用该ssh
命令登录他的帐户。这个事实对我来说似乎有点奇怪,因为我认为 ftp 帐户应该与 Ubuntu 用户帐户分离。
另一个副作用是,当用户使用 Web 浏览器连接时,他会连接到/home/ftp
目录。但是,他可以使用“ Up to a higher level directory
”链接上去并有效地访问我们所有的系统。
所以,问题是:
这真的是 FTP 服务器在配置 ftp 帐户方面应该如何工作吗?
如果没有,我该如何配置vsftpd
服务器,让我在那台机器上只有超级用户 Ubuntu 帐户,并且所有 ftp 帐户都是...只是 FTP 用户帐户?此外,应根据允许访问的方式和内容来配置这些 ftp 帐户。
肯定是前任管理员做得不好。
因此,首先,如果您在 vsftpd.conf 中添加以下行,您将在用户的主目录中 chroot 用户。
chroot_list_enable=YES
chroot_local_user=YES
# a list of users which are NOT to be placed in a chroot() jail
chroot_list_file=/etc/vsftpd/chroot_list
Run Code Online (Sandbox Code Playgroud)
为了管理用户,您可以创建虚拟用户(请看这里),但如果您认为该解决方案太复杂,只需使用pam_listfile.so模块来拒绝 ftp 用户的 ssh 访问或使用pam_shells.so。哪个对你来说更容易。只是要小心,不要阻止 ssh 服务器访问有效用户:)
归档时间: |
|
查看次数: |
2418 次 |
最近记录: |