Pat*_*eau 8 linux openssh sftp chroot ubuntu
我有一个网站,我想添加一些对子文件夹的限制访问。为此,我决定将 CHROOT 与 SFTP 一起使用(我主要遵循此链接:http : //shapeshed.com/chroot_sftp_users_on_ubuntu_intrepid/)
现在,我已经创建了一个用户 (sio2104) 和一个组 (magento)。按照指南操作后,我的文件夹列表如下所示:
-rw-r--r-- 1 root root 27 2012-02-01 14:23 index.html
-rw-r--r-- 1 root root 21 2012-02-01 14:24 info.php
drwx------ 15 root root 4096 2012-02-25 00:31 magento
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我已经 chown root:root 文件夹 magento 我想监禁在用户和......顺便说一句。同样在 magento 文件夹中,我 chown sio2104:magento 一切,以便他们可以访问他们想要的东西。最后,我已将此添加到 sshd_config 文件中:
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Match Group magento
ChrootDirectory /usr/share/nginx/www/magento
ForceCommand internal-sftp
AllowTCPForwarding no
X11Forwarding no
PasswordAuthentication yes
#UsePAM yes
Run Code Online (Sandbox Code Playgroud)
结果是……好吧,我可以输入我的登录名、密码,然后一切都以“管道损坏”错误结束。
$ sftp sio2104@10.20.0.50
[....some debug....]
sio2104@10.20.0.50's password:
debug1: Authentication succeeded (password).
Authenticated to 10.20.0.50 ([10.20.0.50]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
Write failed: Broken pipe
Connection closed
Run Code Online (Sandbox Code Playgroud)
详细模式没有任何帮助。任何人都知道我做错了什么?如果我尝试使用个人用户使用 ssh 或 sftp 登录,则一切正常。
小智 6
尝试让您的默认目录与 chroot 目录不同。
我已将 /home/ftpman 设置为我的默认目录。
vi /etc/passwd
..
ftpman:x:1001:1002::/home/ftpman:/bin/bash
Run Code Online (Sandbox Code Playgroud)
和
ls -la /home
...
drwxr-xr-x 5 ftpman sftponly 4096 Jun 25 11:56 ftpman
Run Code Online (Sandbox Code Playgroud)
然后我将 chroot 目录设置为 /。它对我有用
vi /etc/ssh/sshd_config
...
Match Group sftponly
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /
ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)