5 Ubuntu上安装ftp服务器 5.1 安装vsftpd $ sudo apt-get install vsftpd 5.2 配置vsftpd
修改vsftpd的
配置文件 $ sudo gedit /etc/vsftpd.conf
添加或打开的
功能: listen=YES # 服务器监听 anonymous_enable=YES # 匿名访问允许 local_enable=YES # 本地主机访问允许 write_enable=YES # 写允许 anon_upload_enable=YES # 匿名
上传允许,默认是NO anon_mkdir_write_enable=YES # 匿名创建
文件夹允许 dirmessage_enable=YES # 进入
文件夹允许 xferlog_enable=YES # ftp 日志记录允许 connect_from_port_20=YES # 允许使用20号端口作为数据传送的端口 secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem 5.3 设置ftp相关目录 安装完毕后,/srv下会
增加一个ftp目录,同时系统会
增加一个名为ftp的
用户组。 查看命令: $ sudo cat /etc/shadow | grep ftp ftp:*:16371:0:99999:7::: 创建目录: $ sudo mkdir /srv/ftp/download/srv/ftp/upload $ sudo chmod 755 /srv/ftp/download $sudo chmod 777 /home/ftp/upload $ ls /srv/ftp/ -lh drwxr-xr-x 2 root root 4.0K 7月 1 2016 download drwxrwxrwx 2 root root 4.0K 6月 23 2016 upload 可对应
属性查看读写权限。 5.4 启动vsftpd $sudo service vsftpd start 查看启动情况: $ ps -e | grepvsftpd 1080 ? 00:00:00 vsftpd 说明服务器端vsftp的最基本配置已完成,vsftpd已开启。 5.5
添加虚拟
用户及目录指定 虚拟
用户的配置: $ gedit ftptests.list test1 test1pwd test2 test2pwd
生成vsftpd的认证
文件: $ sudo db_load -T -t hash -f ftptests.list /etc/vsftpd/vsftpd_login.db $ sudo chmod 600 /etc/vsftpd/vsftpd_login.db 建立虚拟
用户的PAM
配置文件: $ sudo gedit /etc/pam.d/vsftpd (加入下面的
内容,其他全部注释) auth
required pam_testdb.so db=/etc/vsftpd/vsftpd_login account
required pam_testdb.so db=/etc/vsftpd/vsftpd_login 建立虚拟
用户访问的目录并设置权限 $ sudo useradd -d /home/ftp -s /sbin/nologin virtual $ sudo chmod 777 /home/ftp/ 在vsftpd.conf中
添加如下参数配置项: guest_enable=YES guest_testname=virtual 对不同
用户设置不同权限 $ sudo mkdir /etc/vsftpd/vsftpd_user_conf $ sudo gedit /etc/vsftpd/vsftpd_user_conf/test1 (建立单独的
配置文件,
文件名就是
用户名) local_root=/home/ftp/test1 #这里虚拟
用户目录根据实际情况
修改 write_enable=YES virtual_use_local_privs=YES #虚拟
用户具有写权限 在vsftpd.conf中
添加如下参数配置: user_config_dir=/etc/vsftpd/vsftpd_user_conf 禁锢FTP
用户在宿主目录 将需要禁锢的
用户命写入"vsftpd.chroot_list"
文件 $ sudo gedit /etc/vsftpd.chroot_list test1 test2 在vsftpd.conf
添加如下参数配置: chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list
用户的根目录不能有写权限。可以通过在下面建子目录的方式来实现
上传。 cmds_allowed=ABOR,CWD,DELE,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,\ RMD,RNFR,RNTO,SIZE,STOR,TYPE,TEST,ACCT,APPE,CDUP,HELP,MODE,\ NOOP,REIN,STAT,STOU,STRU,SYST cmds_denied=ABOR,\ NOOP,SYST 不允许覆盖的
方法: 在vsftpd.conf中
增加 file_open_mode=0444 重新启动vsftpd: $ sudo service vsftpd restart