Linxu 下vsftp设置虚拟用户、用户权限、等注意问题

By | 2013 年 8 月 1 日

网上教程很多,配置完成之后却发现无法登陆。

第一、问题出在Pam认证环节,所以

配置好虚拟用户发现用ftp客户端登录报530 Login incorrec错误,网上查了一会,问题定位为pam认证配置得不正确,将pam_userdb.so指定路径改为相对路径问题得以解决。

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/ftpusr
account required /lib/security/pam_userdb.so db=/etc/vsftpd/ftpusr

改为:

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

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

第二、另外FTP 用户上传于web用户权限不统一,怎么办? 记得web用户也是一个不能ssh登录的用户吧,那么好

把ftp的专属用户改为web用户吧

即:

vi /etc/vsftpd/vsftpd.conf

#启用虚拟用户

#guest_username=ftp_virt  ---改为web用户www

guest_username=www

重启vsftp服务

第三、能上传不能下载,结果发现用户权限配置文件YES和NO区分大小写。汗颜!

#download_enable=Yes  错了哦

download_enable=YES

第四、附加网上的配置方式

VSFTP

虚拟用户创建方法

yum -y install vsftpd*

yum -y install pam*

yum -y install db4*

一、建立一个存放用户名和密码的文件vi mima.txt (记住路径,后面要用的着)

在文件里输入

用户名一

密码一

用户名二

密码二

用户名三

密码三

保存

二、生成虚拟用户帐户数据库

db_load -T -t hash -f /etc/vsftpd/mima.txt /etc/vsftpd/vsftpd_login.db

生成能被pam.d认识的数据库vsftpd_login.db

mima.txt

是前面建立的那个文件,

vsftpd_login.db可自己命名然后记好。如果以后要更改

mima.txt里的用户名的密码,重新执行上面命令才能生效。

chmod 600 /etc/vsftpd/vsftpd_login.db

更改权限只有ROOT用户才能读写

三、在pam.d下建立一个文件vsftpd_login(可自己命名,但要记住)

输入以下内容然后保存

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为之前建立的数据库文件vsftpd_login.db

在这里面把.db去掉

四、创建一个叫ftp_virt的用户,它的主目录为/home/ftpsite且不能登陆系统

useradd -d /home/ftpsite -s /nologin ftp_virt

chmod 777 /home/ftpsite/ #

更改属性

五、修改配制文件visftpd.conf

vi /etc/vsftpd/vsftpd.conf

在后面添加

guest_enable=YES

#启用虚拟用户

guest_username=ftp_virt

#

所有虚拟用户所对应系统贴是ftp_virt之前建立的那个。

pam_service_name=vsftpd_login

#调用之前建立在pam.d下的vsftpd_login文件,读取用户的信息保存、重启VSFTP就行。

虚拟用户的添加和为不同用户指定不同目录。

先在配制文件下添加这代码:

user_config_dir=/etc/vsftpd/user.d

然后在/etc/vsftpd/

建立user.d文件夹之后在文件夹里以mima.txt用户名为准新建和用户名同名的文件

vi /etc/vsftpd/user.d/用户名一

之后在文件里面输入如下代码:

#/etc/vsftpd/user.d/用户名一

local_root=/home/wuxiufeng/wxf

#End

为用户名一指定主目录为home/wuxiufeng/wxf

给用户设置权限

# vi /etc/vsftpd/user.d/用户名一

所有权限

write_enable=YES

anonymous_enable=NO

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

local_umask=022

download_enable=Yes

local_root=/tools

# vi/etc/vsftpd/user.d/用户名二

上传权限

write_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

local_umask=022

download_enable=NO

local_root=/data

# vi /etc/vsftpd/user.d/用户名三只能下载

write_enable=NO

anon_world_readable_only=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

local_umask=022

download_enable=yes

local_root=/data

10.

用户管理userdel选项用户名

#删除用户

常用的选项是-r,它的作用是把用户的主目录一起删除。

passwd选项用户名#修改口令

passwd -l 用户名

锁定口令,即禁用账号。

passwd -u 用户名

口令解锁。

passwd -d 用户名

使账号无口令。

passwd -f 用户名

强迫用户下次登录时修改口令。

如果默认用户名,则修改当前用户的口令。

如果是超级用户,可以用下列形式指定任何用户的口令:

passwd 用户名

passwd -d 用户名

此命令将用户的口令删除,这样用户下一次登录时,系统就不再询问口令

11.

是否想修改21端口呢?

先修改防火墙,增加其FTP端口,下面使用921

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 921 -j ACCEPT

/etc/init.d/iptables restart

#

重启防火墙

/etc/vsftpd/vsftpd.conf

里增加加

listen_port=921

/etc/rc.d/init.d/vsftpd restart

#重启vsftpd

netstat -an |grep 921

#查看端口是否正常启动

发表回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据