红联Linux门户
Linux帮助

利用Mysql管理ftp用户

发布时间:2009-06-24 17:25:15来源:红联作者:a3o7o89
利用mysql管理Vsftpd用户。

1、配置SMA把软件包拖进linux. 软件包在公共目录。
首先用SMB或FTP用mysql软件包传到linux里面去。
useradd -smb #创建一个本地用户smb
smbpasswd -a smb #添加一个smb用户并设置密码。
service smb start #启动smb服务
然后再xp上访问:\\linux的IP地址 #把软件包拖进去,包名叫pam_mysql
回到linux

2、解压进行编译安装。
cd /home/smb
tar zxvf pam_mysql-0.7RC1.tar.gz #解压
cd pam_mysql-0.7RC1 #进入解压后的目录。
./configure --with-openssl #进行编译前的配置
make #编译服务器程序
make install #安装以以编译完成的程序

3、配置mysql
cd /usr/lib/security/
cp pam_mysql.so /lib/security/ #拷贝可执行程序到/lib/security/下。
service mysqld start #启动mysqld服务,注意有个”d“哦!

4、在mysql里面创建数据库、表以及在表里面插入用户名和密码。
mysqladmin -u root -p password test 为管理员更改密码
注意:---->下面在提示输入密码则回车,因为之前没有设置密码。
mysql -u root -p 登录mysql
create database chen; #注意结束的时候在命令后面加分号。
use chen #进入刚刚创建好的数据库里面去。
create table jun
(id int not null primary key auto_increment, #设置ID列自动增长。
name nvarchar(30),
passwd nvarchar(20)); #创建一个表格叫jun的,并在里面插入两列,name和passwd

insert into jun
values ('','user1','123');
insert into jun
values ('','user2','123');
insert into jun
values ('','user3','123'); #插入三个用户。

可以用:show databases; #查看数据库是否创建正确。
:show tables; #查看表格是否创建正确。
:select * from jun; #查看用户插入是否正确。

5、授予virtual只能读chen数据库的jun表。
grant select on chen.jun to virtual@localhost identified by '123';
验证刚刚才的操作是否成功:
mysql -u virtual -p123 chen
select * from jun; #可以看到刚刚插入的用户名。

6、建立虚拟用户所需的pam配置文件。vi /etc/pam.d/vsftpd.vu
auth required pam_mysql.so user=virtual passwd=123 host=localhost db=chen table=jun usercolumn=name passwdcolumn=passwd crypt=0
account required pam_mysql.so user=virtual passwd=123 host=localhost db=chen table=jun usercolumn=name passwdcolumn=passwd crypt=0

pam_mysql.so #是用于linux与mysql互相访问的程序。就是我们上面从/usr/lib/security/pam_mysql.so 复制到/lib/security/目录下的那个程序。
user=virtual #用于访问Mysql的用户。
passwd=123 #对应的是用户的密码。
host=localhost #代表mysql在本机。
db=chen #指定在mysql上的数据库。
table=jun #指定mysql上存放用户的表格。
usercolumn=name #指定用户名的列。
passwdcolumn=passwd #指定密码的列。
crypt=0
#crypt=0: 明文密码
#crypt=1: 使用crpyt()函数(对应SQL数据里的encrypt(),encrypt()随机产生salt)
#crypt=2: 使用MYSQL中的password()函数加密
#crypt=3:表示使用md5的散列方式
注意:这里特别要注意的是上面是两条语句,一行没写完不能回车!这里要是多了个回车用户都不能正常登录。

7、配置/etc/vsftpd/vsftpd.conf文件
在里面添加:
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd_user_conf

8、配置用户单独的配置文件
mkdir /etc/vsftpd_user_conf 创建用户单独配置文件的目录。
mkdir user1 创建与用户同名的文件在文件里面写入:local_root=/ftp/user1 指定用户的登录目录。
mkdir user2 user2和user3同上
mkdir user3

9、创建用户登录目录。
mkdir -p /ftp/user1
mkdir -p /ftp/user2
mkdir -p /ftp/user3
chown -R virtual.virtual /ftp

10、创建用户virtual: useradd virtual
chown virtual.virtual /home/virtual
chmod 700 /home/virtual

要是中途没出错的话表格里面的用户可以登录FTP了。
希望对大家有帮助!
因为时间冲忙,写的不对地方请大家踊跃的提出来。
文章评论

共有 1 条评论

  1. wangyoubang 于 2009-08-01 23:34:38发表:

    顶一个