MySql認証ベースのvsftpd仮想ユーザー
2022-01-06 07:06:02
1. Mysqlのインストール
yum -y install 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,
name CHAR(50) BINARY NOT NULL,
password CHAR(48) BINARY NOT NULL);
INSERT INTO users(name,password) values('qiu',password('123456'));
INSERT INTO users(name,password) values('zhang',password('654321'));"
mysql -e "select * from vsftpd.users;"
1.3 リモート接続用アカウントの作成
mysql -e "create user vsftpd@'192.168.31.%' identified by 'Pana#123';"
mysql -e "grant all on vsftpd.* to vsftpd@'192.168.31.%';"
2. FTPサーバーのインストール
2.1 vsftpdのインストール
yum install -y vsftpd
2.2 pam_mysqlのインストール
yum -y install vsftpd gcc gcc-c++ make mariadb-devel pam-devel
wget 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
make install
2.2 pam認証に必要なファイルの作成
cat > /etc/pam.d/vsftpd.mysql<<EOF
auth required pam_mysql.so user=vsftpd passwd=Pana#123 host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=Pana#123 host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt =crypt
EOF
注:上記はREADMEドキュメントを参照しています
crypt 暗号化方式。
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 -m u:vuser:rwx /data/ftproot/upload
2.4 vsftpdの設定ファイルの変更
mkdir /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仮想ユーザーについては、スクリプトハウスの過去記事を検索するか、引き続き以下の関連記事を参照してください。
関連
-
SQL基本クエリステートメント
-
MySQLインストールチュートリアル(Windows用)詳細
-
MySQLインデックスベースストレステストの実装
-
MySQLによる既存テーブルのパーティショニングの実装
-
[解決済み】DynamoDB : 提供されたキー要素がスキーマと一致しません。
-
mysql5.7のインストールと、無料・長期利用を目的としたNavicateの導入プロセスについて
-
MySQLの一般的な分割ライブラリおよび分割テーブルスキームの概要
-
SQLステートメントエラーです。オペランドには 1 つのカラムを含める必要があります [括弧を追加せずに複数のフィールドをクエリする
-
SQLException。オペランドは1列でなければなりません。
-
MySQLの起動エラー:ERROR 2003 (HY000)。localhost'上のMySQLサーバーに接続できない(10061)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQLデータベース・インデックスの左端一致の原則
-
MySQLとOracleの一括挿入SQLの汎用的な記述例
-
MySQLはこのようなUpdateステートメントを書くべきではありません
-
MysqlからElasticsearchにデータを同期させる方法を説明します。
-
[解決済み】MySQL エラー 1093 - FROM 句で更新のターゲット テーブルを指定できません。
-
[解決済み] SQLエラー。ORA-01861:リテラルは、フォーマット文字列01861に一致しません。
-
MySQLにおけるvarchar型とchar型の違い
-
Mysql がエラーを報告 オペランドには 1 つのカラムが含まれている必要があります。
-
'INSERT文はFOREIGN KEY制約「FK_TourismReservation_Users」と競合していました。その
-
MySQLでテーブルを削除します。親行が削除または更新できません: 外部キー制約に失敗しました。