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 証明書のインストールと展開手順の概要

推薦する

ウェブデザインにおけるポップアップウィンドウとフローティングレイヤーのデザイン

従来のソフトウェアから Web ウェアへの段階的な移行の傾向の中で、デザイン パターンとテクノロジは...

CentOS での MySQL ワークベンチのインストールと設定のチュートリアル

この記事では、MySQL Workbenchのインストールと設定のチュートリアルを参考までに紹介しま...

基本的な HTML ディレクトリの問題 (相対パスと絶対パスの違い)

相対パス - ファイルを参照する Web ページの場所に基づいて確立されたディレクトリ パス。そのた...

Ubuntuはカーネルモジュールをコンパイルし、その内容はシステムログに反映されます。

目次1.Linuxログインインターフェース2. コードを書く3. Makefileを書く4. コンパ...

MySql テーブル、データベース、シャーディング、パーティショニングの知識ポイントの紹介

1. はじめにデータベース内のデータ量が一定レベルに達すると、システムパフォーマンスのボトルネックを...

同じドメイン名を持つ Nginx プロキシのフロントエンドとバックエンドの分離プロジェクトの完全な手順

フロントエンド プロジェクトとバックエンド プロジェクトは分離されており、フロントエンドとバックエン...

フォーム送信ページの更新がジャンプしない

1. ソースコードの設計コードをコピーコードは次のとおりです。 <!DOCTYPE html ...

CSS を使用して正方形の div を実装する 2 つの方法

目標: 辺の長さが等しい正方形を作成する方法 1: 単位 vw を使用する (ps これが最も簡単な...

MySQLで論理SQLを置き換える際の落とし穴を回避する方法の詳細な説明

重複キーの置換と挿入の違い置換の使用法競合がない場合、挿入と同等となり、他の列のデフォルト値が使用さ...

Angularルーティングサブルートの詳細な説明

目次1. サブルート構文2. 例1. 2つの新しいコンポーネントを作成し、その内容を変更する2. ル...

CSS3 を使用した背景ぼかし効果の 3 つの例

導入から始めず、いきなり本題に入りましょう。通常の背景ぼかし効果は次のとおりです。 プロパティを使用...

異なるデータベースで DROP TABLE を書く方法

異なるデータベースで DROP TABLE を書く方法1.MySQL 存在する場合はテーブルを削除 ...

NavicatがMySQLに接続すると、10060、1045エラーとmy.iniの場所が報告されます。

Navicat は、データベースに接続するときにエラー 10060 および 1045 を報告します...

アプレットにおけるwx.getUserProfileインターフェースの具体的な使用

最近、WeChatミニプログラムは、監査ミニプログラムのwx.loginおよびwx.getUserI...

MySql クイック挿入数千万の大規模データの例

データ分析の分野では、データベースは私たちの強力な助けとなります。クエリ時間を受け入れるだけでなく、...