我需要通过 ssh 向开发人员授予我们服务器的访问权限。我在 /home/miuser 上托管了他的网站,在 /home/ 上托管了一些其他 Web 应用程序……我的
Subsystem sftp internal-sftp
Match User miuser
ChrootDirectory /home/miuser/
ForceCommand internal-sftp
AllowTCPForwarding no
X11Forwarding no
我给用户设置了密码并赋予权限:
chown 755 /home/miuser
chmod root:root /home/miuser
当我尝试通过 ssh 与该用户连接时,出现“管道损坏”错误,如果我检查 /var/log/secure,我会看到以下信息:
fatal: bad ownership or modes for chroot directory component "/home/"
我读到这个问题是权限问题,即所有父文件夹必须属于 root 才能使 sftp chroot 正常工作。我家里有一堆应用程序,其中一些不属于 root。有什么办法可以解决这个问题吗?
提前致谢
更新:/home 权限:
[root@localhost ~]# ls -la /home/
total 27024
drwxr-xr-x 17 apache root 4096 may 16 2013 .
drwxr-xr-x 27 root root 4096 nov 19 10:06 ..
drwxr-xr-x 7 root root 4096 may 4 2012 [foldername]
drwx------ 2 golaizola davfs2 4096 ene 25 2011 [foldername]
drwxr-xr-x 7 root root 4096 mar 5 2012 [foldername]
drwxr-xr-x 5 root root 4096 ene 17 2013 [foldername]
drwx------ 5 golaizola golaizola 4096 oct 19 2009 [foldername]
drwxr-xr-x 20 root root 4096 abr 9 2013 [foldername]
drwxr-xr-x 9 root root 4096 nov 21 2012 [foldername]
drwxrws--- 8 moodlegureak moodlegureak 4096 nov 12 2012 [foldername]
drwxrws--- 7 portalgureak portalgureak 4096 abr 13 2012 [foldername]
drwxrws--- 5 srmgureak srmgureak 4096 nov 24 2010 [foldername]
-rw-r--r-- 1 apache root 87730 ene 31 2011 [foldername]
drwxrwxrwx 9 root root 4096 mar 3 2011 [foldername]
drwxr-xr-x 20 root root 4096 abr 9 2013 miuser
[root@localhost ~]# ls -ld /home
drwxr-xr-x 17 apache root 4096 may 16 2013 /home
chroot 文件夹是最后一个。
答案1
看那边:https://wiki.archlinux.org/index.php/SFTP-chroot#Troubleshooting
您的 /home 必须由 root 拥有,而不是 apache 拥有。
如果由于某种原因我们无法更改 /home 权限(但我可以看到您无法更改的任何原因,除非 Apache HTTPD 服务器需要在 /home 中创建文件):
- 或者为此类用户使用另一个“/home”(例如 /chroot 或 /chroot/home)
- 或者你也可以使用支持 SFTP 的 ProFTPD(和 DefautRoot 指令)