端末アクセスを無効にしますが、FTPは維持します。

端末アクセスを無効にしますが、FTPは維持します。

私はRaspberry Pi3とVSFTPDを使用してFTP経由でディレクトリを共有しています。これにより、カメラがディレクトリに接続して写真を転送できます。

また、FileZillaや他のツールを使用している場合は、専用フォルダ以外のファイルを閲覧できないように、単純なユーザーとパスワードを作成し、ディレクトリをrootとして指定しました。

問題は、ユーザーを使用して端末(モニター、キーボードなど、SSHなし)を介してログインすると、どこにいても自由にアクセスできることです。これが起こらないようにする方法はありますか?
私は努力しました:

usermod --expiredate 1
passwd -l
usermod -s /sbin/nologin

ただし、これによりアカウントが利用できなくなります。
Jail / chrootエンドユーザーを検索すると、「ssh」の結果のみが表示されます。

どんな助けでも大変感謝します。

編集する

アカウントが利用できないと言うと、端末経由のログインをブロックしますが(私が望むものです)、FTP経由の接続もブロックするという意味です。

編集2

要点は、1人のユーザーに対してすべてのもの(FTPフォルダを除く)を無効にすることです。そのユーザーが何もする必要はありません。
他のプロトコルなしでFTPのみを使用してすべて/ほとんどのWi-Fiカメラを見つける必要がありますが、FTPが最善の選択です。
SFTPとSSHが無効になっています。

ベストアンサー1

特定のユーザーのSSH(&を含む)ログインを無効にするには、scpデーモンを追加して再起動します。sftpDenyUsers <name of the ftp-only user>/etc/ssh/sshd_configsshd

FTP専用アカウントを使用してローカルにログインする可能性は残りますが、システムが安全な場所にある場合は、FTP転送失敗の問題を解決するのに実際に役立ちます。


FTP専用のユーザーアカウントを作成する従来の方法は、ユーザーのシェルをに設定するか、入力を許可せずにすぐに終了する同様のプログラムを設定することです/sbin/nologin/bin/falseまた、プログラムをリストします。/etc/shells

パスワードの確認後にFTPデーモンが実行する一般的な確認は、「このユーザーは?にリストされているシェルを持っていますか/etc/shells?」です。最新のシステムでは、FTPデーモン自体ではなくPAM構成を介してこれを実行できます。

有効な「何もしない」シェル(=にリストされています)でユーザーを設定すると、その/etc/shellsアカウントはFTPの使用には有効ですが、実行にシェルを必要とするすべての使用は失敗します。なぜなら、「何もしない」プログラムが実行されるからです。実際のシェルでは、ユーザーの入力を受け付けずに終了します。

注:システムにシステムパスワードデータベースを使用し、シェルの実行に基づいていない他のネットワークサービス(IMAPやPOP3メールサーバーなど)がある場合は、「FTPのみ」を明示的に拒否するようにそのサービスを構成する必要があります。 。ユーザー。

おすすめ記事