人來瘋技術文檔再現江湖之pureftpd使用大全

火星人 @ 2014-03-04 , reply:0


人來瘋技術文檔再現江湖之pureftpd使用大全

人來瘋技術文檔之pureftpd使用大全
人來瘋 root
人來瘋論壇 http://www.d-1701.com/bbs
MSN:xu1701@hotmail.com
                                                                 
版權信息:未經許可不得轉載,轉載本文章請與人來瘋論壇壇主root聯繫!
人來瘋論壇已於北京時間05.12.15日正式關閉,大家可以通過MSN聯繫我!
06年將考慮採用合作的形式辦論壇,希望能找到提供伺服器及域名的朋友!
                                              聯繫方法:使用msn
環境:
RedHat  RHEL3U6
說明:
如果不做說明,一般安裝命令均使用ROOT許可權,用 # 表示;一般命令用$表示。

特別說明:無

以下文章介紹Liunx 環境下 Pureftpd安裝及使用情況

一、前言
Pureftpd是一款在多種類Unix上使用並符合GPL協議的原代碼開放的軟體,顧名思義,它就是一款純粹的Ftp程序,目前的版本是1.0.21,文檔版本號已經開發到1.0.22,這證明作者正在努力開發新版本,我們一起期待吧。
二、Puerftpd安裝步驟
1、獲取並安裝Pureftpd版本
大家可以到 http://download.pureftpd.org/pub/pure-ftpd/releases/下載pureftpd的原代碼,下載後進行安裝,如下:
# cd /home/xuchen
# wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.21.tar.gz .
# tar xzvf pure-ftpd-1.0.21.tar.gz
# cd pure-ftpd-1.0.21
# ./configure --prefix=/usr/local/pureftpd  --with-everything  --with-rfc2640\
--with-mysql=/usr/local/mysql --with-language=simplified-chinese;make;make check;make install

--prefix是安裝的目標目錄
--with-eyerything是安裝所有功能,因為是測試。
--with-rfc2640,此參數UTF-8,gb2312等異構系統的語言集轉換
注意:如果是用Tar包安裝的mysql,可能在編譯時會遇到
configure: error: Your MySQL client libraries aren't properly installed
問題,解決的辦法是
把/usr/local/mysql/lib/mysql/下的文件全部copy到/usr/lib中

# mkdir /usr/local/pureftpd/etc 安裝系統時沒建立這個文件夾??
# cd configuration-file
# chmod u+x pure-config.pl
# cp pure-config.pl /usr/local/pureftpd/bin
# cp pure-ftpd.conf /usr/local/pureftpd/etc
# cd ..
# cp pureftpd* /usr/local/pureftpd/etc/
到這裡,所有安裝已完成,就該測試功能了,我們用修改配置文件的方法來完成功能測試。

2、配置Pureftpd
啟動pureftpd的方法是
# /usr/local/pureftpd/bin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
這個在每次測試后都要執行,就不一一寫上了。
(1)        匿名用戶登陸
# vi /usr/local/pureftpd/etc/pure-ftpd.conf
如果要在默認的配置文件中只支持匿名登錄,你只要稍微修改一下就可以了:
ChrootEveryone yes //限制所有用戶在其主目錄中
AnonymousOnly yes //是否只讓匿名登錄
NoAnonymous no //不允許匿名連接,僅允許認證用戶使用
AnonymousCanCreateDirs yes //允許匿名用戶創建新目錄
MaxLoad  4  //如果系統被 loaded 超過下面的值,匿名用戶會被禁止下載
AnonymousRatio   1 10 //匿名用戶的上傳/下載的比率
AnonymousBandwidth  8  //匿名用戶的最大帶寬(KB/s)
AllowAnonymousFXP  yes  //對匿名用戶和非匿名用戶允許進行匿名 FXP 傳輸
AnonymousCantUpload  no //不接受匿名用戶上傳新文件( no = 允許上傳)

#(」.」)開頭的文件能不能被讀/寫
按以上設置就可以進行匿名Ftp連接了,但如果出現了「421 無法建立安全匿名FTP」錯誤,請檢查你的系統帳號,有可能你在系統建立時把FTP這個帳戶給優化了,如果是這樣,那麼運行
# useradd ftp -g ftp -d /var/ftp -s /sbin/nologin
如果發現帳戶是存在的,那麼請檢查帳戶的主目錄是否存在,如果不存在,也會提示上述錯誤。
經測試,按上述配置文件配置后,重新啟動伺服器,匿名用戶可以上傳文件,但無法下載,也無法刪除文件。實現了安全的匿名上傳ftp功能。
當你下載文件時看到,沒有被管理員核准下載,這個是怎麼做到的呢?其實很簡單,一個參數搞定
AntiWarez   yes //意思是不接受所有者為 "ftp" 的文件的下載,我們把它設置為 「no」會怎麼樣呢?結果很顯然,我們可以下載文件了,但由於AnonymousRatio 參數的存在,我們需要先上傳後下載,很有意思,好了,匿名用戶登陸就介紹到這裡了。

