程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 借寶地,存放一下vsftpd+mysql的虛擬用戶配置記錄

借寶地,存放一下vsftpd+mysql的虛擬用戶配置記錄

編輯:關於PHP編程




借寶地,存放一下vsftpd+mysql的虛擬用戶配置記錄
解決方法
1.安裝vsftpd yum install vsftpd就ok
2.需要pam_mysql組件,在這裡
3.編譯參數看下INSTALL 我這裡用了一個參數就 withmysql=/usr/local/amp/mysql5
4.建立mysql數據庫、表 db=vsftpd table=users(username,userpass,homedir),建立對應mysql帳戶 vsftpd vsftpd(當然也可以用root或者現有帳戶)
5.修改/etc/pam.d/vsftpd 新增兩行 auth required /usr/lib/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=username passwdcolumn=userpass

account required /usr/lib/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=username passwdcolumn=userpass


復制代碼6.建立用來存放虛擬用戶配置文件的文件夾,我的在/etc/vsftpd/virtual,裡面放了一個配置文件模板叫_tpl write_enable=YES

anon_mkdir_write_enable=YES

anon_upload_enable=YES

anon_other_write_enable=YES


復制代碼意思是,就差一個homedir了
7.打開/etc/vsftpd/vsftpd.conf,設置修改為 #一定要有

listen=YES

#listen_port=10021

connect_from_port_20=YES

#服務器提示

ftpd_banner=Welcome to My FTP server.

#關閉匿名訪問

anonymous_enable=NO

local_enable=YES

write_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

chroot_local_user=YES

guest_enable=YES

#虛擬用戶所使用的帳號,如果這裡是root,那你傳上去的文件所有者也是root,

#一般安全情況下,請設立單獨的vsftpd的用戶,就像mysql的獨立訪問用戶一樣

guest_username=root

pasv_min_port=30000

pasv_max_port=30999

#這裡對應著/etc/pam.d/下的那個vsftpd 見第6條

pam_service_name=vsftpd

#虛擬用戶配置文件目錄

user_config_dir=/etc/vsftpd/virtual

xferlog_enable=YES

#xferlog_file=/var/log/vsftpd.log

xferlog_file=/data1/logs/vsftpd/vsftpd.log

anon_world_readable_only=NO

anon_umask=022

file_open_mode=0777

local_umask=022

#20080811 last modify

data_connection_timeout=120


復制代碼要注意這裡,local_umask和anon_umask的值
你的文件上傳之後的權限值 = 777 local_umask,也就是,上例中的022,你上傳之後,文件權限會是755
8./etc/vsftpd/vsftpd restart
9.我這裡還有兩個shell,但是我的bash很笨,if判斷會有錯誤
增加ftp用戶 #!/bin/bash

clear

echo "******************************"

echo "* Add vsftpd User Script *"

echo "* AnVy 2008.0516 *"

echo "******************************"



echo "Enter user account:[Enter Key]"

read username

echo "Username is $username, Now Enter the password:[Enter Key]"

read userpass

echo "Asign the user's ftp home directory:[Enter Key]"

read home

echo "create this dir?[y/n]:"

read $cd

if [ $cd="y" ]

then

mkdir $home

fi

#chown R www:www $home

/usr/local/amp/mysql5/bin/mysql uvsftpd pvsftpd<
use vsftpd;

replace into users (username,userpass,homedir) values ('$username','$userpass','$home');

\q

EOF

cp /etc/vsftpd/virtual/_tpl /etc/vsftpd/virtual/$username

#在用戶配置文件追加家目錄配置參數

echo "local_root=$home" >> /etc/vsftpd/virtual/$username

echo "$username with homedir= $home was added."


復制代碼ftp帳戶列表以及刪除用戶 #!/bin/bash

clear

echo "******************************"

echo "* Add vsftpd User Script *"

echo "* AnVy 2008.0516 *"

echo "******************************"

echo "UserList:"

/usr/local/amp/mysql5/bin/mysql uvsftpd pvsftpd<
use vsftpd;

select * from users;

\q

EOF

echo "Delete user account:[Enter Key]"

read username

/usr/local/amp/mysql5/bin/mysql uvsftpd pvsftpd<
use vsftpd;

delete from users where username='$username';

\q

EOF

unlink /etc/vsftpd/virtual/$username

echo "$username without homedir was removed."


復制代碼以上設置,可以簡單實現我的虛擬用戶分配,我也不太懂什麼高深的設置
這樣就可以實現我輸入用戶名,密碼,家目錄,就能開vsftpd帳戶了,而且文件上傳之後權限是755, 完全可用。

[ ]
附件: 您所在的用戶組無法下載或查看附件

D8888D回貼內容
\q請一定要換成半角
D8888D回貼內容
不錯,我配置的時候可沒弄這麼自動加賬戶,直接就手動配置的,反正這東西也不總變。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved