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

和是必需的PasswordAuthenticationX11Forwarding因为它们之前分别设置为 no 和 yes

我尝试重新启动系统并更新软件包但没有成功。

更新 15/12/2020

这是当我尝试在 /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

您无法在目标用户的主目录中创建目录,因为它(正确地)由 root 拥有,并且只有 root 有权写入该目录。这就是您创建share子目录的原因 - 您可以在其中创建和删除文件/目录。

(这不是 Windows;重新启动很少会使系统执行不同的操作。重新启动对于 Windows 如此有效有充分的理由,但它们超出了本文的范围。)

相关内容