[ 本帖最後由 初學vb 於 2006-11-27 10:58 編輯 ]
《解決方案》

(2)系統真實用戶方法
# vi /usr/local/pureftpd/etc/pure-ftpd.conf
如果要在默認的配置文件中只支持系統真實用戶登錄,你只要稍微修改一下就可以了:
ChrootEveryone yes
NoAnonymous  yes
UnixAuthentication yes //用/etc/passwd 中的用戶認證
只需以上三行就可以實現系統真實用戶登陸Ftp了,系統真實用戶會登陸到自己的主系統中,可下載,可上傳,可刪除,沒有任何限制,類似於平常我們用的sftp,就是由於有chroot的限制,所以無法去其他文件夾而已。在實際應用中,這種用法並不多見,我也就不費篇幅介紹了。
《解決方案》

(3)        puredb虛擬用戶支持
自從 0.99.2 版本開始, pure-ftpd 就開始支持虛擬用戶。為了使 pure-ftpd 支持虛擬用戶,需要在編譯的時候加入選項 --with-puredb,或是和我們測試一樣,用--with-everything,當然這個是隨各用戶使用而定。虛擬用戶方式十分類似 /etc/passwd ,將用戶的相關信息,如口令、姓名、 uid 、目錄等,存入文件。但是該文件只適用於 FTP 。這意味著,可以為 FTP 設置虛擬用戶,而不需要在系統中添加系統用戶。同時,可以為這些用戶單獨設置配額、 ratio 、帶寬等限制。很多虛擬用戶可以共享同一個系統用戶的屬性,因此建議為這些虛擬用戶單獨創建一個系統用戶,從而方便管理。我們選擇新建系統用戶(經測試,如果用linux系統自帶的Ftp用戶,在用虛擬用戶登陸時會出現不被信任的提示,大家也可以做做實驗,看是不是這樣)。建立方法如下:
# groupadd ftpgroup
# useradd -g ftpgroup -d /dev/null -s /sbin/nologin ftpuser
系統帳號建立好后,我們就開始著手準備虛擬用戶了。

虛擬用戶建立方法
可以使用 」pure-pw」 來創建虛擬用戶。虛擬用戶的信息以每個用戶一行的方式存放在相應的文件中,除了帳號、口令、 uid 、 gid 和 home 目錄之外,其它的可以是空值。
pure-pw useradd的語法規範如下:
pure-pw useradd <login> [-f <passwd file>] -u <uid> [-g <gid>]
      -D/-d <home directory> [-c <gecos>]
      [-t <download bandwidth>] [-T <upload bandwidth>]
      [-n <max number of files>] [-N <max Mbytes>]
      [-q <upload ratio>] [-Q <download ratio>]
      [-r <allow client host>[/<mask>][,<allow client host>[/<mask>]]...]
      [-R <deny client host>[/<mask>][,<deny client host>[/<mask>]]...]
      [-i <allow local host>[/<mask>][,<allow client host>[/<mask>]]...]
      [-I <deny local host>[/<mask>][,<deny local host>[/<mask>]]...]
      [-y <max number of concurrent sessions>]
      [-z <hhmm>-<hhmm>] [-m]
假設我們要創建 test 這樣一個虛擬用戶,則可以使用如下命令:
# pure-pw useradd test -u ftp -d /var/ftp/test
其中, -u 將虛擬用戶 test 同系統用戶 ftp 關聯在一起。 -d 參數使 test 只能訪問其 home 目錄。而如果想讓他訪問整個文件系統,可以用 -D 選項。
執行完上述命令后,會提示輸入密碼,我們輸入123456即可。
然後需要更改建立/var/ftp/test目錄,並修改它的屬性。
注意:在配置文件中有選項自動建立主目錄
CreateHomeDir               yes //我們可以設置為yes,但是有一點需要大家注意,就是它只支持二層目錄的建立而不支持三層以上目錄的建立,舉個例子,如果我們創建虛擬用戶是用如下語句:
# pure-pw useradd test -u ftp -d /home/ftp 命令,而這時系統只有/home目錄而沒有/home/ftp目錄,那麼在test用戶第一次登陸時會創建/home/ftp目錄,而如果我們改變以上命令如下:
# pure-pw useradd test -u ftp -d /home/ftp/test,而這時系統只有/home目錄或/home/ftp目錄,而沒有/home/ftp/test目錄,那麼我們登陸時會得到沒有主目錄的提示。

其他參數含義:
-z 選項運用用戶在一天當中指定的時間段連接伺服器。如 -z 0900-1800 ,則該用戶只能在上午 9 點到晚上 6 點之間連接伺服器。
-r 選項或 -R 選項,可以限制用戶從指定 IP 和掩碼連入伺服器
-y ,用戶同一時間的併發連接數。 』』 或者 0 意味著不限制
-f ,默認虛擬用戶的信息會被存放在 ./etc/pureftpd.passwd 文件中,通過該選項可以改變該文件的位置。
用戶的口令會根據系統對加密方式的支持情況,選擇一個最安全的方式進行加密。

同 pure-pw adduser 不同的是,使用 pure-pw usermod 不是創建一個用戶,而是更改已經存在用戶的某些屬性。
重置某些屬性的語法如下:
pure-pw usermod <user> -n '' :禁用文件配額
pure-pw usermod <user> -N '' :禁用文件大小配額
pure-pw usermod <user> -q '' -Q '' :禁用 ratio
pure-pw usermod <user> -t '' :禁用下載帶寬限制
pure-pw usermod <user> -T '' :禁用上傳帶寬限制
pure-pw usermod <user> <-i,-I,-r or -R> '' :禁用 IP 過濾
pure-pw usermod <user> -z '' :禁用時間段約束
pure-pw usermod <user> -y '' :禁用併發數限制

刪除一個用戶的命令語法是:
pure-pw userdel <login> [-f <passwd file>] [-m]
這時,用戶的信息會被從指定的 passwd 文件中刪除,但是用戶的 home 目錄會被保留,需要手工刪除。

更改一個用戶口令的語法是:
pure-pw passwd <login> [-f <passwd file>] [-m]

./etc/pureftpd.passwd 文件中記錄的信息不方便用戶的閱讀,因此 pure-ftpd 提供了顯示用戶信息的命令。其語法是:
pure-pw show <login> [-f <passwd file>]

可以通過上面提到的命令,或者以手工方式對 ./etc/pureftpd.passwd 文件進行修改,從而創建、修改和刪除一個虛擬用戶信息。但是,只有提交這些更改時, pure-ftpd 訪問才能生效。提交更改,意味著系統會根據./etc/pureftpd.passwd (或者指定的其它文件)來創建一個 pure-ftpd 可讀的二進位格式的文件
./etc/pureftpd.pdb 。這是通過下面的命令完成的:
pure-pw mkdb
可以通過 ./etc/pureftpd.passwd 文件自動創建 ./etc/pureftpd.pbd 文件。但是,如果需要指定特定的文件,可以通過下面的方式來實現:
pure-pw mkdb /etc/accounts/myaccounts.pdb -f /etc/accounts/myaccounts.txt
這時,沒有必要去重啟 pure-ftpd 服務,對虛擬用戶進行的更改可以更新。同時,也可以通過 -m 選項,在對 ./etc/pureftpd.passwd 文件進行修改的時候自動進行提交。

可以通過如下命令,將系統用戶轉換為虛擬用戶:
pure-pwconvert
如果以 root 用戶運行該命令,系統用戶的口令一併被轉入虛擬用戶配置文件。如:
pure-pwconvert >> ../etc/pureftpd.passwd

環境變數
默認的情況下,如果指定了環境變數 PURE_PASSWDFILE ,則虛擬用戶的 passwd 文件位置由該變數的值指定。否則,默認是 ./etc/pureftpd.passwd 。同樣,PURE_DBFILE 環境變數用來指定 pdb 文件的位置。默認是 ./etc/pureftpd.pdb 。

更改配置文件
PureDB   /usr/local/pureftpd/etc/pureftpd.pdb  //Puredb路徑
CreateHomeDir  yes  //創建用戶主目錄

通過以上建立的用戶,可上傳,可下載,可刪除,是高許可權用戶。可以通過對目錄的限制來達到對用戶許可權的限制。

[ 本帖最後由 初學vb 於 2006-11-27 08:59 編輯 ]
《解決方案》

以上都是經過我本人測試多遍得出結果,如果大家有任何疑問,都可以測試后發表,請大家要牢記:實驗出真知。

下面的內容就是和資料庫有關了。
《解決方案》

(4)Pureftp和mysql聯合使用
資料庫我用的是5.0.20a,不過建議使用4.0的資料庫,少了很多編碼的麻煩。
# mysql -p //登陸mysql伺服器
> CREATE DATABASE pureftpd;
> grant all on pureftpd.* to pureftp@localhost identified by '********';
> use pureftpd
> CREATE TABLE `users` (
  `id` int(32) unsigned NOT NULL auto_increment,
  `User` varchar(16) NOT NULL default '',
  `Password` varchar(64) NOT NULL default '',
  `Uid` varchar(11) NOT NULL default '-1',
  `Gid` varchar(11) NOT NULL default '-1',
  `Dir` varchar(128) NOT NULL default '',
  `QuotaSize` smallint(5) NOT NULL default '0',
  `QuotaFiles` int(11) NOT NULL default '0',
  `ULBandwidth` smallint(5) NOT NULL default '0',
  `DLBandwidth` smallint(5) NOT NULL default '0',
  `ULRatio` smallint(6) NOT NULL default '0',
  `DLRatio` smallint(6) NOT NULL default '0',
  `comment` tinytext NOT NULL,
  `ipaccess` varchar(15) NOT NULL default '*',
  `status` enum('0','1') NOT NULL default '0',
  `create_date` datetime NOT NULL default '0000-00-00 00:00:00',
  `modify_date` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`,`User`),
  UNIQUE KEY `User` (`User`)
) TYPE=MyISAM AUTO_INCREMENT=5 ; //建立pureftpd資料庫

> INSERT INTO `users` VALUES (1, 'test', encrypt('test'), '2000', '2000', '/var/ftp/test', 0, 0, 0, 0, 0, 0, '', '*', '1', '2006-11-27 10:10:00', '2006-11-27 10:10:00'); //建立ftp用戶

這樣我們就建立好了pureftpd資料庫,下面我們修改/usr/local/pureftpd/etc/pureftpd-mysql.conf 文件.
MYSQLServer     localhost
MYSQLPort       3306
MYSQLSocket     /tmp/mysql.sock
MYSQLUser       pureftp
MYSQLPassword   ******** //這裡填你自己的密碼
MYSQLDatabase   pureftpd
MYSQLCrypt      crypt //密碼加密方式,我們選crypt,還有幾種方法,原理都是一樣的,大家可以參考。
查找以下字元,並把前面的#號去掉
MySQLGetQTAFS
MySQLGetQTASZ
MySQLGetBandwidthUL
MySQLGetBandwidthDL
保存退出

# vi /usr/local/pureftpd/etc/pure-ftpd.conf
就改一條
MySQLConfigFile              /usr/local/pureftpd/etc/pureftpd-mysql.conf //設置mysql文件
其他按你要求自己修改。

OK,建立主目錄/var/ftp/test,它要有everyone的讀寫許可權才行,所以我用的是chmod 777 /var/ftp/test,啟動後進行測試,可上傳,可下載,可刪除。如果不想刪除和上傳,可以把許可權設置為555,那麼就只能下載了。
《解決方案》

(5)Pureftpd和PostgreSQL聯合使用
    首先,我們應該清楚PostgreSQL 是什麼?PostgreSQL 是下一代 DBMS 的研究原型 POSTGRES 資料庫管理系統的增強版。PostgreSQL 在保持 POSTGRES 的強大的數據模型和豐富的數據類型的基礎上,用一個擴展了的 SQL 子集取代了原先的 PostQuel 查詢語言。PostgreSQL 是自由的並且所有源代碼都可以獲得。
PostgreSQL 的開發由參加 PostgreSQL 開發郵件列表的一個開發人員小組進行。目前的協調人是 Marc G. Fournier (scrappy@postgreSQL.org )。這個隊伍現在負責 PostgreSQL 的所有開發。

PostgreSQL 1.01 的作者是 Andrew Yu 和 Jolly Chen。還有許多其他人為移植,測試,調試和增強代碼做了大量貢獻。PostgreSQL 的最初起源 Postgres,是在加州大學伯克利分校的 Michael Stonebraker 教授的指導下,由許多研究生,本科生和編程職員完成的。
這個軟體最初在伯克利的名字是 Postgres。在 1995 年,當增加了 SQL 功能后,它的名字改成 Postgres95。在 1996年末,才改名為 PostgreSQL。目前最新的版本是8.1.5。

安裝PostgreSQL
我們先從www.postgresql.org下在最新版本的PostgreSQL,postgresql-8.1.5.tar.gz,解壓縮
# tar xzvf postgresql-8.1.5.tar.gz
# cd postgresql-8.1.5
按照快速安裝方法安裝
# ./configure
# gmake //一定要記得用 GNU make
# make install
# adduser postgres //同時也添加了postgres組
# mkdir /usr/local/pgsql/data
# chown postgres /usr/local/pgsql/data
# su - postgres
$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 & //啟動資料庫
$ /usr/local/pgsql/bin/createdb test //創建一個資料庫test
$ /usr/local/pgsql/bin/psql test //用交互 psql 工具進入資料庫test
$ 退出 psql ,用 \q 命令

設置環境變數 LD_LIBRARY_PATH
$ vi .bash_profile
加入
LD_LIBRARY_PATH=/usr/local/pgsql/lib
並在PATH=$PATH:$HOME/bin後面加入
:/usr/local/pgsql/bin
在 export 后加入LD_LIBRARY_PATH,並保存退出,執行
$ source .bash_profile

整體看起來應該是如下:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/usr/local/pgsql/bin
LD_LIBRARY_PATH=/usr/local/pgsql/lib
export PATH LD_LIBRARY_PATH
unset USERNAME

$ psql -l //查看現有資料庫
$ psql //進入psql交互模式
=# CREATE USER pureftpd WITH PASSWORD ' pureftpd ';
=# CREATE DATABASE pureftpd WITH OWNER = pureftpd TEMPLATE = template0 ENCODING = 'EUC_CN';
=#  \q
$ psql -l
        List of databases
   Name    |  Owner   | Encoding
-----------+----------+----------
postgres  | postgres | UTF8
pureftpd  | pureftpd | EUC_CN
template0 | postgres | UTF8
template1 | postgres | UTF8
test      | postgres | UTF8
(5 rows)
$ createlang plpgsql pureftpd
$ psql -U pureftpd
pureftpd=>
DROP TABLE users CASCADE;
DROP SEQUENCE users_id_seq CASCADE;
CREATE TABLE "users" (
    id integer DEFAULT nextval('users_id_seq'::text) NOT NULL,
    "User" character varying(16) NOT NULL default '',
    status smallint default 0,  //這個參數沒用上
    "Password" character varying(64) NOT NULL default '',
    "Uid" character varying(11) DEFAULT -1 NOT NULL,
    "Gid" character varying(11) DEFAULT -1 NOT NULL,
    "Dir" character varying(128) NOT NULL,
    "comment" text,
    ipaccess character varying(15) DEFAULT '*' NOT NULL,
    "ULBandwidth" smallint default 0,
    "DLBandwidth" smallint default 0,
    "QuotaSize" integer DEFAULT 0,
    "QuotaFiles" integer DEFAULT 0,
    ULRatio smallint default 0,
    DLRatio smallint default 0,
    create_date timestamp with time zone DEFAULT now() NOT NULL,
    modify_date timestamp without time zone DEFAULT now() NOT NULL
);


CREATE SEQUENCE users_id_seq;
CREATE INDEX users_index ON users (id,"User");
ALTER TABLE ONLY users ADD CONSTRAINT users_pkey PRIMARY KEY (id);
ALTER TABLE ONLY users ADD CONSTRAINT users_id_key UNIQUE (id, "User");

pureftpd=> \d
              List of relations
Schema |     Name     |   Type   |  Owner
--------+--------------+----------+----------
public | users        | table    | pureftpd
public | users_id_seq | sequence | pureftpd
(2 rows)

pureftpd=> INSERT INTO users VALUES (1, 'test', 1, md5('test'), '2000', '2000', '/var/ftp/test', '', '*', 0, 0, 0, 0, 0, 0, '2006-11-27 14:30:00', '2006-11-27 14:30:00');  

這樣,資料庫就建立完成了,然後我們配置pureftpd-pgsql.conf 文件
# vi /usr/local/pureftpd/etc/pureftpd-pgsql.conf
這個和我們前面看到的mysql的配置文件類似,修改也類似,我這裡就不贅述了。
注意:在pureftpd-pgsql.conf中密碼加密我用的是
PGSQLCrypt      md5
我沒有看到crypt或encrypt函數,如果大家有這方面知識的話,歡迎探討。
另外一個非常重要,你需要修改
PGSQLGetRatioUL SELECT ULRatio FROM users WHERE User='\L'
PGSQLGetRatioDL SELECT DLRatio FROM users WHERE User='\L'

PGSQLGetRatioUL SELECT "ULRatio" FROM "users" WHERE "User"='\L'
PGSQLGetRatioDL SELECT "DLRatio" FROM "users" WHERE "User"='\L'
格式,否則是不能認證的。

修改pure-ftpd.conf 文件,和mysql一樣,就改一條
PGSQLConfigFile               /usr/local/pureftpd/etc/pureftpd-pgsql.conf

重新啟動pureftpd程序后測試,和用mysql資料庫認證時的許可權相同。
《解決方案》

正在寫OPENLDAP方式,不過由於明天路考,心裡七上八下的,無法全心投入進去,明天上午等我考完再把文章貼出來吧,openldap是pureftpd使用大全里關於應用的最後一節了,希望大家在看完後有什麼要提問的儘管說啊。
《解決方案》

順利通過路考,這次很嚴,通過率只有40%,另外再說說openldap,我幾乎沒怎麼使用過它,所以正在研究,我希望我的東西不只能讓大家學到pureftp,還有其他相關的東西的概念也要掌握的,所以請大家給我一些時間讓我好好學習學習。

[ 本帖最後由 初學vb 於 2006-11-29 16:02 編輯 ]
《解決方案》

以下是Openldap安裝,具體的應用我已明白,但測試一直有問題,大家一起來補全吧!

OpenLDAP是一個非常強勁的網路資源訪問工具,使用 Berkeley DB (一個層次型資料庫,注意:與RDBMS不同) 存儲數據。

安裝OpenLDAP
先安裝berkeley DB,目前最新版本為4.5.20,下載地址是:
http://www.oracle.com/technology/software/products/berkeley-db/index.html
# tar xzvf db-4.5.20.tar.gz
# cd db-4.5.20/build_unix
# ./dist/configure
# make;make install
該軟體默認是安裝在/usr/local/BerkeleyDB.4.5目錄下。安裝完成後,要把
/usr/local/BerkeleyDB.4.5/lib的庫路徑加到/etc/ld.so.conf文件內,添加完成後執行一次ldconfig,使用配置文件生效。這樣編譯openldap時才能找到相應的庫文件。這樣資料庫就安裝完成了,接下來可以安裝openldap了。ld.so.conf是什麼東西?它就是系統動態鏈接庫的配置文件。此文件內,存放著可被Linux共享的動態鏈接庫所在目錄的名字(系統目錄/lib,/usr/lib除外),各個目錄名間以空白字元(空格,換行等)或冒號或逗號分隔。一般的Linux發行版中,此文件均含一個共享目錄/usr/X11R6/lib,為X window窗口系統的動態鏈接庫所在的目錄。 ldconfig是它的管理命令,具體操作方法可查詢man手冊,這裡就不細講了。
下載地址是:http://www.openldap.org/software/download/
目前釋放出的最新版本為2.3.30,穩定版本是2.3.27,由於不是生產伺服器,我們用2.3.30。
# wget ftp://ftp.u-aizu.ac.jp/pub/net/openldap/openldap-release/openldap-2.3.30.tgz
# tar xzvf openldap-2.3.30.tgz
# cd openldap-2.3.30
# env CPPFLAGS="-I/usr/local/BerkeleyDB.4.5/include" \
LDFLAGS="-L/usr/local/BerkeleyDB.4.5/lib" \
./configure --prefix=/usr/local/openldap --enable-ldbm
注意以上配置語句,要設置資料庫的include和lib路徑,否則在配置到資料庫相關內容時會提示Berkeley DB版本不兼容,並中斷配置。如果沒有--enable-ldbm選項,在make test時會提示ldbm找不到。為了減少出錯,還是加上為好。
# make depens
# make
# make test \\在make test階段要花費較長時間進行測試,共有44項,成不成就看這步的了。
# make install
這樣,我們就已經把openldap安裝到/usr/local/openldap目錄下。建議以源碼安裝的軟體都放到獨立的目錄下,不要放到軟體默認的目錄。好處是方便管理和控制,所有文件在統一的目錄下,卸載軟體只要刪除整個目錄就可以了。
《解決方案》

以上是安裝過程,沒什麼問題,主要是配置過程,誰有這方面的經驗請賜教。




[火星人 via ] 人來瘋技術文檔再現江湖之pureftpd使用大全已經有219次圍觀

http://www.coctec.com/docs/service/show-post-30742.html