分类: LINUX
2011-10-10 10:37:49
root@alex:~# apt-get install vsftpd //安装vsftpd
root@alex:~# apt-get install mysql-server mysql-client libpam-mysql //安装mysql
root@alex:~# mkdir /home/ftp //创建目录
root@alex:~# useradd –d /home/ftp –s /usr/sbin/nologin ftpguest //创建本地用户 指定家目录 不让其登录系统
root@alex:~# chown ftpguest.nogroup /home/ftp //改变目录组
root@alex:~# mkdir /home/zhangsan
root@alex:~# mkdir /home/lisi
root@alex:~# mkdir /home/wangwu
root@alex:~# chown ftpguest.nogroup /home/zhangsan
root@alex:~# chown ftpguest.nogroup /home/lisi
root@alex:~# chown ftpguest.nogroup /home/wangwu
root@alex:~# mysqladmin -u root -p create ftpvuser //创建数据库
root@alex:~# mysql -u root –p //登录mysql
mysql>use ftpvuser; //使用数据库ftpvuser
mysql>CREATE TABLE users (username varchar(20) NOT NULL,password varchar(40) NOT NULL,PRIMARY KEY (username)) TYPE=MyISAM; //创建users表 username 20字节 非空,password 40字节 非空 设置username为主键, 类型为MyISAM
mysql>grant select on ftpvuser.users to ftpguest@localhost identified by 'debian'; //让本地用户能读取数据库的表的内容 并设置本地用户访问数据库的密码
mysql>flush privileges; //更新库文件
mysql>show databases; //显示数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| ftpvuser |
| mysql |
+--------------------+
3 rows in set (0.00 sec)
mysql>use ftpvuser; //使用数据库
mysql> show tables; //显示表
+--------------------+
| Tables_in_ftpvuser |
+--------------------+
| users |
+--------------------+
1 row in set (0.00 sec)
mysql>insert into users (username,password) values ('zhangsan','debian'); //在表users中创建用户和密码
mysql>insert into users (username,password) values ('lisi','debian');
mysql>insert into users (username,password) values ('wangwu','debian');
mysql> select * from users; //显示表内容
+----------+----------+
| username | password |
+----------+----------+
| zhangsan | debian |
| lisi | debian |
| wangwu | debian |
+----------+----------+
3 rows in set (0.01 sec)
mysql>quit;
root@alex:~# vi /etc/pam.d/vsftpd
所有内容都注释,添加:
auth required pam_mysql.so user=ftpguest passwd=debian host=localhost db=ftpvuser table=users usercolumn=username passwdcolumn=password //检测用户ftpguest是否可以访问数据库表,口令以明文方式、不加密保存在数据库中
pam_mysql.so user=ftpguest passwd=debian host=localhost db=ftpvuser table=users usercolumn=username passwdcolumn=password crypt=0 //管理用户ftpguest,口令以明文方式、不加密保存在数据库中
注:crypt=0: 明文密码
crypt=1: 使用crpyt()函数
crypt=2: 使用MYSQL中的password()函数加密
crypt=3:表示使用md5的散列方式
root@alex:~# vi /etc/vsftpd.conf
关闭匿名登录
#anonymous_enable=YES
打开本地用户登录
local_enable=YES
开启虚拟用户登录
guest_enable=YES
guest_username=ftpguest
设置用户权限设置
user_config_dir=/etc/userconfig
将本地用户限制在家目录
chroot_local_user=YES
root@alex:~# service vsftpd restart
root@alex:~# mkdir /etc/userconfig
root@alex:~# touch zhangsan lisi wangwu
root@alex:~# vi /etc/userconfig/zhangsan
=NO //所有非匿名登陆用户被切换成guest_username指定的用户名
write_enable=YES //可写权限
download_enable=NO //不可下载
anon_upload_enable=YES //匿名用户可以上传文件
anon_mkdir_write_enable=YES //匿名用户可以创建文件
anon_other_write_enable=YES //匿名用户可以有其他写权限
local_root=/home/zhangsan 锁定家目录
anon_max_rate=50000 //限速48KB
root@alex:~# vi /etc/userconfig/lisi
anon_world_readable_only=NO
write_enable=NO
download_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/lisi
anon_max_rate=80000 //限速78KB
root@alex:~# vi /etc/userconfig/wangwu
anon_world_readable_only=NO
write_enable=YES
download_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/wangwu
anon_max_rate=120000 //限速117KB
root@alex:~# service vsftpd restart
最后可利用第三方ftp软件进行测试
注: 如需复制配置文件内容,请自行敲击一遍,复制可导致用户无法登录,本人已试过,请斟酌。 但过程没有错 ,请大家一起交流 谢谢,如需转载,请注明出处 3Q