Dict.CN 在線詞典, 英語學習, 在線翻譯

          都市淘沙者

          荔枝FM Everyone can be host

          統計

          留言簿(23)

          積分與排名

          優秀學習網站

          友情連接

          閱讀排行榜

          評論排行榜

          【原創】Centos5.3+ProFTPD1.3.2+Mysql5.1配置FTP服務

             

          Centos5.3+ProFTPD1.3.2+Mysql5.1配置FTP服務

          Allen Jelver 2009-12-17

           廢話少說了,就是利用Mysql做FTP校驗,即通過數據庫管理FTP用戶信息,檢驗登錄等......,進入正題.>>

          一、           安裝Mysql軟件包(64)

          MySQL-server-community-5.1.38-0.rhel5.x86_64.rpm

          MySQL-shared-community-5.1.38-0.rhel5.x86_64.rpm

          MySQL-client-community-5.1.38-0.rhel5.x86_64.rpm

          MySQL-devel-community-5.1.38-0.rhel5.x86_64.rpm

          資源包可以在http://ftp.up.ac.za/pub/windows/MySQL/Downloads/MySQL-5.1/下載,本教程對Mysql的rpm方式安裝省略,需要注意的是devel包是必須安裝的,只有安裝devel包后才能生成/usr/include/mysql,32位機器安裝的lib路徑要注意一下是/usr/lib/mysql即可,關于msyql的安裝網上很多資料都可以參考。

          二、        安裝proftpd

          下載proftpd-1.3.2.tar.gz

          wget http://ftp.ntu.edu.tw/proftpd/distrib/source/proftpd-1.3.2.tar.gz

          cd /usr/local #這是我放置proftpd-1.3.2.tar.gz的目錄

          tar zxvf proftpd-1.3.2.tar.gz

          cd proftpd-1.3.2

          ./configure --with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql --with-includes=/usr/include/mysql --with-libraries=/usr/lib64/mysql

          make

          make install

          首先需要聲明的是以下的配置會跟你的安裝目錄有關,安裝成功后則會生成/usr/local/etc/目錄,其中包含核心配置文件proftpd.conf,同時在/usr/local/sbin下有proftpd可執行文件,通常用來啟動服務用的,其中pid文件文件是自啟動腳本中創建的,這部分在后面會講到。對以上兩個目錄做查看,如下圖所示:

          說明:若在makemake install中有錯則需要注意是否是gcc方面的問題導致。

          三、        配置Mysql認證

          認證這部分主要是配置proftpd.conf文件,在修改配置文件之前最好養成先備份一個文件的習慣,否則修改出錯后沒有辦法找到原來的版本。并在proftpd.conf中加入以下內容,

          1.修改組信息

          # Set the user and group under which the server will run.

          User                           nobody

          Group                          nogroup

          將Group對應的nogroup修改為如下的nobody

          # Set the user and group under which the server will run.

          User                                                nobody

          Group                                             nobody

          2.加入數據校驗配置

          # 屏蔽服務器版本信息
          ServerIdent off

          # 數據庫連接的信息,ftpusers是數據庫名, localhost是主機名,3306是端口號,root是連接數據庫的用戶名,123456是密碼。

          SQLConnectInfo ftpusers@localhost:3306 root 123456

          # 數據的認證方式

          # Backend表示用戶認證方式為MySQL數據庫的認證方式 
          # Plaintext表示明文認證方式,排在最前面的為最先使用的方式

          SQLAuthTypes Backend Plaintext

          #指定用來做用戶認證的表的有關信息。("users"和"grps"是數據表名字,其后為字段信息)

          SQLUserInfo users userid passwd uid gid home shell

          SQLGroupInfo grps grpname gid members

          #設置如果shell為空時允許用戶登錄:

          RequireValidShell off  

          #數據庫的鑒別                                      

          SQLAuthenticate users groups usersetfast groupsetfast

          #如果home目錄不存在,則系統會為根據它的home項新建一個目錄:

          #注意SQLHomedirOnDemand已經在1.3.2以后的版本中改名為CreateHome

          CreateHome on

          #設置系統運行日志和文件傳輸日志

          SystemLog /var/log/proftpd.syslog

          TransferLog /var/log/proftpd.transferlog

          3.建立相應的系統用戶

          在本例中,只整個FTP服務只提供一個有效的系統用戶ftpuser和組ftpgrp,當然你也可以設置多個系統用戶。但出于安全的考慮,我只設一個,用他來啟動FTP daemon,并把所有的FTP用戶映射過這個用戶。

          先建立ftpgrp組:
          groupadd -g 5500 -r ftpgrp    //增加一個組ID5500ftpgrp

          建立ftpuser用戶:
          useradd -u 5501 -g 5500 -d /home/ftp -s /bin/bash -r ftpuser
          ftpuser建立home,把所有的FTP user 活動空間全放在此目錄下:

          mkdir /home/ftp

          chown ftpuser /home/ftp

          chgrp ftpgrp  /home/ftp

          4.初始化數據庫

          1)創建數據庫和表

          create database ftpusers;

          use ftpusers;

          建立一個用戶表USERS,這個表是必須的:

          create table USERS (

          userid 
          TEXT NOT NULL,

          passwd 
          TEXT NOT NULL,

          uid 
          INT NOT NULL,

          gid 
          INT NOT NULL,

          home 
          TEXT,

          shell 
          TEXT

          );

          此表是為了用戶認證所需要的,其中userid、passwd是必不可少的,userid是用做FTP服務的用戶名;passwd是指此用戶的密碼;uid是系統用戶的ID,也就是所映射的系統用戶;gid是所屬系統組的ID;home是該用戶所在的HOME目錄;shell可以為該用戶指定相應的shell。當然你可以建立更多的字段,例如:用來記錄用戶登錄次數的count,或者是日期的date,如果你對配置熟悉了之后,你可以根據自己的喜歡添加更多的功能。

          另外,若需要對組成員管理之類的功能則需要添加GRPS表:

          create table GRPS (
          grpname 
          TEXT NOT NULL,
          gid 
          SMALLINT NOT NULL,
          members 
          TEXT NOT NULL
          );

          其中grpname是組的名稱,gid是系統組的ID,members是組的成員。注意:多成員,他們之間要用逗號隔開,不能使用空格。

          2)增加用戶,在數據庫USERS表和GRPS表中插入數據:

          INSERT INTO USERS (userid, passwd, uid, gid, home, shell) values ('allen''123456''5501''5500''/home/ftp/allen', "/usr/local/test.sh");

          INSERT INTO USERS (userid, passwd, uid, gid, home, shell) values ('kitty''222222''5502''5500''/home/ftp/kitty', "/usr/local/test2.sh");

          INSERT INTO GRPS (grpname,gid,members) values ('ftpgrp','5500','allen,kitty');

          flush 
          privileges;   //刷新數據庫

          四、        配置自啟動服務

          從編譯安裝路徑中拷貝proftpd.init.d文件到/etc/rc.d/init.d/中,并重命名為proftpd,授予可執行權限后,通過chkconfig --add命令將其加為自啟動服務即可,具體操作如下:  

          cp /usr/local/proftpd-1.3.2/contrib/dist/rpm/proftpd.init.d /etc/rc.d/init.d/

          cd /etc/rc.d/init.d

          mv proftpd.init.d proftpd

          chmod +x proftpd

          #加入為服務

          chkconfig --add proftpd

          chkconfig --level 3 proftpd on

          #這樣,就可以分別通過以下方式來完成啟動、停止、重啟Proftpd的工作了
          service profptd start
          service proftpd stop
          service proftpd restart

          常用指令:

          pgrep proftpd 注:查看服務器是不是啟動起來了;如果沒有進程,說明失敗;
          pkill proftpd 注:殺死proftpd的進程;也就是關掉服務器;

          查看proftpd日志:tail -f /var/log/proftpd.syslog

          查看proftpd傳輸文件日志:tail -f /var/log/proftpd.transferlog

          五、        配置磁盤限額

          暫時未做,以后更新


          后記:
          很多資料都是來參考網絡上的資料整理的,配置環境測試通過,所以本文章可以隨意轉載,不過最好也能夠標注原帖出處:)

          主要參考:
          http://blog.ixpub.net/html/92/10996892-2512.html
          http://hi.baidu.com/fei33352/blog/item/73acf881b0972bddbc3e1ed2.html

          posted on 2009-12-17 16:37 都市淘沙者 閱讀(925) 評論(0)  編輯  收藏 所屬分類: lighttpd/nginx/HA/LVS/FTP

          主站蜘蛛池模板: 阜平县| 镇原县| 大洼县| 宜宾县| 宁波市| 游戏| 三穗县| 平湖市| 同德县| 兰考县| 油尖旺区| 富平县| 苗栗县| 象山县| 青浦区| 武胜县| 宜良县| 香河县| 阜阳市| 新沂市| 太仓市| 离岛区| 武安市| 都安| 台南市| 桃园县| 桃源县| 溆浦县| 舒城县| 旅游| 富顺县| 松溪县| 南郑县| 松滋市| 焉耆| 安义县| 山东| 孝昌县| 兴宁市| 东城区| 乌拉特中旗|