Еще одна реализация, которая не полагается на внешние программы, в bash
, zsh
, yash
и некоторые реализации/версии ksh
:
while IFS= read -r line; do
line="${line//[!\"]/}"
echo "${#line}"
done <input-file
Использовать line="${line//[!(]}"
для подсчета (
.
Поддержки SSH chrooting пользователь SFTP исходно. Просто необходимо предоставить
ChrootDirectory
В Вашем sshd файле конфигурации и перезапуске sshd.
Если Вы просто делаете sftp, то Вы не должны делать ничего больше. К сожалению, это не работает на scp. Для интерактивной оболочки необходимо будет скопировать двоичные файлы и/dev узлы в chroot.
Конфигурация в качестве примера, для просто отдельного пользователя, testuser:
Match User testuser
ChrootDirectory /home/testuser
ForceCommand internal-sftp
Несколько вещей знать, из sshd_config страницы справочника:
All components of the pathname 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.
Поиск ChrootDirectory в человеке sshd_config для получения дополнительной информации.
chroot является довольно простым методом. Так как операционная система уже имеет это средство защиты, писатели демона склонны не пытаться повторно реализовать его.
Rssh идет с руководством по установке chroot тюрьмы. Это находится в CHROOT
файл в исходном распределении. Короче говоря Вы должны иметь:
/usr/bin/scp
, /usr/libexec/openssh/sftp-server
, /usr/bin/rssh_chroot_helper
{/usr,}/lib/lib*.so.[0-9]
) то, что они используют, аналогично скопированный/etc/passwd
(вполне возможно не копия, но полученный от ведущего устройства)/dev/null
, /dev/tty
, и также a /dev/log
сокет для входа (и необходимо сказать демону системного журнала слушать на том сокете),Дополнительная подсказка, которая не находится в rssh документации: при необходимости в некоторых файлах, чтобы быть доступными в chroot тюрьме, можно использовать bindfs или Linux mount --bind
сделать дополнительные иерархии каталогов снаружи тюрьмы. bindfs
позволяет повторно смонтированному каталогу иметь более строгие полномочия, например, только для чтения. (mount --bind
не делает, если Вы не применяете патч ядра; Debian включал этот патч с тех пор на востоке lenny, но большинство других дистрибутивов не имеет по состоянию на 2011.)
Вы могли бы хотеть посмотреть на scponly (или позже, rssh); это - по существу оболочка входа в систему, которая может только использоваться для запуска scp или sftpd подсистемы. В scponlyc
вариант это выполняет chroot прежде, чем активировать рассматриваемую подсистему.
Subsystem sftp /usr/lib/openssh/sftp-server
строка кSubsystem sftp internal-sftp -f AUTH -l VERBOSE
– partofthething 23.09.2015, 04:41Match
раздел. – roaima 10.01.2016, 19:21