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 で Maven プロジェクトをより速くビルドする

目次I. 概要2. 従来の多段階イメージ構築3. Buildkitを使用してイメージをビルドする4....

Mac+IDEA+Tomcat の設定手順

目次1. ダウンロード2. インストールと解凍3. Tomcatを起動する4番目に、インストールが成...

Mysql SSHトンネル接続を使用するための基本的な手順

序文セキュリティ上の理由から、MySQL の root ユーザーはローカルにのみログインでき、外部ネ...

Docker Compose ネットワーク設定の説明

基本概念デフォルトでは、Compose はアプリケーション用のネットワークを作成し、サービスの各コン...

Dockerコンテナのホスト間マルチネットワークセグメント通信ソリューションの詳細説明

1. マックヴラン前回のブログ投稿で紹介した Docker コンテナのホスト間通信を実現するための ...

Webフロントエンドのパフォーマンス最適化

ウェブフロントエンド最適化のベストプラクティス: コンテンツWebフロントエンド最適化のベストプラク...

上部の固定ナビゲーションバーによって CSS アンカーの配置がブロックされる問題の解決方法

多くのウェブサイトでは、ユーザーが簡単に検索したり他のページに移動したりできるように、上部にナビゲー...

vue+elementuiは、共有箇条書きボックスの追加と変更の完全なコードを実装します。

目次1. 新しいII. 変更element-ui は、Ele.me のフロントエンド チームが開発者...

JavaScript の 7 つのデータ型の詳細な説明

目次序文:詳しい紹介:練習する:要約する序文: Python、Java、Cシリーズなど、すべての主要...

Bootstrap 3.0 学習ノートボタンスタイル

この記事では主にボタンのスタイルについて説明します。 1. オプション2. サイズ3. 活動状況4....

Kubernetes オブジェクトボリュームの詳細な使用方法

概要ボリュームは、さまざまなストレージ リソースを抽象化および仮想化したものです。ストレージ リソー...

MySQLインストーラがコミュニティモードで実行されている場合の解決策

今日、リモートデスクトップを実行してログインしているときにこのプロンプトを見つけました「MySQL ...

Three.js が Facebook Metaverse 3D ダイナミック ロゴ効果を実現

目次背景メタバースとは何ですか?成果を達成するトライアル 1: THREE.TorusGeometr...

AWSサーバーリソースを無料で使用する方法を教えます

AWS - Amazon のクラウド コンピューティング サービス プラットフォーム以前、AWS の...

Windows オペレーティング システムでポートの使用状況を照会およびクリアするプログラム

Windowsオペレーティングシステムでは、ポートの占有状況を照会し、ポートの占有状況をクリアするプ...