红帽SFTP服务器对chroot目录的所有权不正确

我正在Red Hat 6.9上构build一个SFTP服务器(显然,我正在使用OpenSSH的FTP扩展)。 我遵循以下指南:

https://www.howtoforge.com/tutorial/how-to-setup-an-sftp-server-on-centos/

我configuration一切如何描述。 我使用的客户端操作系统是Windows 10.我已经用Putty的SFTP客户端和WinSCP进行了testing(我不相信我的问题是与客户端相关的)。 当我尝试连接时,系统会提示input用户名,然后input密码。 input密码后,会话立即closures。 / var / log / secure显示了这些相关的消息:

Aug 2 14:30:28 SFTP_Server sshd[4087]: pam_unix(sshd:session): session opened for user scott.ftp by (uid=0) Aug 2 14:30:28 SFTP_Server sshd[4089]: fatal: bad ownership or modes for chroot directory "/sftp/scott.ftp/data" Aug 2 14:30:28 SFTP_Server sshd[4087]: pam_unix(sshd:session): session closed for user scott.ftp 

要显示与教程相匹配的目录权限:

 [root@SFTP_Server data]# ls -alh / | grep sftp drwxr-xr-x 4 root root 4.0K Aug 2 12:37 sftp [root@SFTP_Server data]# ls -alh /sftp total 16K drwxr-xr-x 4 root root 4.0K Aug 2 12:37 . dr-xr-xr-x. 25 root root 4.0K Aug 2 12:35 .. drwxr-xr-x 3 root root 4.0K Aug 2 12:38 scott.ftp [root@SFTP_Server data]# ls -alh /sftp/scott.ftp/ total 12K drwxr-xr-x 3 root root 4.0K Aug 2 12:38 . drwxr-xr-x 4 root root 4.0K Aug 2 12:37 .. drwxrwx--- 2 scott.ftp sftpusers 4.0K Aug 2 12:38 data [root@SFTP_Server data]# ls -alh /sftp/scott.ftp/data/ total 8.0K drwxrwx--- 2 scott.ftp sftpusers 4.0K Aug 2 12:38 . drwxr-xr-x 3 root root 4.0K Aug 2 12:38 .. 

我不知道是什么让我这个想法尝试,但为了排除故障,我更改了“。”的权限。 目录:

 [root@SFTP_Server data]# pwd /sftp/scott.ftp/data [root@SFTP_Server data]# chown root:root . [root@SFTP_Server data]# ls -alh total 8.0K drwxrwx--- 2 root root 4.0K Aug 2 12:38 . drwxr-xr-x 3 root root 4.0K Aug 2 12:38 .. 

现在我尝试再次连接,我可以成功连接。 但是我不能列出目录或者制作目录或者其他的动作。 我在这里得到的错误是“权限被拒绝”。 虽然仍然通过SFTP连接,但在另一个SSH连接中,我更改了权限:

 [root@SFTP_Server data]# chown scott.ftp:sftpusers . [root@SFTP_Server data]# ls -alh total 8.0K drwxrwx--- 2 scott.ftp sftpusers 4.0K Aug 2 12:38 . drwxr-xr-x 3 root root 4.0K Aug 2 12:38 .. 

现在我可以在SFTP会话中创build目录和其他动作。 我退出SFTP会话并尝试连接,login失败,如上所述。

任何帮助是极大的赞赏。

现在我尝试再次连接,我可以成功连接。 但是我不能列出目录或者制作目录或者其他的动作。 我在这里得到的错误是“权限被拒绝”。

这在技术上不可能创build一个chroot ,它可以被连接用户写入(除非使用扩展ACL,在这种情况下,由于安全原因禁止使用扩展ACL)。

一般的build议是要么

  • chroot到上面的一个目录
  • data/创build另一个目录,该目录可以被该用户写入。