RedHat 5.5 基于虚拟用户验证的vsftd服务器搭建配置记录
转载请注明,来自:http://blog.csdn.net/skyman_2001
一、建立虚拟用户口令库文件- view plaincopy to clipboardprint?# vi /etc/vsftpd/login.txt
- # vi /etc/vsftpd/login.txt
复制代码 加入用户名和密码(奇数行是用户名,偶数行是密码):
ftp_test
123456
wq保存退出
二、生成vsftpd的认证文件
view plaincopy to clipboardprint?# db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db
# db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db
若提示无db_load命令,则要先安装db4-utils:- view plaincopy to clipboardprint?# yum install db4-utils
- # yum install db4-utils
复制代码 三、设置认证文件只对root用户可读可写
- view plaincopy to clipboardprint?# chmod 600 /etc/vsftpd/login.db
- # chmod 600 /etc/vsftpd/login.db
复制代码 四、建立虚拟用户所需的PAM配置文件,手工建立vsftpd.vu文件- view plaincopy to clipboardprint?# vi /etc/pam.d/vsftpd.vu
- # vi /etc/pam.d/vsftpd.vu
复制代码 输入:- view plaincopy to clipboardprint?uth required pam_userdb.so db=/etc/vsftpd/login
- account required pam_userdb.so db=/etc/vsftpd/login
- uth required pam_userdb.so db=/etc/vsftpd/login
- account required pam_userdb.so db=/etc/vsftpd/login
复制代码 注意:这里pam_userdb.so前面不要加路径。
五、建立所有FTP虚拟用户帐号使用的系统用户帐号,并设置该帐号home目录的权限- view plaincopy to clipboardprint?# useradd –d /home/vsftp –s /sbin/nologin vftp
- # useradd –d /home/vsftp –s /sbin/nologin vftp
复制代码 六、配置vsftpd.conf文件- view plaincopy to clipboardprint?# vi /etc/vsftpd/vsftpd.conf
- # vi /etc/vsftpd/vsftpd.conf
复制代码 修改和添加的内容:- view plaincopy to clipboardprint?anonymous_enable=NO #禁止匿名用户登录
- anon_umask=002
- anon_world_readable_only=NO #可以下载
- anon_upload_enable=YES #可以上传
- anon_mkdir_write_enable=YES #可以创建目录
- anon_other_write_enable=YES #可以修改、删除
- guest_enable=YES #打开虚拟用户
- guest_username=vftp #FTP虚拟用户对应的系统用户<pre class="plain" name="code">pam_service_name=vsftpd.vu #PAM认证文件
- local_root=/var/www/html #登录后自动切换到的目录(如果不加这一行,那虚拟用户登录后进到/home/vsftp目录)
- anonymous_enable=NO #禁止匿名用户登录
- anon_umask=002
- anon_world_readable_only=NO #可以下载
- anon_upload_enable=YES #可以上传
- anon_mkdir_write_enable=YES #可以创建目录
- anon_other_write_enable=YES #可以修改、删除
- guest_enable=YES #打开虚拟用户
- guest_username=vftp #FTP虚拟用户对应的系统用户<pre class="plain" name="code">pam_service_name=vsftpd.vu #PAM认证文件
- local_root=/var/www/html #登录后自动切换到的目录(如果不加这一行,那虚拟用户登录后进到/home/vsftp目录)
复制代码 wq保存退出。
七、重启vsftpd服务
view plaincopy to clipboardprint?# service vsftpd restart
# service vsftpd restart
八、解决apache文件不能访问的问题(显示无权限访问文件)
将ftp用户(这里指vftp)添加到apache用户组,并设置用户组有写入权限:
view plaincopy to clipboardprint?# usermod -a -G apache vftp #添加vftp到用户组apache
# chown -R :apache /var/www/html #设置/var/www/html的所属组为apache
# chmod -R g+rw /var/www/html #设置/var/www/html权限为用户组有读写权限
# usermod -a -G apache vftp #添加vftp到用户组apache
# chown -R :apache /var/www/html #设置/var/www/html的所属组为apache
# chmod -R g+rw /var/www/html #设置/var/www/html权限为用户组有读写权限
注意:还需要确认vsftpd.conf中的anon_umask=002,这是使新上传的文件的用户组有写入权限。
|