sftp chroot "ディレクトリを作成できませんでした: 失敗しました"

sftp chroot "ディレクトリを作成できませんでした: 失敗しました"

Raspberry Piでchrootを使用する単純なsftpサーバーの設定に関連する問題で問題が発生しています。特にsftpサーバーに接続してフォルダを作成しようとすると、「ディレクトリを作成できませんでした:失敗しました」というメッセージが表示されます。

sftp_usersグループにandrea_shareというユーザーを作成しました。

# adduser --no-create-home andrea_share
# usermod -a -G sftp_users andrea_share
# usermod --shell /usr/bin/nologin andrea_share

/dir_sftp/andrea/share次に、次の権限を使用してsftpフォルダを作成しました。

drwxr-xr-x 3 root root 4096 XXX XX XX:XX dir_sftp
drwxr-xr-x 3 root root 4096 XXX XX XX:XX andrea
drwxr-xr-x 3 andrea_share sftp_users 4096 XXX XX XX:XX share

sshd_configファイルが次のように修正されました。

# Subsystem   sftp /usr/lib/openssh/sftp-server
Subsystem   sftp internal-sftp

そしてファイルの終わりに

Match User andrea_share
    ChrootDirectory /dir_sftp/andrea
    ForceCommand internal-sftp
    PasswordAuthentication yes
    AllowTCPForwarding no
    X11Forwarding no

以前はそれぞれ no と yes に設定されていたPasswordAuthenticationため必須です。X11Forwarding

システムを再起動してパッケージを更新しようとしましたが、成功しませんでした。

アップロード日:2020年12月15日

これは/shareにフォルダを作成しようとしたときに表示される結果です。

sftp> pwd
Remote working directory: /share
sftp> mkdir ./test
Couldn't create directory: Failure

また、/shareフォルダからファイルを削除することはできますが、ファイルをアップロードすることはできません。以下は私が得た出力の例です。

sftp> put ./test.jpg
Couldn't write to remote file "/share/test.jpg"

そのうち test.jpg は私のローカルコンピュータのテスト写真です。

答え1

問題が解決しました。誤ったrsync設定のため、sftpフォルダがあるドライブがいっぱいになりました。ドライブを清掃すると、SFTPサーバーが正常に動作します。申し訳ありません。これは私の間違いです。

答え2

ターゲットユーザーのホームディレクトリは、ルートが(正しく)所有しており、ルートのみがそのディレクトリに書き込む権限を持っているため、ディレクトリを作成できません。これがshareサブディレクトリを作成する理由です。サブディレクトリからファイル/ディレクトリを作成および削除できます。

(これはWindowsではありません。再起動のためにシステムが他のタスクを実行することはほとんどありません。Windowsで再起動がうまく機能する理由はありますが、この記事の範囲外です。)

関連情報