尝试使用本手册。也许会为您工作。
怎么做
安装vsftpd和PAM库
编辑/etc/vsftpd.conf
并/etc/pam.d/vsftpd
使用自定义目录创建用户帐户(例如,在/ var / www /中)
设置目录用正确的chmod
和chown
创建对服务器具有完全访问权限的管理员用户
- 安装
vsftpd
(非常安全的FTP Deamon)并libpam-pwdfile
创建虚拟用户
我想创建FTP用户,但是我不想添加本地unix用户(没有外壳程序访问,没有主目录,等等)。PAM(可插入身份验证模块)将帮助您创建虚拟用户。
sudo apt-get install vsftpd libpam-pwdfile
- 编辑
vsftpd.conf
首先,您需要备份原始文件
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak
然后创建一个新的
sudo vim /etc/vsftpd.conf
复制并粘贴以下行。该文件应仅包含以下几行:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
- 注册虚拟用户
要注册您使用的用户htpasswd
,因此我假设您apache2
正在服务器上工作。创建一个vsftpd
文件夹,然后将配置文件放入其中。
sudo mkdir /etc/vsftpd
然后
sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user1
-c表示如果尚不存在,我们将创建该文件-d强制MD5,您需要在ubuntu 12.04上使用它,始终使用它
该命令将提示您输入密码。
如果您之后要添加新用户:
sudo htpasswd -d /etc/vsftpd/ftpd.passwd user2
- 在中配置PAM
/etc/pam.d/vsftpd
同样,您需要备份原始文件
sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
并创建一个新的
sudo vim /etc/pam.d/vsftpd
复制并粘贴这两行(这应该是唯一的内容)。我坚持只使用这两行,我浪费了很多时间保存原件,只是添加了这些。
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
- 创建没有外壳访问权限的本地用户
sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
您可以使用id命令:id vsftpd来检查它是否已创建。由于使用check_shell参数,我们使用/ bin / false shell定义了用户(即使您不使用它)。最终用户连接到FTP服务器时,将使用它们的权限和所有权:
chmod
和chown
。
- 重新开始
vsftpd
常见的方法是像所有守护进程一样使用init.d
sudo /etc/init.d/vsftpd restart
sudo service vsftpd restart
- 创建目录
根据配置,所有用户都将放置在此文件夹中:/ var / www / user1。
您需要使用特殊权限创建它们:根文件夹不可写!
/ [root = /var/www/user1] => 555
www [ /var/www/user1/www ] => 755
docs [ /var/www/user1/docs ] => 755
注意:用户无法在根目录中创建文件或文件夹。
在vsftpd.conf
我们chroot_local_user=YES
这样的用户不能看到他的文件夹的东西之外。对他来说,服务器看起来像这样:
因此,只需运行以下命令:
mkdir /var/www/user1`
chmod -w /var/www/user1
mkdir www/user1/www
chmod -R 755 /var/www/user1/www
chown -R vsftpd:nogroup /var/www/user1
该/var/www/user1
文件夹已存在或连接失败。
现在,您可以尝试连接FTP
- 创建一个管理员用户以访问整个服务器
要创建管理员用户,我们需要向注册一个新用户htpasswd
。
在执行此操作之前,我建议您检入/etc/ftpusers
定义了不允许与ftp连接的某些用户的文件。我认为这仅适用于本地用户,不适用于虚拟用户,以防万一不要选择此文件中包含的名称。
sudo htpasswd -d /etc/vsftpd/ftpd.passwd theadmin
现在我们需要在其中添加新行 /etc/vsftpd.conf
chroot_list_enable=YES
这意味着,除了/ etc /中的用户以外,您的用户将被放置在其文件夹中(作为监狱)。
vsftpd.chroot_list
让我们创建此文件并添加我们的用户,该文件是包含“ theadmin”的简单行。每行添加一个用户。这意味着您无需创建/var/www/theadmin
文件夹,用户将登录并开始于/home/vsftpd
。
重新启动服务器,您就完成了!