Здраствуйте форумчане!!!
Хочу сделать chroot окружение для юзера с sftp доступом.
Subsystem sftp internal-sftp
AllowGroups sftponly
UseDNS no# Example of overriding settings on a per-user basis
Match Group sftponly
ChrootDirectory /var/www/production
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
# ForceCommand cvs serverПри подключении выдает Write failed: Broken pipe Couldn't read packet: Connection reset by peer
В /var/log/secure:
pam_unix(sshd:session): session opened for user builder by (uid=0)
fatal: safely_chroot: stat("/var/www/"): Permission denied
pam_unix(sshd:session): session closed for user
На папку /var/www/production смонтирован рейд на 22 Гб, и там же находится сайт
права -R apache:sftponly /var/www/production -R 755 /var/...
> На папку /var/www/production смонтирован рейд на 22 Гб, и там же находится
> сайт
> права -R apache:sftponly /var/www/production -R 755 /var/...ChrootDirectory
Specifies a path to chroot(2) to after authentication. This path, and all its components, must be root-owned directories that are not writable by any other user or group. After the chroot, sshd(8) changes the working directory to the user's home directory.Т.е. /var/www/production должен принадлежать root:root, а вот вложенные папки могут принадлежать кому-то другому.
>> На папку /var/www/production смонтирован рейд на 22 Гб, и там же находится
>> сайт
>> права -R apache:sftponly /var/www/production -R 755 /var/...
> ChrootDirectory
> Specifies a path to chroot(2) to after authentication. This path, and
> all its components, must be root-owned directories that are not writable
> by any other user or group. After the chroot, sshd(8) changes
> the working directory to the user's home directory.
> Т.е. /var/www/production должен принадлежать root:root, а вот вложенные папки могут принадлежать
> кому-то другому.Присвоил root, ошибка осталась.Без chrootdirectory в sshd_config заходит в нужную папку без проблем,но можно по всем каталогам лазить.Как только добавляешь chrootdirectory,выдает ошибки описаные выше.Причем пробовал сделать chroot на любую папку в /var/www/ - ничего не получилось,выдает ошибку.Уже не знаю куда копать...Если просто создать user c домашней директорией /home/user-все работает,пробовал.
> Присвоил root, ошибка осталась.Без chrootdirectory в sshd_config заходит в нужную папку
> без проблем,но можно по всем каталогам лазить.Как только добавляешь chrootdirectory,выдает
> ошибки описаные выше.Причем пробовал сделать chroot на любую папку в /var/www/
> - ничего не получилось,выдает ошибку.Уже не знаю куда копать...Если просто создать
> user c домашней директорией /home/user-все работает,пробовал.Привожу примерны у себя в системе. Доступ к chroot-окружению у меня по группе.
useradd -c 'Comment' -g sftp -s /sbin/nologin -K UMASK=0022 user
mkdir -p /home/user/home/user
chown root:root /home/user
chown -R user:sftp /home/user/home
chmod -R g+rw /home/user/homeНадо смотреть как записан пользователь в /etc/passwd - какой у него домашний каталог?
И при всех изменениях смотреть лог - что в нем меняется.
Вообщем смотри:
сайт находится в /var/www/production
права chmod -R 755 /var/www/production (на все внутри папки)
владелец chown -R apache:sftponly /var/www/production (чтоб apache имел полный доступ на папку)
в /var/www/production/printatet/data/projects я смонтировал 22 ТБ на папку projects
потом в папке projects я создал папку sftp и владельцем папки сделал
chown root:sftponly /var/www/productions/printatet/data/projects/sftp
chmod 755 /var/www/production/printatet/data/projects/sftp
И вот именно на папку sftp(/var/www/production/printatet/data/projects/sftp) мне нужно сделать chroot.Но вот уже 3 день не могу. Пробовал сделать через lshell,тоже не пускает
>[оверквотинг удален]
> права chmod -R 755 /var/www/production (на все внутри папки)
> владелец chown -R apache:sftponly /var/www/production (чтоб apache имел полный доступ
> на папку)
> в /var/www/production/printatet/data/projects я смонтировал 22 ТБ на папку projects
> потом в папке projects я создал папку sftp и владельцем папки сделал
> chown root:sftponly /var/www/productions/printatet/data/projects/sftp
> chmod 755 /var/www/production/printatet/data/projects/sftp
> И вот именно на папку sftp(/var/www/production/printatet/data/projects/sftp) мне нужно
> сделать chroot.Но вот уже 3 день не могу. Пробовал сделать
> через lshell,тоже не пускаетКакого пользователя не пускает? builder ? Тогда что показывает
grep builder /etc/passwd ?
SELinux включен/выключен? Для отладки лучше выключить.
И еще - кажется с такими каталогами не получится - возможно ошибаюсь, но когда "копался" с chroot, вроде попадалось указание о принадлежности root:root папки корневой папки (/var/www/production).
А нельзя сделать более проше - примонтировать в другой каталог, а из /var/www/production ссылаться по ссылке или примонтировать получившуюся папку в /var/www/production/printatet/data/projects (mount --bind olddir newdir)
>[оверквотинг удален]
>> через lshell,тоже не пускает
> Какого пользователя не пускает? builder ? Тогда что показывает
> grep builder /etc/passwd ?
> SELinux включен/выключен? Для отладки лучше выключить.
> И еще - кажется с такими каталогами не получится - возможно ошибаюсь,
> но когда "копался" с chroot, вроде попадалось указание о принадлежности root:root
> папки корневой папки (/var/www/production).
> А нельзя сделать более проше - примонтировать в другой каталог, а из
> /var/www/production ссылаться по ссылке или примонтировать получившуюся папку в /var/www/production/printatet/data/projects
> (mount --bind olddir newdir)сделал umount --bind та же самая фигня и та же ошибка
получилось,но!!!!
отключил selinux
сделал права на chown -R root:apache /var/www/production
добавил builder в группу apache и получилось так как мне надо(и сайт нормально работает и sftp chroot доступ)
,но при echo 1 > /selinux/enforce появилась та же самая ошибка
grep builder /etc/passwd builder:x:505:505::/var/www/production/printatet/data/projects/test_sftp:/bin/bash
> получилось,но!!!!
> отключил selinux
> сделал права на chown -R root:apache /var/www/production
> добавил builder в группу apache и получилось так как мне надо(и сайт
> нормально работает и sftp chroot доступ)
> ,но при echo 1 > /selinux/enforce появилась та же самая ошибка
> grep builder /etc/passwd builder:x:505:505::/var/www/production/printatet/data/projects/test_sftp:/bin/bashЕсли selinux важен, но надо изучать.
Тут не готов подсказать, т.к. практики не имел.
я понял!!!Спасибо за помощь!!!!!
> я понял!!!Спасибо за помощь!!!!!Возможно, хватит такой команды
/usr/sbin/setsebool ssh_chroot_rw_homedirs 1
Если нет, то значит всё сложнее - ошибки смотреть в /var/log/audit/audit.log
>> я понял!!!Спасибо за помощь!!!!!
> Возможно, хватит такой команды
> /usr/sbin/setsebool ssh_chroot_rw_homedirs 1
> Если нет, то значит всё сложнее - ошибки смотреть в /var/log/audit/audit.log/usr/sbin/setsebool ssh_chroot_rw_homedirs 1 уже было сделано
grep sshd_t /var/log/audit/audit.log | audit2allow -m sftpchrootlocal >
sftpchrootlocal.te в эту сторону буду копать
>> я понял!!!Спасибо за помощь!!!!!
> Возможно, хватит такой команды
> /usr/sbin/setsebool ssh_chroot_rw_homedirs 1
> Если нет, то значит всё сложнее - ошибки смотреть в /var/log/audit/audit.logВернее - с флагом -P
/usr/sbin/setsebool -P ssh_chroot_rw_homedirs 1
Но на самом деле может быть еще сложнее, т.к. вероятно надо будет учитывать SELinux контекст файлов, которые будут сбрасываться по ssh...
>>> я понял!!!Спасибо за помощь!!!!!
>> Возможно, хватит такой команды
>> /usr/sbin/setsebool ssh_chroot_rw_homedirs 1
>> Если нет, то значит всё сложнее - ошибки смотреть в /var/log/audit/audit.log
> Вернее - с флагом -P
> /usr/sbin/setsebool -P ssh_chroot_rw_homedirs 1
> Но на самом деле может быть еще сложнее, т.к. вероятно надо будет
> учитывать SELinux контекст файлов, которые будут сбрасываться по ssh.../usr/sbin/setsebool -P ssh_chroot_rw_homedirs 1 именно так и делал.
Вот еще ссылка http://consolekit.com/howto/enable-selinux-permission-for-sf...
Вот как решил проблему:
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6...
Спасибо еще раз за помощь!!!