На Релиз CentOS 6.5 (окончательный) Я создал пользовательский тест с ограниченным доступом1
useradd -s /bin/false test1
и настроил ssd_config следующим образом
Subsystem sftp internal-sftp
Match User test1
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
определенный домашний каталог для пользователя test1
usermod -d /usr/local/tomcat/webapps/ROOT
затем
chown root:root /usr/local/tomcat/webapps/ROOT
chown test1:test1 -R /usr/local/tomcat/webapps/ROOT/*
chmod 755 -R /usr/local/tomcat/webapps/ROOT/*
перезапустил sshd и попытался войти в sftp
# sftp test1@localhost
Connecting to localhost...
test1@localhost's password:
sftp> ls -la
drwxr-xr-x 9 0 0 4096 Feb 16 08:20 .
drwxr-xr-x 9 0 0 4096 Feb 16 08:20 ..
drwxr-sr-x 2 500 501 4096 Feb 6 10:37 META-INF
drwxr-sr-x 6 500 501 4096 Feb 12 14:07 WEB-INF
drwxr-sr-x 2 500 501 4096 Feb 16 08:13 css
drwxr-xr-x 2 500 501 4096 Feb 16 08:27 home
drwxr-sr-x 3 500 501 4096 Feb 12 14:13 images
drwxr-sr-x 2 500 501 4096 Feb 16 00:37 js
sftp> mkdir css/test
Couldn't create directory: Permission denied
Я перепробовал почти все, но до сих пор не могу понять, почему у владельца каталога нет разрешения на запись?
Вот именно тот, который должен быть включен:
setsebool -P ssh_chroot_rw_homedirs on
Я боролся с этим 2 дня, пока не получил это !!
Я думаю, вам нужно включить некоторые selinux bool, для получения дополнительной информации о selinux bools службы вы можете ввести из своей оболочки man sftpd_selinux
[root@worktux ~]# getsebool -a | grep sftp
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off