createSftp.sh

#!は/ usr / binに/のenv bashの
######################################### ##############################

#目的:このスクリプトのSFTP新しいサービスやアカウントの
#バージョン:v1.0をする
#著者:[email protected]
#最近修正:2019年8月26日

################################# ######################################
IP = $(腹腔A | grepを、株式会社参加無料| awkの{$ 2印刷} '|のawk -F "/"')」{$ 1}印刷

#あなたがSFTPグループがない場合は、SFTPグループ構築
[[$(はgrepのSFTPの/ etc /グループ|トイレ-l)-ge 1]] || groupaddのSFTPを

新しいユーザー名#は、
"(\ nは$ ------------- -eエコー ----%のS:%M「%のH日付+%Y-%M-%d)を" ------------------------ \ n "は

-p読んで「新しいSFTPのユーザー名を入力してください:」FTPUSERを

その後、; | [。-ge 1] [$(WC -l $ {FTPUSER} grepを/ etc / passwdファイル)] IF
。-eエコー"$ {FTPUSER}は既存のアカウントには、知っていてください"
。1番出口
、他
#useraddの-g SFTP -s / binに/ FTPUSERは偽$ {}へ
のuseradd -g SFTP FTPUSER} $ {
Fiの

#ランダムなパスワードをユーザのために生成され、ファイルに保存
PASSWD = $(文字列は/ dev / urandomの| '[[:alnum:]]を' -oグレップ| 12 -nヘッド| trは-d "\ n"は、エコー)

エコー-e "$ {passwdの}" | passwdの--stdin $ {FTPUSER} 2>&1>を/ dev / null

エコー-e "$ {FTPUSER} $ {passwdの}" >>〜/ .Secret.db

#建立SFTP目录
場合は[!-d /データ/ SFTP];次いで
ます。mkdir -p /データ/ SFTPの
chownをルート:ルート/データ/ SFTP &&のchmod 755 /データ/ SFTPの
Fiを

#SFTPユーザのログイン書き込み可能なディレクトリを作成した後、

MKDIR -p /データ/ SFTP / $ {FTPUSER} &&のchownルート:SFTP /データ/ SFTP / $ {} FTPUSER

USERMOD -d /データ/ SFTP / $ {FTPUSER} $ {} FTPUSER

MKDIR -p /データ/ SFTP / $ {FTPUSER} /アップロード&&のchown -R $ {FTPUSER} / SFTP / $ {FTPUSER} /アップロードSFTP /データ

chmodの755 /データ/ SFTP / $ {FTPUSER} /アップロード

#修正/ etc / ssh / sshd_configファイル
IF [[$(grepの"サブシステム^#"は、/ etc / ssh / sshd_config | WC -l)-ge 1]。];その後、
エコー
、他の
sedの-i「S / ^サブシステム/#サブシステム/ G「は、/ etc / ssh / sshd_config
エコー-e「\ N- \
サブシステムSFTPの内部には、INFO-SFTP -l -f指定したシステムを使用してAUTH#回線サービスは、SFTP-sftpの内部くる
グループ#SFTPとのマッチラインをユーザー・グループと一致する
ChrootDirectory /データ/ SFTP /%U # 下のユーザーのみ/データ/ SFTP活動するように、使用するルートディレクトリ/データ/ SFTPのCHROOTを指定するには、ユーザー
のAllowTcpForwardingなし#2ライン、あなたがこれをしたくない場合は、ユーザーは、ポート転送を使用することができ、あなたは、追加、または削除
X11Forwardingにノー#2行を、あなたはそのユーザがポート転送を使用することができるようにしたくない場合は、追加、または削除
AUTHの-f ForceCommand内部-SFTP -l INFOを #はSFTPを指定しましたコマンド
「>>は、/ etc / ssh / sshd_config

サービスを再起動sshdを
Fiを提供して

#关闭SELinuxの
場合は、[$(はgrep "^ SELINUX ="の/ etc /のsysconfig / selinuxを| awkの-Fは、 '{$ 2印刷}' "=")= '無効'!];その後、
SED -iさん/ ^ SELINUX =強制/ SELINUX =無効/ G」の/ etc /のsysconfig / selinuxを
setenforce 0
Fiの

#SFTP展開レポート結果

エコー-e "アカウント情報配信モード:"
エコー-e「\
033 \ [1M \ 033 [31M 1、033 [1M \ 033 [33メートルプッシュメッセージ\先のメールボックスへと033 [0メートル\ターミナルに表示される。
033 \ [ \ 033 [31メートル2 \ 1メートル、 033 \ 033 [1メートル[33メートルだけ033 \ターミナルに表示され、[0メートル
"
「をお届けします。select -p読みます"

IF [$ {} ==配信し、」1' ];その後、
『メールボックスのアカウント情報が(使用スペースが複数のアカウントを分離する場合)受信する必要を入力してください:』 -p読む-a MAILUSER

エコー-e「\ n個のSFTPは、アカウントの\ n個の確立以下の
アカウントを:\ 033 [1メートル033 [\ \ 31メートルの$ {FTPUSER} 033 [0メートル\ nは
パスワード:033 \ [1メートル033 [\ 033 \ 31メートルの$ {passwdの} [ 0メートル\ n個の
データ:\ 033 [1メートル033 [\ 31メートル/データ/ SFTP / $ {FTPUSER} / \アップロード033 [0メートル\ nは
自分のアカウントのパスワードを忘れてしまった場合、あなたは〜/ .Secret.dbのコンテンツを表示することができます\ N-」

エコー-e "サーバー:$ {IPアドレス} \ nsftpアカウント:$ {FTPUSER} \ nsftpパスワード:$ {passwdの} \ N \ N 。パスワードが正しくないか不足しているなど、管理者に連絡してください" |メール-s「新しいSFTP情報"" $ {MAILUSER [@] } "

エコー-e「\ nはアカウント情報は、以下のメールアドレスにプッシュされています:\ nを」

用((i = 0; iは$ <{#MAILUSER [@]}; iは++))を行うエコー-e "$ {MAILUSER [I]}"。行わ;

エコー-e「」

elif [$ {}配信== '2'];次に、

エコー-e「\ n個のSFTP確立以下のアカウントの\ nの
アカウント:\ 033 [1メートル033 [\ 033 \ 31メートルの$ {FTPUSER} [0メートル\ N
パスワード:\ 033 [033 \ 1メートル[31メートルの$ 033 \ {passwdの} [0メートル\ n個
のデータ:033 \ [1メートル\ 033 [ 31メートル/データ/ SFTP / $ {FTPUSER} / 033 \アップロード[0メートル\ nは
自分のアカウントのパスワードを忘れた場合あなたは〜/ .Secret.dbコンテンツを\ n "見ることができます

されます

 

おすすめ

転載: www.cnblogs.com/weiman3389/p/11413051.html