adduser
ツールを使用してシステムにユーザーを追加しました。次に、/etc/passwd
で/bin/bash
を/sbin/nologin
または/dev/null
に変更しようとしましたが、どちらも機能しませんでした。
対話型のシェルを取得するオプションがなく、sftp
を使用するだけのユーザーが欲しいです。方法はありますか?
私はそれが以前ここで尋ねられたことを知っていますが、誰も満足のいく応答をしなかったようです。
OpenSSH 4.9以降でこれを行うこともできます。これにより、セキュリティを強化するためにユーザーを追加でchrootできます。
あなたの/etc/ssh/sshd_config
:
Match User user
ChrootDirectory /home/user
ForceCommand internal-sftp
AllowTcpForwarding no
次に実行します:
chsh -s /bin/false user
chown root:root /home/user
mkdir /home/user/uploads
chown user /home/user/uploads
ユーザーは/ home/user/uploadsにのみ書き込むことができます。
https://debian-administration.org/article/590/OpenSSH_SFTP_chroot_with_ChrootDirectory
最善の方法は、mysecureshellを使用することです
http://mysecureshell.sourceforge.net/en/index.html
これでユーザーを簡単にchrootでき、必要に応じて帯域幅を制限することもできます。
-s /bin/false
を使用してユーザーを追加してシェルを無効にすることができますが、実際に設定する必要があるのはchrootされたsftpアカウントです。これにより、ユーザーは自分のディレクトリに「投獄」され、chrootディレクトリ外のファイルやディレクトリにアクセスしたり変更したりできなくなります。