1.建立虚拟用户口令库 vi /etc/vsftpd/logins.txt 在里面写用户名和口令,奇数行用户名,偶数行口令,例如: user01 666666 user02 666666 2.生成vsftpd的认证文件 首先安装认证软件 yum install db4 生成认证文件命令: db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db 3.更改文件权限 chmod 600 /etc/vsftpd/vsftpd_login.db vsftpd_login.db只对root用户可读写(安全起见) 4.建立虚拟用户所需的PAM配置文件 vi /etc/pam.d/vsftpd.vu 在里面写下面的内容 (新建) auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login 保存退出. vsftpd_login 是认证文件去掉.db 5.建立虚拟用户及所要访问的目录并设置相应权限 groupadd ftpd useradd -g ftpd -d /www -s /sbin/nologin -M ftpd 宿主目录home/ftpsite 账号:virtual chmod 700 /homegtpstie/ 宿主目录的权限设为700 vsftpd服务器中的所有虚拟用户账号登陆后都在 /www下 新建虚拟用户也不一定非得放在/www下,放在其他目录也行,只要文件宿主都是ftpd.ftpd就行. 6.设置vsftpd.conf配置文件 vi /etc/vsftpd/vsftpd.conf 最后面加上 guest_enable=YES 激活虚拟用户 guest_username=ftpd 虚拟用户在linux里的用户名 pam_service_name=vsftpd.vu 判断虚拟用户的数据文件 user_config_dir=/etc/vsftpd_user_conf 虚拟用户指定的配置文件所在地址 (vsftpd_user_conf是文件夹) virtual_use_local_privs=YES 设置为 YES 时,虚拟用户使用与本地用户相同权限,设置为 NO 时,虚拟用户使用与匿名用户相同权限 (必须开启) 7.为不同的虚拟用户设置不同的权限 1)为虚拟用户设置主配置文件 在vsftpd.conf配置文件中,添加user_config_dir项,并设置保存的目录 user_config_dir=/etc/vsftpd_user_conf 2)建立配置文件目录 (上面指定了目录,现在还没有建呢) mkdir /etc/vsftpd_user_conf 3)为每个不同的虚拟用户建立不同的配置文件 在/etc/vsftpd_user_conf目录中可以为每个虚拟用户建立单独的配置文件,配置文件名称和用户名相同。 local_root=/data/userspace 设置虚拟用户登录后的主目录 anon_world_readable_only=NO 具有浏览FTP目录和下载权限 anon_upload_enable=YES 具有上传文件权限 anon_mkdir_write_enable=YES 具有建立和删除目录的权利 anon_other_write_enable=YES 具有文件改名和删除文件的权利 最后重启vsftpd 设置文件和文件夹上传后的权限 vi /etc/vsftpd/vsftpd.conf local_umask=022 file_open_mode=0644 开启目录访问控制 chroot_list_enable=YES 锁定某些用户在自家目录中。即当这些用户登录后,不可以转到系统的其他目录,只能在自家目录(及其子目录)下。具体的用户在chroot_list_file参数所指定的文件中列出。默认值为NO。 chroot_list_file=/etc/vsftpd/chroot_list 指出被锁定在自家目录中的用户的列表文件。文件格式为一行一用户。通常该文件是/etc/vsftpd/chroot_list。此选项默认不设置。 要创建/etc/vsftpd/chroot_list这个文件,然后把要锁定在自家目录的用户名都写上去,一行一个用户名. 最后重启vsftpd
|
|
来自: python_diango > 《ftp》