我已经在我的 centos 机器上配置了 sshd_conf 如下:
Match group pilots
ChrootDirectory /home/pilots
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
Run Code Online (Sandbox Code Playgroud)
和目录 /home/pilots 像这样:
# ls -al /home/pilots
total 12
drwxr-x---. 3 root pilots 4096 Mar 10 14:20 .
drwxr-xr-x. 7 root root 4096 Mar 10 14:10 ..
drwxrwxr-x. 2 root pilots 4096 Mar 10 15:21 data
-rwxrwxrwx. 1 root root 0 Mar 10 14:20 topLevel
#
Run Code Online (Sandbox Code Playgroud)
如果我在没有启用 ChrootDirectory 指令的情况下以 Pilots 组中的用户身份 sftp,我可以 cd 到 /home/pilots 文件夹(或其子目录)并执行 ls 或毫无困难地获取。但是,如果我启用 ChrootDirectory 指令,虽然我仍然可以 sftp 进入,并且可以 cd 到数据,但我不能执行 …