Ubuntu 14.04:由于所有权或模式错误,无法访问sftp

Ubuntu 14.04:由于所有权或模式错误,无法访问sftp,ubuntu,sftp,ownership,Ubuntu,Sftp,Ownership,我在通过sftp连接我的ubuntu 14.04服务器时遇到问题。每次尝试连接时,我都会收到以下信息/错误消息: Sep 18 15:04:47 localhost sshd[2917]: Accepted password for junperbo from 87.129.13.92 port 59333 ssh2 Sep 18 15:04:47 localhost sshd[2917]: pam_unix(sshd:session): session opened for user

我在通过sftp连接我的ubuntu 14.04服务器时遇到问题。每次尝试连接时,我都会收到以下信息/错误消息:

Sep 18 15:04:47 localhost sshd[2917]: Accepted password for junperbo from      87.129.13.92 port 59333 ssh2
Sep 18 15:04:47 localhost sshd[2917]: pam_unix(sshd:session): session opened for user junperbo by (uid=0)
Sep 18 15:04:47 localhost systemd-logind[2427]: Removed session 2.
Sep 18 15:04:47 localhost systemd-logind[2427]: New session 3 of user junperbo.
Sep 18 15:04:48 localhost sshd[2954]: fatal: bad ownership or modes for chroot directory component "/var/www/"
Sep 18 15:04:48 localhost sshd[2917]: pam_unix(sshd:session): session closed for user junperbo
我是管理Ubuntu服务器的新手,所以请在回答中详细说明。我知道这个问题可以用“chmod”或/和“chown”来解决,但是如何解决呢

请记住,我已经用这个子系统编辑了我的sshd_配置:

Subsystem sftp internatl-sftp
Match group ftpaccess
AllowUsers junperbo
ChrootDirectory /var/www/%u
PasswordAuthentication yes
x11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
具有ftp访问权限的用户应是ftpaccess组的成员。使用此命令添加用户:

sudo adduser USERNAME --ingroup ftpaccess --no-create-home --shell=/bin/false
“ls-la/var/www”给出了以下输出

total 20
drwxrwx---  5 root     root      4096 Sep 18 06:45 .
drwxr-xr-x 13 root     root      4096 Sep 16 16:09 ..
drwxr-xr-x  2     1002 ftpaccess 4096 Sep 18 06:27 domainx
drwxr-xr-x  2 root     root      4096 Sep 16 16:15 html
drwxr-xr-x  2 junperbo ftpaccess 4096 Sep 18 06:45 junperbo
其目的是简单地使用上面的命令将新用户添加到ftpaccess组。如果可能的话,我不想将每个新用户都添加到我的sshd_conf中

我怎样才能解决这个问题

谢谢,
Brotzka

有一个用于
sshd\u config(5)
的手册页面,其中包含所有您想要设置服务器的信息。对于您来说,chroot目录有一个重要部分:

ChrootDirectory 指定验证后chroot(2)要访问的目录的路径名在会话启动时,sshd(8)检查路径名的所有组件是否都是root所有的目录,任何其他用户或组都不能写入这些目录。在chroot之后,sshd(8)将工作目录更改为用户的主目录

这意味着您需要执行:

chown root:root /var/www
chmod go-w /var/www

有一个用于
sshd\u config(5)
的手册页面,其中包含所有您想要设置服务器的信息。对于您来说,chroot目录有一个重要部分:

ChrootDirectory 指定验证后chroot(2)要访问的目录的路径名在会话启动时,sshd(8)检查路径名的所有组件是否都是root所有的目录,任何其他用户或组都不能写入这些目录。在chroot之后,sshd(8)将工作目录更改为用户的主目录

这意味着您需要执行:

chown root:root /var/www
chmod go-w /var/www

“go-w”是什么意思?“chown go-w/var/www”返回了这个错误:“chown:invalid user:'go-w'”抱歉,收到了。您可以选择“chmod go-w/var/www”。现在我可以连接了,但我无法创建文件/文件夹,这使得ftp访问对meSorry毫无用处。我的意思是
chmod
。这不是你想要的。chroot目录必须具有上述属性。但是你可以在里面创建目录,用户可以写!“go-w”是什么意思?“chown go-w/var/www”返回了这个错误:“chown:invalid user:'go-w'”抱歉,收到了。您可以选择“chmod go-w/var/www”。现在我可以连接了,但我无法创建文件/文件夹,这使得ftp访问对meSorry毫无用处。我的意思是
chmod
。这不是你想要的。chroot目录必须具有上述属性。但是你可以在里面创建目录,用户可以写!