CentOS SFTP chroot


2

我在为客户端建立SFTP访问时遇到了一些问题。

我可以访问目录,但是问题是我无法读取/写入,我只能访问目录。

以下是我所做的:

# cat /etc/passwd | grep comege
comege:x:1001:1001::/home/sftp/comege/home/:/sbin/nologin

# cat /etc/group | grep sftp
sftp-only:x:1001:

# sshd_config
Subsystem sftp internal-sftp
Match Group sftp-only
ChrootDirectory /home/sftp/%u
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

SELinux被设置为允许用于测试目的。

当我使用SFTP连接到服务器时,出现以下错误:

Error listing directory '/'. Permission denied

权限:

/home/sftp/comege and parent directories belongs to root:root.

/home/sftp/comege/home belongs to comege:sftp-only

我认为问题不是连接时将Comege重定向到/ home / sftp / comege / home,因此它进入了/ root / sftp / comege,它属于root,因此缺少权限(?)

Answers:


4

看起来chroot目录的权限/home/sftp/comege,未设置为允许comege用户读取访问。

的权限/home/sftp/comege应如下所示:

# ls -la /home/sftp/comege
total 0
drwxr-xr-x 1 root   root       8 Jul 19 12:00 .
drwxr-xr-x 1 root   root      12 Jul 19 11:59 ..
drwx------ 1 comege sftp-only 76 Jul 19 12:00 home

使用以下方法更改权限:

# chmod 755 /home/sftp/comege

请注意,这没有考虑SELinux权限。

按照设计,在chroot环境中的SFTP会话将从chroot“ jail”中的用户开始,该用户必须由root拥有。旨在使用户仅写入顶级根目录的子目录中的文件。一种约定是为用户上载创建一个名为“ incoming”的子目录,而不是原始示例中所示的“ home”目录。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.