この場所を利用して、vsftpd+mysql の仮想ユーザー設定レコードを保存します
解決策
1. vsftpd をインストールします yum install vsftpd でOKです
2. ここに pam_mysql コンポーネントが必要です
3. コンパイルパラメータ INSTALL を見てください。ここでは withmysql=/usr/local/amp/mysql5
という 1 つのパラメータを使用しました。
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 の 2 行を追加します
アカウントが必要です /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 が 1 つだけ欠落していることになります
7. /etc/vsftpd/vsftpd.conf を開き、設定を #must have に変更します
聞いてください=はい
#listen_port=10021
connect_from_port_20=はい
#サーバーヒント
ftpd_banner=私の FTP サーバーへようこそ
#閉じる匿名アクセス
anonymous_enable=いいえ
local_enable=YES
write_enable=いいえ
anon_upload_enable=いいえ
anon_mkdir_write_enable=いいえ
anon_other_write_enable=いいえ
chroot_local_user=YES
guest_enable=YES
#仮想ユーザーが使用するアカウントが root の場合、アップロードするファイルの所有者も root になります。
#通常のセキュリティ条件では、mysql の独立アクセス ユーザーと同様に、別の vsftpd ユーザーを設定してください
ゲストユーザー名=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=いいえ
anon_umask=022
file_open_mode=0777
local_umask=022
#20080811 最終変更
data_connection_timeout=120
コードをコピーする際は、local_umaskとanon_umaskの値に注意してください
アップロード後のファイルのパーミッション値 = 777 local_umask、つまり上記の例では 022、アップロード後のファイルのパーミッションは 755 になります
8./etc/vsftpd/vsftpd 再起動
9. ここにはまだシェルが 2 つありますが、私の bash は非常に愚かなので、if 判定でエラーが発生します
FTP ユーザー #!/bin/bash を追加します
クリア
エコー「****************************」
echo "* vsftpd ユーザー スクリプトを追加 *"
エコー「*AnVy 2008.0516 *」
エコー「******************************」
echo "ユーザーアカウントを入力してください:[Enterキー]"
ユーザー名を読む
echo "ユーザー名は $username です。パスワードを入力してください:[Enter キー]"
ユーザーパスを読む
echo "ユーザーの FTP ホーム ディレクトリを割り当てます:[Enter キー]"
家で読んでください
echo "このディレクトリを作成しますか?[y/n]:"
$cd を読む
if [ $cd="y" ]
それでは
mkdir $home
ふぃ
#chown R www:www $home
/usr/local/amp/mysql5/bin/mysql uvsftpd pvsftpd
vsftpdを使用します;
ユーザー (username,userpass,homedir) の値に置き換えます ('$username','$userpass','$home');
\質問
終了
cp /etc/vsftpd/virtual/_tpl /etc/vsftpd/virtual/$username
#ホームディレクトリ設定パラメータをユーザー設定ファイルに追加します
echo "local_root=$home" >> /etc/vsftpd/virtual/$username
echo "$username と homedir= $home が追加されました。"
コード FTP アカウント リストをコピーし、ユーザー #!/bin/bash を削除します
クリア
エコー「******************************」
echo "* vsftpd ユーザー スクリプトを追加 *"
エコー「* AnVy 2008.0516 *」
エコー「******************************」
「ユーザーリスト:」をエコーします
/usr/local/amp/mysql5/bin/mysql uvsftpd pvsftpd
vsftpdを使用します;
ユーザーから * を選択;
\質問
終了
echo "ユーザーアカウントを削除:[Enterキー]"
ユーザー名を読む
/usr/local/amp/mysql5/bin/mysql uvsftpd pvsftpd
vsftpdを使用します;
username='$username';
のユーザーから削除します
\質問
終了
/etc/vsftpd/virtual/$username のリンクを解除します
echo "ホームディレクトリのない $username は削除されました。"
上記のコード設定をコピーすると、仮想ユーザーの割り当てを簡単に実装できます。詳細な設定についてはよくわかりません
。
このようにして、ユーザー名、パスワード、ホーム ディレクトリを入力して vsftpd アカウントを開くことができ、ファイルがアップロードされた後の権限は 755 になり、完全に使用できるようになります。
[ ]
添付ファイル: あなたのユーザーグループは添付ファイルをダウンロードまたは表示できません
D8888Dさんの返信内容
\q必ず半角に変更してください
D8888Dさんの返信内容
はい、私が設定したときは、このように自動的にアカウントを追加したわけではなく、手動で設定しただけです。