ドキュメント
ジェイルドSFTPユーザーを作成する方法(chroot jail)
AWSマーケットプレイスのユーザーにとって重要な注意:
Marketplaceサーバーでrootアカウントを有効にしていない場合は、sudoで以下のコマンドを実行する必要があります。 終了時に、sudo シェルと終了時に行う最も簡単な方法は、次のコマンドで開始します。
sudo su
終了するとき:
exit
ここは...
すべてのTurnKey アプライアンスは、SFTP事前構成と有効になっています。ただし、デフォルトでは、すべてのユーザーは、すべてのファイルシステムへのアクセスを読み取ります。 ファイルの読み込みを気にしない限り、デフォルトでは新しい非特権ユーザがホームディレクトリ以外の場所でアクセスを記述していないため、問題ではないかもしれません。 (通常、/home/USERNAME), と、明示的に書き込みアクセスを付与する場所。SFTP が SSH によって提供されるため、デフォルトでは SSH のシェルにログアウトすることもできます。 できることは、また制限されるが、これはまだ望ましくない。
そのため、SFTP ユーザが SFTP 経由でログインするだけを望むシナリオで、SSH ではなく、独自のディレクトリにロックされた状態をしたい場合 (つまり、SSH ではなく)。 "chroot jail" として知られ、SSH/SFTP を構成して、その操作を行えます。
以下に、コマンドを要求しました。スクリプト形式なので、コマンドラインにコピー/ペーストすることができます。 注意して、コマンドの idempotent を作るようにしました(つまり、) 何度も走っても、あまりはっきりとテストしていない。だから、その部分を再走すれば、予期しない結果が得られるかもしれない。 ユーザ関連のコマンドは、新しいユーザ(NEW_USERの値を変更)で再実行できますが、sftp_users グループとSSH configを追加すると、一度だけ実行する必要があります。 SSH 設定の設定を微調整する必要がある場合は、手動で設定ファイルを編集することをお勧めします。
一度実行
必要なグループを作成します。
groupadd sftp_users
新規ユーザー1回実行
新規ユーザーを追加 ここに「newuser」という名前をつけていますが、好きな名前は何でも使えますが、スペースや特殊な文字を使わずに、文字を下げるだけを強くお勧めしています。 追加ユーザーを追加したい場合は、「NEW_USER」の値を(下の最初の行で)変更します。
NEW_USER="newuser" useradd -G sftp_users -s /sbin/nologin $NEW_USER passwd $NEW_USER
パスワードを設定して新規ユーザーを確認したら、新規ユーザーアカウントの作成を完了します。
mkdir -p /home/$NEW_USER/files chown root:root /home/$NEW_USER chown $NEW_USER:$NEW_USER /home/$NEW_USER/files chmod 700 /home/$NEW_USER/files usermod -d /files $NEW_USER
一度だけ走る!
次に、SSH/SFTP を再構成する必要があります。SSH config ファイルを編集する必要があることを確認するには(/etc/ssh/sshd_config). 簡単にするには、スクリプトフォームに提供しました。 注意して、これだけは行わなければならない 一度に.:
CONF=/etc/ssh/sshd_config
SEARCH="Subsystem sftp \/usr\/lib\/openssh\/sftp-server"
NEW_LINE="Subsystem sftp internal-sftp"
sed -i "/^$SEARCH/ s|^|#|" $CONF
sed -i "/$NEW_LINE/d" $CONF
sed -i "/$SEARCH/a\\$NEW_LINE" $CONF
if ! grep "Match Group sftp_users" $CONF >/dev/null; then
cat >> $CONF <<EOF
Match Group sftp_users
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /home/%u
ForceCommand internal-sftp
EOF
fi
最終ステップはSSHを再起動します:
service ssh restart
SSH の設定をさらに調整する必要がある場合は、 config ファイルを手動で nano などのテキストエディタを使用して編集してください。 例:
nano /etc/ssh/sshd_config
ユーザーは自動的に自分のchrootedホームにsftpされます(/home/user/files).) 親ディレクトリ(/home/user))にcdを渡すことができますが、アクセスを読めば何も持っていません(そして、これ以上は閲覧できません)。
追加ノート: chrooted SFTP ユーザをもう少し柔軟にできるようにしたい場合 (例えば、scp や rsync を許可)、/sbin/nologin シェルを渡す代わりに、/sbin/nologin シェルをインストールします。 サーシュ (apt-get は rssh をインストール) して、/usr/bin/rssh シェルを 与えます。