Linux FTP(vsftpd)安装教程

VSFTPD安装:


准备条件:

VSFTPD默认配置中需要“nobody”用户
[root@localhost linkceo]# useradd nobody
useradd: user nobody exists


VSFTPD默认配置中需要“/usr/share/empty”目录
[root@localhost linkceo]# mkdir /usr/share/empty/
mkdir: cannot create directory '/usr/share/empty': File exists


VSFTPD提供匿名FTP服务时,需要“ftp”用户和一个有效的匿名目录
[root@localhost linkceo]# mkdir /var/ftp/
[root@localhost linkceo]# useradd -d /var/ftp ftp mkdir -p /var/ftp 创建多级目录
或者[root@localhost linkceo]# usermod -d /var/ftp ftp 修改用户的登陆默认目录

接下来的操作对于ftp用户是否已经存在都是有用的。
[root@localhost linkceo]# chown root.root /var/ftp
[root@localhost linkceo]# chmod og-w /var/ftp

安装FTP:

[root@localhost linkceo]# tar zxvf vsftpd-1.2.0.tar.gz
[root@localhost linkceo]# cd vsftpd-1.2.0
[root@localhost vsftpd-1.2.0]# make
[root@localhost vsftpd-1.2.0]# make install

make install没有复制简单的配置文件执行以下命令:
[root@localhost vsftpd-1.2.0]# cp vsftpd.conf /etc/vsftpd.conf

如果允许本地用户(Linux系统用户)登录VSFTPD执行以下命令:
[root@localhost vsftpd-1.2.0]# cp RedHat/vsftpd.pam /etc/pam.d/ftp


启动FTP如下:


1.設置独立启动模式
在/etc/xinetd.d/vsftpd文件中,把disable=no改成YES并在/etc/vsftpd.conf文件中添加listen=yes这样就改成了STANDALONE独立模式

如果启动FTP出现500 OOPS: could not bind listening IPv4 socket
[root@localhost root]# service xinetd stop 或者 /etc/rc.d/init.d/xinetd stop
[root@localhost linkceo]# killall -9 vsftpd
[root@localhost linkceo]# /usr/local/sbin/vsftpd &


2.xinetd启动模式
/etc/xinetd.d/下 添加vsftpd内容如下
# default: on
# description:
# The vsftpd FTP server serves FTP connections. It uses
# normal, unencrypted usernames and passwords for authentication.
# vsftpd is designed to be secure.
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/local/sbin/vsftpd
# server_args =
# log_on_success += DURATION USERID
# log_on_failure += USERID
nice = 10
disable = no
}
把disable改成no并在/etc/vsftpd.conf文件中去掉listen=yes


虚拟用户相关配置:

1.生成虚拟用户口令库文件,文件的格式如单数行为用户名,偶数行为口令:
[root@localhost root]#vi account.txt
dog
dog123
cat
cat456
bird
bird789
2.生成口令库文件,并修改其权限:
[root@localhost root]#db_load -T -t hash -f account.txt /etc/account.db
[root@localhost root]#chmod 600 /etc/account.db

若要改变用戶请刪除account.db,然后再db_load

用命令$rpm -q d

b4 檢查若已装,则下载
db4-java-4.3.29-9.fc6.i386.rpm
db4-tcl-4.3.29-9.fc6.i386.rpm
db4-utils-4.3.29-9.fc6.i386.rpm三个包

若db4未装则多下载
db4-4.3.29-9.fc6.i386.rpm
db4-devel-4.3.29-9.fc6.i386.rpm两个软件包 rpm -ivh *.rpm --nodeps --force rpm -qa|grep db4

3.新建一个虚拟用户的PAM文件,加上如下两行内容:
[root@localhost root]#vi /etc/pam.d/vsftp.vu
auth required /lib/security/pam_userdb.so db=/etc/account
account required /lib/security/pam_userdb.so db=/etc/account

4.建立虚拟用户,设置该用户所要访问的目录,并设置虚拟用户访问的权限:
[root@localhost root]#useradd -d /www/data userxuni
[root@localhost root]#chmod 777 /www/data 允许所有者读写操作
经过该步骤的设置,/www/data就是userxuni用户的主目录,该用户也是/data目录的拥有者

5.配置/etc/vsftpd.conf
anonymous_enable=NO #禁止匿名用户登陆
local_enable=YES #允许本地用户登陆
guest_enable=YES #开启虚拟用户
guest_username=userxuni #使用虚拟用户userxuni
pam_service_name=vsftp.vu #虚拟用户PAM文件
write_enable=NO #写权限
anon_mkdir_write_enable=NO #创建目录权限
anon_other_write_enable=NO #删除文件,重命名文件等权限
anon_upload_enable=NO #上传文件权限
chroot_local_user=YES #本地用户锁定在自家目录
listen=YES

6.到此为止已经可以用account.txt中的帐号密码登录ftp 默认目录是/www/data


高级设置:
7.设置每个用戶的权限
在/etc/vsftpd.conf添加代码user_config_dir=/etc/vsftpd_userconfig 用户配置文件目录

anonymous_enable=NO #禁止匿名用户登陆
local_enable=YES #允许本地用户登陆
guest_enable=YES #开启虚拟用户
guest_username=userxuni #使用虚拟用户userxuni
pam_service_name=vsftp.vu #虚拟用户PAM文
user_config_dir=/etc/vsftpd_userconfig
write_enable=NO #写权限
anon_mkdir_write_enable=NO #创建目录权限
anon_other_write_enable=NO #删除文件,重命名文件等权限
anon_upload_enable=NO #上传文件权限
chroot_local_user=YES #本地用户锁定在自家目录
listen=YES

[root@localhost root]#mkdir /etc/vsftpd_userconfig 创建用户目录
[root@localhost root]#cd /etc/vsftpd_userconfig/
[root@localhost root]#vi dog

内容如下:
anonymous_enable=NO
local_enable=YES
local_root=/www/dog
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=userxuni
listen=YES
anon_world_readable_only=NO


[root@localhost root]#vi cat

内容如下:
anonymous_enable=NO
local_enable=YES
local_root=/www/cat
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
chroot_local_user=YES
guest_enable=YES
guest_username=userxuni
listen=YES
write_enable=YES
anon_upload_enable=YES
anon_world_readable_only=NO


[root@localhost root]#mkdir /www/

dog
[root@localhost root]#chown https://www.360docs.net/doc/b716172197.html,erxuni /www/dog
[root@localhost root]#mkdir /www/cat
[root@localhost root]#chown https://www.360docs.net/doc/b716172197.html,erxuni /www/cat


#dog用户具有浏览文件权限 拥有权限根据/etc/vsftpd_userconfig/dog配置 ftp目录为/www/dog
#cat用户具有上传 新建目录 删除文件 重命名文件权限 拥有权限根据/etc/vsftpd_userconfig/cat配置 ftp目录为/www/cat
#bird用户 拥有权限根据/etc/vsftpd.conf配置 ftp目录为/www/uploads/

相关文档
最新文档