![设置 vsftpd 服务器以便我可以访问 Web 根目录](https://linux22.com/image/520847/%E8%AE%BE%E7%BD%AE%20vsftpd%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BB%A5%E4%BE%BF%E6%88%91%E5%8F%AF%E4%BB%A5%E8%AE%BF%E9%97%AE%20Web%20%E6%A0%B9%E7%9B%AE%E5%BD%95.png)
可能我对今天发布的帖子数量感到厌烦了,哈哈。
我正在尝试寻找一个教程,它将向我展示如何在 centos 5.5 上正确安装和设置 vsftpd...这可能是最简单的任务之一,但是我仍然是一个新手,只是想在我们的本地网络上设置一个服务器,它将充当内联网。
我已经安装并运行了所有其他东西...匿名 ftp 可以运行,而且我可以进入 /var/www/html/ 目录,但是我似乎无法让用户帐户运行。
*** CuteFTP 8.3 - build Aug 25 2008 ***
STATUS:> [06/08/2010 15:04:49] Getting listing ""...
STATUS:> [06/08/2010 15:04:49] Connecting to FTP server... 192.168.1.136:21 (ip = 192.168.1.136)...
STATUS:> [06/08/2010 15:04:49] Socket connected. Waiting for welcome message...
[06/08/2010 15:04:49] 220 (vsFTPd 2.0.5)
STATUS:> [06/08/2010 15:04:49] Connected. Authenticating...
COMMAND:> [06/08/2010 15:04:49] USER j0nR
[06/08/2010 15:04:49] 331 Please specify the password.
COMMAND:> [06/08/2010 15:04:49] PASS *****
[06/08/2010 15:04:52] 530 Login incorrect.
ERROR:> [06/08/2010 15:04:52] Not logged in.
STATUS:> [06/08/2010 15:04:54] Connection closed.
我都快要把头撞到桌子上了!
我不确定我是否已经正确设置了 ftp 用户,如果您需要任何进一步的信息请告诉我,但您必须像对待新手一样与我交谈。
提前致谢,祝星期五快乐:)
编辑
listen=YES
anonymous_enable=NO
#anon_root=/var/www/html/
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
local_enable=YES
virtual_use_local_privs=YES
write_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/html/$USER
chroot_local_user=YES
hide_ids=YES
tcp_wrappers=YES
userlist_enable=YES
userlist_deny=NO
这是我的 vsftpd.conf 文件。
答案1
粘贴您的 vsftpd 配置可能会更有用,但请检查以下内容:
允许用户名登录 FTP。如果用户名在 /etc/vsftpd/user_list 中,则需要确保 /etc/vsftpd/vsftpd.conf 中的 userlist_enable=YES 和 userlist_deny=NO。如果用户名不存在,则需要确保如果 userlist_enable=YES,则 userlist_deny=NO 或不存在。
检查 passwd 文件中的 shell 和主目录。输入 vipw 并检查 shell 是否不是 /bin/false(如果是,则将其更改为 /sbin/nologin)- 我不确定为什么会出现这个问题,但我以前见过它导致问题。接下来,将主目录设置为您希望用户登录的任何位置。这不是必需的,但更安全。
确保用户可以访问该目录。执行此操作
su j0nR -
,然后尝试进入其主目录。如果成功,则可能是密码问题。输入passwd j0nR
并设置为您认为应该的值。
祝你好运。
答案2
检查/etc/shells
以确保您的用户帐户设置的 shell 包含在其中。如果没有,则帐户无法使用 ftp,就是这样。通常我会/bin/false
为允许 ftp 的非交互式 shell 用户以及/sbin/nologin
我不想让其拥有 shell 或 ftp 访问权限的用户指定。
如果您有userlist_enable=yes
,那么您需要一个userlist_file=/etc/ftpusers
(或其他文件)。添加您想要允许访问该文件的用户(除非您userlist_deny=yes
也有,在这种情况下,如果用户不在该文件中,则会允许访问)。
答案3
编辑
/etc/vsftpd/vsftpd.conf
并检查 chroot_local_user=YES 是否存在。如果不存在,请添加它。它确保我们要创建的用户只能访问分配给他的目录。并且 local_enable=YES
添加用户
useradd -d /path/to/your/directory jonraw
这将添加一个名为 jonraw 的用户。然后设置密码
passwd jonraw
还有很多事情需要处理,例如更改目录的权限、禁用用户的 ssh 登录等。您可以在以下 URL 中阅读有关 vsftpd 的更多选项。 http://vsftpd.beasts.org/vsftpd_conf.html