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

推薦する

React Fragment の紹介と詳しい使い方

目次序文フラグメントの動機React Fragment の紹介と使用<React.Fragme...

DockerコンテナのライフサイクルアーキテクチャとVMとの違いについて詳しく説明します。

コンテナのライフサイクルコンテナランタイムのライフサイクルコンテナは、分離特性を持つプロセスのセット...

CSS3 テキストアニメーション効果

効果 html <div class="sp-container">...

MySQL 8.0.15 のインストールと設定のグラフィックチュートリアル

この記事ではMySQL 8.0.15のインストールと設定方法を参考までに記録します。具体的な内容は以...

Alibaba Cloud イメージリポジトリを使用して外部 Docker イメージを構築する方法の詳細な説明

Alibaba Cloud Image Repositoryを使用して外部イメージをダウンロードする...

Docker-compose を使用して ELK をデプロイするためのサンプル コード

環境ホストIP 192.168.0.9 Docker バージョン 19.03.2 docker-co...

Node.js における npx コマンドの使用法とシナリオ分析

npx 使用チュートリアル今晩、 Vue-Cli勉強していたところ、ふと最新の@4.xxバージョンを...

Vue コンポーネント値転送中のデータ損失の分析と解決

序文前回の記事では、JavaScript の 2 つのデータ型、基本型と参照型、および参照型の浅いコ...

MySQL ページング制限の実用的な最適化

序文クエリ ステートメントを使用する場合、多くの場合、データの最初の数行または中間行を返す必要があり...

Vmware + Ubuntu18.04 に Hbase 2.3.5 をインストールするための詳細なチュートリアル

序文前回の記事では Hadoop をインストールしましたが、今回は Hbase をインストールします...

EF (Entity Framework) の挿入または更新データ エラーの解決方法

エラー メッセージ:ストアの更新、挿入、または削除ステートメントが予期しない行数 (0) に影響を与...

2 級コンピュータ試験のための MySQL の知識ポイントとよく使用される MYSQL コマンド

2級コンピュータ試験のMySQL知識ポイントの基礎、一般的なMYSQLコマンドは次のとおりです。よく...

DockerHubイメージリポジトリの使い方の詳しい説明

これまで使用していたイメージはすべて DockerHub パブリック リポジトリから取得していました...

効率的な視覚化Nginxログ表示ツール

目次導入インストール表示フィールドフィルターソートキー導入Rhit は、標準フォルダー (gzip ...