VnLamp

Go Back   VnLamp > Khu vực Training > LPI

Trả lời
 
LinkBack Ðiều Chỉnh Xếp Bài
PureFTPd Virtual account Mysql trên CentOS
Old
  (#1 (permalink))
LM
 
Status: Offline
Posts: 195
Tham gia: Dec 2007
BQT VNLAMP
 
LM's Avatar
Default PureFTPd Virtual account Mysql trên CentOS - 27-10-2008, 01:27 27-10-2008

Bước 1:

Download gói PureFTPd từ:

http://centos.karan.org/el5/extras/testing/i386/RPMS/

Nếu hệ máy 64bit thì bold thành x86_64

Code:
wget http://centos.karan.org/el5/extras/testing/i386/RPMS/pure-ftpd-1.0.21-15.el5.kb.i386.rpm
... rồi cài đặt.

Bước 2:

Tạo user và nhóm cho các folder được dùng để làm FTP:

Code:
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser
Bước 3:

Log vào mysql console chạy:

Code:
mysql>create database `pureftpd`;
mysql>use pureftpd;
mysql>
CREATE TABLE `ftpd` (
  `User` varchar(255) NOT NULL,
  `status` enum('0','1') NOT NULL default '1',
  `Password` varchar(64) NOT NULL default '',
  `Uid` varchar(11) NOT NULL default '2001',
  `Gid` varchar(11) NOT NULL default '2001',
  `Dir` varchar(128) NOT NULL default '',
  `ULBandwidth` smallint(5) NOT NULL default '0',
  `DLBandwidth` smallint(5) NOT NULL default '0',
  `comment` tinytext NOT NULL,
  `ipaccess` varchar(15) NOT NULL default '*',
  `QuotaSize` smallint(5) NOT NULL default '0',
  `QuotaFiles` int(11) NOT NULL default '0',
  PRIMARY KEY  (`User`),
  UNIQUE KEY `User` (`User`),
  KEY `User_2` (`User`,`status`,`Password`,`ipaccess`,`QuotaSize`,`QuotaFiles`)
) ENGINE=MyISAM ;
Bước 4

Tạo user cho pureFtpd connect đến SQL server (tuyệt đối không dùng acc root)
Code:
mysql>GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
Lưu ý chỗ bold là chỗ tạo user và default permission của user với db pureftpd


I'm quit.

thay đổi nội dung bởi: LM, 27-10-2008 lúc 01:27 27-10-2008.
   
Trả Lời Với Trích Dẫn
Old
  (#2 (permalink))
LM
 
Status: Offline
Posts: 195
Tham gia: Dec 2007
BQT VNLAMP
 
LM's Avatar
Default 27-10-2008, 01:27 27-10-2008

Bước 5:

Code:
mysql>FLUSH  PRIVILEGES ;
Bước 6:

edit /etc/pure-ftpd/pure-ftpd.conf

#MySQLConfigFile /etc/pure-ftpd/pureftpd-mysql.conf

thành ( gỡ comment)

MySQLConfigFile /etc/pure-ftpd/pureftpd-mysql.conf

Bước 7

edit /etc/pure-ftpd/pureftpd-mysql.conf

Xóa hết config cũ thay bằng:

Code:
MYSQLSocket      /var/lib/mysql/mysql.sock
MYSQLServer     localhost
MYSQLPort       3306
MYSQLUser       pureftpd
MYSQLPassword   ftpdpass
MYSQLDatabase   pureftpd
MYSQLCrypt      md5
MYSQLGetPW      SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetUID     SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetGID     SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetDir     SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTASZ   SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTAFS   SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
Chỉnh các thông số

MYSQLServer localhost
MYSQLPort 3306
MYSQLUser pureftpd
MYSQLPassword ftpdpass
MYSQLDatabase pureftpd


Bước 8:

chkconfig --add pure-ftpd
chkconfig pure-ftpd on
/etc/init.d/pure-ftpd restart


Vậy là xong.

Giờ chỉ việc add user vào và sử dụng.

Dùng PHPmyadmin hoặc mysql console insert data vào db pureftpd và bảng ftpd.

EG:

Code:
mysql>use pureftpd;
mysql>INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('vnlamp', '1', '827ccb0eea8a706c4c34a16891f84e7b', '2001', '2001', '/home/www/vnlamp/', 128, 64, '', '*', 4096, 10 );
Ví dụ này là:

Tạo user vnlamp với password là 12345 đã được mã hóa md5 ( phải nhập password đã được mã hóa md5) , thư mục để chứa docs là /home/www/vnlamp/ với quota là 4096MB , tốc độ upload là 128kbs, download là 64kbs, allow tất cả IP client * , file size lớn có thể upload là 10MB

* 0 là unlimit
* sau khi tạo thì phải change owner của thư mục nếu không thì không thể access vào thư mục:

chown -R ftpuser:ftpgroup /home/www/vnlamp/

* Add user thì không cần restart mysql hay ftpd


LM@


I'm quit.

thay đổi nội dung bởi: LM, 28-10-2008 lúc 21:28 28-10-2008.
   
Trả Lời Với Trích Dẫn
Old
  (#3 (permalink))
 
Status: Offline
Posts: 98
Tham gia: Jan 2008
BQT VNLAMP
 
producter's Avatar
Default 27-10-2008, 14:27 27-10-2008

Hình như thiếu cái chổ móc user pass từ datase để thẩm định, em xem hoài không thấy chổ nào. Bước 7 chỉ cho config connect đến database.

Em làm xong connect hoài không được. Anh debug lại dùm. Cám ơn anh.
   
Trả Lời Với Trích Dẫn
Old
  (#4 (permalink))
LM
 
Status: Offline
Posts: 195
Tham gia: Dec 2007
BQT VNLAMP
 
LM's Avatar
Default 27-10-2008, 19:27 27-10-2008

ặc.

test account bằng: command

mysql -u pureftpd -pftpdpass

Nếu connect thành công thì account works, nếu báo access deny thì xem lại lúc tạo password có đúng hay không


I'm quit.
   
Trả Lời Với Trích Dẫn
Old
  (#5 (permalink))
 
Status: Offline
Posts: 98
Tham gia: Jan 2008
BQT VNLAMP
 
producter's Avatar
Default 28-10-2008, 07:28 28-10-2008

Em chạy command trên thì thấy ok. Nhưng trong database co acc vnlamp pass 12345 tạo rồi nhưng connect hoài không được.
Trích:
[root@FIREWALL ~]# mysql -u pureftpd -pftpdpass
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 137
Server version: 5.0.45 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
Em đã kiểm tra user và pass md5 chính xác nhưng connect vẫn không được

Trích:
C:\Documents and Settings\VANCOUVER>ftp 10.0.0.10
Connected to 10.0.0.10.
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 14:08. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
User (10.0.0.10none)): vnlamp
331 User vnlamp OK. Password required
Password:
530 Login authentication failed
Login failed.
ftp>
   
Trả Lời Với Trích Dẫn
Old
  (#6 (permalink))
LM
 
Status: Offline
Posts: 195
Tham gia: Dec 2007
BQT VNLAMP
 
LM's Avatar
Default 28-10-2008, 21:28 28-10-2008

Sorry thiếu bước edit file mysql cua pureftpd, xem bài đã edit trên


I'm quit.
   
Trả Lời Với Trích Dẫn
Old
  (#7 (permalink))
 
Status: Offline
Posts: 1
Tham gia: Nov 2008
Junior Member
Default 26-11-2008, 11:26 26-11-2008

cho mình hỏi, có 1 vấn đề về phân quyền trên folder home của ftpuser
ví du như: home user là /home/www/vnlamp/

khi đó sử dụng code php để ghi file 1 cách đơn giản nhưng không được
Code:
<?php

$ourFileName = "/home/www/vnlamp/testFile.txt";
$fh = fopen($ourFileName, 'w') or die("Can't open file");
fwrite($fh, $new_contents);
fclose($fh);

?>
đoạn code trên không chạy được.

nếu fix để đoạn code trên chạy được,
thì owner của testFile.txtapache ! như vậy thì ftpuser không có quyền edit, delete được file này.

admin vui lòng giúp với làm sao khi chạy tạo ra file trên thì owner của nó phải là owner của folder cha vnlamp/ ?

cảm ơn.
   
Trả Lời Với Trích Dẫn
Trả lời


Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt
Trackbacks are Mở
Pingbacks are Mở
Refbacks are Mở


Múi giờ GMT. Hiện tại là 00:23 23-05-2012.