Vsftp安装及配置虚拟用户linux
采用yum安装sql
[root@VM_64_122_centos vsftpd]# yum installvsftpd
安装完成之后vsftpd的默认配置文件在/etc/vsftpd数据库
1,建立虚拟用户文本文件,添加虚拟用户和密码centos
[root@VM_64_122_centos vsftpd]# vivuser.txt
奇数行是用户名,偶数是密码。安全
好比:bash
admin 123!@# yunying yunying sheji sheji chanpin chanpin
2,生成虚拟数据库文件服务器
db_load默认没有安装,yum installdb4-utils db4-devel db4安装才能使用。网络
[root@VM_64_122_centos vsftpd]# yum installdb4-utils db4-devel db4
执行如下命令生成虚拟数据库文件ide
[root@VM_64_122_centos vsftpd]# db_load -T-t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
3,配置PAM文件,目的是对客户端进行验证。批注全部内容,后添加:ui
[root@VM_64_122_centos vsftpd]# vi/etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vuser account required pam_userdb.so db=/etc/vsftpd/vuser
注意:不能写成db=/etc/vsftpd/vuser.db
4,修改虚拟数据库文件vuser.db的权限为 700
[root@VM_64_122_centos vsftpd]# chmod 700vuser.db
5,增长一个系统用户vuser ,使用它来对应全部虚拟用户,虚拟用户使用系统用户来访问ftp服务器。
useradd vuser mkdir /var/ftp/vuser chown vuser.vuser /var/ftp/vuser
6,修改vsftpd.conf配置文件,使虚拟用户能够访问vsftpd服务器,增长如下参数
pam_service_name=vsftpd ####使用PAM验证 guest_enable=YES ####启用虚拟用户 ####激活虚拟帐户 guest_username=vuser ####把虚拟帐户绑定为系统帐户vuser user_config_dir=/etc/vsftpd/vsftpd_user_conf ####虚拟用户配置文件目录
1,创建vsftpd_user_conf配置文件目录
mkdir /etc/vsftpd/vsftpd_user_conf
2,设置虚拟用户配置文件,与虚拟帐户同名。
[root@VM_64_122_centos vsftpd]# vi/etc/vsftpd/vsftpd_user_conf/admin
3,编辑虚拟帐户admin的配置文件admin,设置相应的权限。添加如下内容
anon_world_readable_only=NO ###浏览FTP目录和下载 anon_upload_enable=YES ###容许上传 anon_mkdir_write_enable=YES ###容许创建和删除目录 anon_other_write_enable=YES ###容许更名和删除文件 local_root=/var/ftp/vuser ###指定虚拟用户在系统用户下面的路径,限制虚拟用户的家目录,虚拟用户登陆后的主目录。
4,从新启动ftp服务
[root@VM_64_122_centos vsftpd]# servicevsftpd restart
SELinux 全称 SecurityEnhanced Linux (安全强化 Linux),是 MAC (Mandatory Access Control,强制访问控制系统)的一个实现,目的在于明确的指明某个进程能够访问哪些资源(文件、网络端口等)。
SElinux就是指明进程能访问那些资源,若是其访问了非指明的资源,SElinux就会阻止他,并告诉这个程序,你没有权限,不能让你访问。
因此须要修改SELinux的权限访问设置,否则链接ftp会出现一些异常报错。好比:
500 OOPS: cannot change directory:/home/*******
553 could not create file
查看ftp相关选项
sestatus-b | grep ftpd
下面是经常使用的布尔变量:
allow_ftpd_anon_write:关闭这个布尔变量会阻止 vsftpd 读取 public_content_rw_t 类型的文件和目录。若是容许用户经过 FTP 上传文件。必须开放这个布尔变量。
allow_ftpd_full_access:当开放这个布尔变量时只有Linux(DAC)的权限来控制访问,经过验证的用户能够读取和写入标记为 public_content_t 或 public_content_rw_t 类型的文件。
allow_ftpd_use_cif:当开放这个布尔变量时vsftpd 容许 cifs_t 类型的文件和目录,所以这个布尔变量启用,可让你的 FTP 服务器可使用 Samba 文件系统。
allow_ftpd_use_nfsvsftpd:的当开放这个布尔变量时 vsftpd 容许 nfs_t 类型的文件和目录,所以这个布尔变量启用,可让你的 FTP 服务器可使用 NFS 文件系统。
ftp_home_dir:当开放这个布尔变量时认证用户能够读写本身的主目录中的文件。
ftpd_connect_db:当开放这个布尔变量时容许vsftpd 链接数据库。
httpd_enable_ftp_server:当开放这个布尔变量时允许的 httpd 做为 FTP 服务器,而且监听 FTP 端口。
tftp_anon_write:当开放这个布尔变量时容许TFTP 访问一个公共的目录
启用如下选项:
setsebool-P ftp_home_dir 1 setsebool-P allow_ftpd_full_access 1