MySql 認証に基づく vsftpd 仮想ユーザー

MySql 認証に基づく vsftpd 仮想ユーザー

1. MySQLのインストール

yum -y mariadb-server をインストールします
systemctl enable --now mariadb.service

1.2 テーブル、データベース、ユーザーを作成する

mysql -e "CREATE DATABASE vsftpd;USE vsftpd;
CREATE TABLE users (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
名前 CHAR(50) BINARY NOT NULL,
パスワード CHAR(48) BINARY NOT NULL);
ユーザーにINSERT INTO(名前、パスワード)、値('qiu'、パスワード('123456'))。
ユーザーにINSERT INTO(名前、パスワード)、値('zhang'、パスワード('654321'));"
mysql -e "vsftpd.users から * を選択します。"

ここに画像の説明を挿入

1.3 リモート接続アカウントを作成する

mysql -e "'Pana#123' で識別されるユーザー vsftpd@'192.168.31.%' を作成します。"
mysql -e "vsftpd.* のすべての権限を vsftpd@'192.168.31.%' に付与します。"

2. FTPサーバーをインストールする

2.1 vsftpdをインストールする

yum インストール -y vsftpd

2.2 pam_mysqlをインストールする

yum -y インストール vsftpd gcc gcc-c++ mariadb-devel pam-devel を作成します
http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz をダウンロードしてください
tar xf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1/
./configure --with-pam-mods-dir=/lib64/security 
インストールする

2.2 PAM認証に必要なファイルを作成する

cat > /etc/pam.d/vsftpd.mysql<<EOF
認証が必要です pam_mysql.so ユーザー=vsftpd パスワード=Pana#123 ホスト=mysqlserver db=vsftpd テーブル=users ユーザー列=名前 パスワード列=パスワード crypt=2
必要なアカウント pam_mysql.so user=vsftpd passwd=Pana#123 host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
終了

注: 上記はREADMEドキュメントを参照しています
暗号方式:
0は暗号化なしを意味します
1はcrypt(3)暗号化を意味する
2はmysql password()関数を使用して暗号化することを意味します
3はmd5暗号化を意味します
4はsha1暗号化を意味します

2.3 vsftpdユーザーを作成する

mkdir -pv /data/ftproot/upload
useradd -d /data/ftproot -s /sbin/nologin -r vuser
setfacl -mu:vuser:rwx /data/ftproot/upload

2.4 vsftpd設定ファイルを変更する

/etc/vsftpd/conf.d/ に移動します。
sed -Eri "s#(pam_service_name=vsftpd)#\1.mysql#" /etc/vsftpd/vsftpd.conf
echo "guest_enable=YES" >> /etc/vsftpd/vsftpd.conf
echo "guest_username=vuser" >> /etc/vsftpd/vsftpd.conf

2.5 vsftpdサービスを再起動する

systemctl enable --now vsftpd

これで、MySql 認証に基づく vsftpd 仮想ユーザーに関するこの記事は終了です。MySql vsftpd 仮想ユーザーに関するその他の関連コンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • PureFTPd+Mysql+PHP_Manager で仮想ユーザーディスククォータ設定方法を実装する

<<:  Taobao ストアでズームインする効果は、スライドショーを使用する原理に似ています。

>>:  Nginx での SSL 証明書のインストールと展開手順の概要

推薦する

docker を使用して複数のネットワーク インターフェースを持つコンテナーを起動する方法の例

コンテナにネットワークインターフェースを追加する1 デフォルトのネットワークモードでコンテナを実行す...

JavaScript 関数型プログラミングの基礎

目次1. はじめに2. 関数型プログラミングとは何ですか? 3. 純粋関数(関数型プログラミングの基...

MySQL における主キーが 0 であることと主キーの自己選択制約の関係についての詳しい説明 (詳細)

序文この記事は主にMySQLの主キー0と主キー自己排除制約の関係を紹介し、皆さんの参考と学習のために...

Bash で山括弧を使用するその他の方法

序文この記事では、山括弧のその他の用途をさらに詳しく見ていきます。前回の記事では、山括弧 (<...

Vue でのルーティングガードの具体的な使用法

目次1. グローバルガード1.1 グローバルフロントガード1.2 グローバルポストルートガード1.3...

進捗バー効果を実現するJavaScript

この記事では、プログレスバー効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

CentOS 7 は Hadoop 2.10 の高可用性 (HA) をビルドします

この記事では、CentOS 7 で高可用性 Hadoop 2.10 クラスターを構築する方法を紹介し...

SQL ROW_NUMBER() および OVER() メソッドのケーススタディ

構文フォーマット: row_number() over(partition by grouping ...

Nginx を使用して DoNetCore を Alibaba Cloud にデプロイする方法

基本的な環境設定まずはご自身でドメイン名とサーバーを購入してくださいクラウドサーバーECSに基づいて...

年末ですが、MySQL パスワードは安全ですか?

序文:年末です。データベースを検査する時期ではないでしょうか?一般的に、検査では、パスワードの複雑さ...

オンラインMySQLオプティマイザの誤判断によって発生した低速クエリイベントを記録する

序文:非常に遅いクエリとリクエストのタイムアウトのアラートを受け取りました。メトリックを通じて My...

CSS3 を使用して楕円軌道の回転を実装するサンプルコード

最近、次のような効果を達成する必要がある最初は、CSS3D回転を使用して記述すると、次の効果しか得ら...

.html、.htm、.shtml、.shtm の違いと関連性について簡単に説明します。

ご存知のとおり、私たちが毎日閲覧する Web ページ、Web サイト、または Web ページには独自...

Vue プロジェクトを使用して複数のプロキシを構成する際の注意事項

Vue プロジェクトの開発プロセスでは、ローカル デバッグの利便性のため、通常、vue.config...

親コンテナの CSS 均等分割 (完全三分の一) の実装

親コンテナの幅は固定されています。子要素が親の幅を均等に分割するには、どのような方法がありますか?コ...