Я застрял с созданием SFTP chroot. Я могу войти, но я получаю "Отказано в доступе", что бы я ни пытался.

sftp webadm@<ip>:
webadm@<ip>'s password:
Connected to <ip>.
Changing to: /
sftp> ls
remote readdir("/"): Permission denied
sftp>

Вот что я сделал:

/etc/ssh/sshd_config
Subsystem sftp internal-sftp
Match Group sftponly
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no
        PermitTunnel no
        X11Forwarding no

Я создал пользовательский вебадм

useradd webadm
passwd webadm
groupadd sftponly
gpasswd -a webadm sftponly
usermod -g sftponly webadm
groups webadm
webadm : sftponly

Я следовал этому руководству https://wiki.archlinux.org/index.php/SFTP_chroot

ll /home/
drwx------+ 5 root   root   4096 May 31 23:49 webadm
ll /home/webadm/
-rw-r--r--.  1 webadm sftponly    5 May 31 23:34 test
getfacl /home/webadm/
getfacl: Removing leading '/' from absolute path names
# file: home/webadm/
# owner: root
# group: root
user::rwx
group::---
mask::---
other::---

Там написано, что root должен иметь собственный каталог chroot, но как пользователь webadm может получить доступ к содержимому своего каталога? Я пытался

setfacl -m u:webadm:rwx /home/webadm/

но тогда я даже не смог войти.

Я также пытался сопоставить пользователя в sshd, но тот же эффект

Match User webadm
       ChrootDirectory /home/webadm
       AllowAgentForwarding no
       X11Forwarding no
       AllowTcpForwarding no
       #PermitTTY no
       ForceCommand internal-sftp
       PermitTunnel no

Селинукс находится в разрешительном режиме. Единственная ошибка, которую я вижу, находится в /var /log /secure

Accepted password for webadm from <ip> port 19669 ssh2
pam_unix(sshd:session): session opened for user webadm by (uid=0)
sshd_selinux_copy_context: getcon failed with Permission denied [postauth]

Так что я делаю не так? Любая помощь действительно ценится. Спасибо.

1 ответ1

0
drwx------+ 5 root   root   4096 May 31 23:49 webadm

Попробуйте установить разрешения для этой директории 755 (rwxr-xr-x), а не 700. Идентификатор webadm требует разрешения на чтение и eXamine для каталога, чтобы просматривать файлы в нем.

Сервер ssh будет в порядке с директорией, доступной для чтения. Функция chroot требует только, чтобы каталог не был доступен для записи. Из руководства sshd_config (выделение добавлено):

ChrootDirectory
Задает путь к каталогу для chroot(2) после аутентификации. При запуске сеанса sshd(8) проверяет, что все компоненты пути являются корневыми каталогами, которые не доступны для записи любому другому пользователю или группе. После chroot sshd(8) меняет рабочий каталог на домашний каталог пользователя.

Я предлагаю вам также удалить ACL из каталога, если он вам не нужен по какой-либо другой причине. Я не верю, что SSHD будет учитывать ACL при принятии решения о том, подходит ли каталог как каталог chroot.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .