用pam userdb進行vsftpd進行驗證

2021-04-02 20:14:00 字數 2563 閱讀 3725

通常,裝好

rhce as3/4

以後,vsftpd

服務都已經安裝完成。

如果安裝

rhce as3/4

時未選擇安裝

vsftpd

,你也可以使用

rpm –ivh vsftp…rpm

使用手動安裝,或者直接去

格式原始碼包,解包後使用

make/make install

即可vsftpd

預設使用

linux

系統賬號登入,維護管理不太方便,也容易引發安全問題。因此,建議採用

pam_userdb

或是pam_mysql

進行虛擬使用者配置。

a、建立乙個臨時檔案,如/etc/vsftpd/ftpusers,按下面的格式在此檔案中新增虛擬的使用者:

使用者名稱1密碼

1使用者名稱

2密碼2

b、然後用db_load命令生成pam_userdb認證所需的賬號檔案

db_load -t -t hash -f a.txt

/etc/vsftpd/vsftpd.login.db

如果作業系統的版本是as3以前的版本就不需要在/etc/vsftpd/vsftpd.login.db後加.db,如:

db_load -t -t hash -f a.txt /etc/vsftpd/vsftpd.login

這樣即可。c、

pam配置資訊 在

/etc/pam.d/

下建立乙個檔案,如

/etc/pam.d/ftp.vsftpd

,檔案內容如下

authrequiredpam_userdb.sodb=/etc/vsftpd/vsftpd.login

accountrequiredpam_userdb.sodb=

/etc/vsftpd/vsftpd.login

在以上語句中不要在vsftpd.login

後加

.db d

、編輯/etc/vsftpd.conf

通常,/etc/vsftpd.conf

中只放置一些基本的配置資訊(所有使用者公共性的配置),然後針對具體使用者做更詳細的配置,下面是乙個簡單的

vsftpd

配置示例。

listen=yes

listen_port=21

#禁止匿名登入

anonymous_enable=no

local_enable=yes

chroot_local_user=yes

guest_enable=yes

#所有虛擬使用者等同於ftp這個系統賬號的許可權

guest_username=ftp

#anon_world_readable_only=no

max_clients=100

max_per_ip=10

#與pam部分配置的檔名應匹配,這裡是

ftpd.vsftpd

pam_service_name=

ftp.vsftpd

#

指定每個虛擬使用者賬號配置目錄,這裡是

/etc/vsftpd/virtual

#如果需要對web這個賬號進行詳細配置,你需要創乙個#/etc/vsftpd/virtual/web的檔案,這個檔案的配置方法在下一步裡詳細說明。

user_config_dir=/etc/vsftpd/virtual/

#指定預設的ftp目錄,如果不設定,則預設的ftp目錄為ftp這個系統賬號的預設目錄(見/etc/passwd檔案內容)

local_root=/var/ftp

xferlog_enable=yes

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=yes

按照上面這個配置檔案,虛擬使用者可以正常的登入

ftp,在

ftp/var/ftp

。如果需要允許個別使用者上傳,或是更改使用者的

ftp根目錄指向,我們需要在

/etc/vsftpd/virtual

目錄下根據使用者名稱建立相應的配置檔案。以

web這個使用者賬號為例,其配置檔案

/etc/vsftpd/virtaul/web

的內容如下:

local_root=/home/web

write_enable=yes

anon_world_readable_only=no

anon_upload_enable=yes

anon_mkdir_write_enable=yes

如果是直接新增使用者想把使用者限制在自己的目錄裡,可以在vsftpd.conf最後加一行:

chroot_local_user=yes

用redis SETNX進行加鎖

命令介紹 當 key 不存在,將 key 的值設為 value,返回1說明值被設定,若給定的 key 已經存在,則 setnx 不做任何動作,返回0說明值已經存在。注 setnx 是set if not exists的簡寫。最近用python做簡訊平台時,需限制在同一時間禁止同一手機號連續傳送簡訊的...

用tr進行替換

tr只能通過stdin 標準輸入 而無法通過命令列引數來接受輸入 tr options set1 set2將來自stdin的輸入字元從set1對映到set2,然後將輸出寫入stdout 標準輸出 set1和set2是字元類或字符集。如果兩個字符集的長度不相等,那麼set2會不斷重複其最後乙個字元,直...

用cat進行拼接

cat命令,通常用於讀取 顯示和拼接檔案內容,但是它的能力遠遠不僅於此。例如 如何用一行命令將來自標準輸入以及檔案的資料給組合起來。通常做法 將stdin重定向到乙個檔案,然後再將兩個檔案組合到一起。不過,cat命令可以一次性搞定。一 實戰演練 cat表示concatence 拼接 用cat讀取檔案...