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
我在通过 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