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

Ubuntu 14.04: no sftp-access because of bad ownership or modes

我在通过 sftp 连接到我的 ubuntu 14.04 服务器时遇到问题。每次尝试连接时,我都会收到此 info/error 消息:

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" or/and "chown" 来解决,但是如何呢?

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

Subsystem sftp internatl-sftp
Match group ftpaccess
AllowUsers junperbo
ChrootDirectory /var/www/%u
PasswordAuthentication yes
x11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

具有 ftp 访问权限的用户应该是 ftp 访问组的成员。使用此命令添加用户:

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.

我该如何解决这个问题?

谢谢, 布罗茨卡

sshd_config(5) 的手册页,其中包含您要设置服务器的所有信息。对你来说,关于 chroot 目录的重要部分:

ChrootDirectory

Specifies the pathname of a directory to chroot(2) to after authentication. At session startup sshd(8) checks that all components of the pathname are root-owned directories which are not writable by any other user or group. After the chroot, sshd(8) changes the working directory to the user's home directory.

这意味着你需要执行:

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