Linux学习之――建立基于虚拟用户的vsftpd

建立基于虚拟用户的vsftpd

系统:

CentOS 5.6

软件包:

vsftpd-2.0.5-10.el5.i386.rpm

db4-untils-4.3.29-9.fc6.i386.rpm

FTP宿主目录:

downloadfile

1:首先安装软件包。

Rpm �Civh vsftpd-2.0.5-10.el5.i386.rpm

Rpm �Civh db4-utils-4.3.29-9.fc6.i386.rpm



注:

在安装db4-utils-4.3.29-9.fc6.i386.rpm和vsftpd-2.0.5-10.el5.i386.rpm 时需要增加两个参数

rpm -ivh db4-utils-4.3.29-9.fc6.i386.rpm --nodeps --force

rpm -ivh vsftpd-2.0.5-10.el5.i386.rpm --nodeps --force

加上那两个参数的意义就在于,安装时不再分析包之间的依赖关系而直接安装,



2:建立虚拟用户,并设置虚拟用户口令。

cd /etc/vsftpd/

vi user.list

upload 用户名

upload 口令

3:使用db4工具生成数据库文件

db_load �CT �Ct hash �Cf user.list user.db

chmod 600 /etc/vsftpd/user* 降低权限,保证安全

4:建立虚拟用户所需的pam配置文件(需手动建立)

vi /etc/pam.d/vsftpd.vu

输入:

#%PAM-1.0

auth required pam_userdb.so db=/etc/vsftpd/user

account required pam_userdb.so db=/etc/vsftpd/user

5:创建对应的系统账户。

useradd �Cs /sbin/nologin -d /downloadfile vsftp



6:修改vsftpd主配置文件

Vi /etc/vsftpd/vsftpd.conf

anonymous_enable = NO 不启用匿名

local_enable = yes 启用本地用户

pam_server_name = vsftpd.vu 指定认证文件

guest_enable=YES

guest_username=vsftp 指定对应的系统账号

user_config_dir = /etc/vsftpd/vsftpd_dir 设置用户的配置文件目录(一会需手动到该目录下创建)

chroot_local_user = yes 锁定用户登录上的宿主目录位置(安全)

7:创建用户配置文件

mkdir -p /etc/vsftpd/vsftpd_dir

cd /etc/vsftpd/vsftpd_dir

vi upload

写入用户配置文件参数:

anon_upload_enable=yes 上传权限

anon_mkdir_write_enable=yes 创建文件夹权限

download_enable=yes 下载权限
anon_other_write_enable=yes 所有权限

anon_umask=022 设置虚拟用户上传文件权限 000表示权限666,022表示权限644

前后相加等于666

注:anon_umask与rsync 同时使用时需要加入这个设置

8:启动服务:

service vsftpd start 启动服务

9:查看vsftpd服务

service vsftpd status 查看状态



可能会报无法列表的错误,需要手动输入以下指令

# setsebool ftpd_disable_trans 1

然后再次重启vsftpd服务



最后需要注意你需要上传文件夹的权限,设置为755



【日志格式修改】

/etc/vsftpd/vsftpd.conf修改

注释掉# xferlog_file=/Log/vsftpd_log/vsftpd.log

设置 xferlog_std_format=NO
最后加上

vsftpd_log_file=/Log/vsftpd_log/vsftpd.log



注意:

记得如果要更换日志的路径,必须在新的目录下面新建好一个vsftpd.log,可以是空的,vsftpd不会自动创建这个日志文件





容易出现的错误:

linux VSFTP提示500 OOPS: failed to open xferlog log

无法使用 setsebool ftpd_disable_trans 1 语句

报错:Could not change active booleans: Invalid boolean

这时需要开启:setsebool allow_ftpd_full_access 1
setsebool allow_ftpd_use_cifs 1
setsebool allow_ftpd_use_nfs 1
setsebool ftp_home_dir 1
setsebool httpd_enable_ftp_server 1
setsebool tftp_anon_write 1

重启vsftp:service vsftpd restart

再使用命令:getsebool -a|grep ftp 查看

你可能感兴趣的:(linux,安装,用户,软件包,的)