Вы можете использовать любой символ в качестве разделителя в регулярном выражении
sed -e 's%/$%%' myfile.txt > myfile_noslash.txt
chown myuser01:myuser01 /var/sftp/myuser01
...
ChrootDirectory /var/sftp/%u
Директива ChrootDirectory сервера OpenSSH SSH требует, чтобы каталог chroot и его родительские каталоги принадлежали пользователю root:
ChrootDirectory
Specifies the pathname of a directory to chroot(2) to after authentication. At session startup sshd(8) checks that all components of the pathname are root-owned directories which are not writable by any other user or group. After the chroot, sshd(8) changes the working directory to the user's home directory.
Я не проверял это, но я думаю , что если вы создадите файл /etc/passwd
в среде chroot, содержащий строку для рассматриваемого пользователя, то sshd будет учитывать поле домашнего каталога. в этой строке как домашний каталог пользователя в среде chroot. Если это действительно работает, вы можете использовать это, чтобы сеанс пользователя начинался с его рабочего каталога где-то, кроме каталога chroot.
ChrootDirectory должен содержать необходимые файлы и каталоги для поддержки сеанса пользователя. Для интерактивного сеанса требуется как минимум оболочка, обычно sh (1 )и базовые узлы /dev, такие как нуль (4 ), ноль (4 ), стандартный ввод (4 ), стандартный вывод (4 ), стандартный вывод (4 ), и tty (4 )устройства.Для сеансов передачи файлов с использованием SFTP дополнительная настройка среды не требуется, если в -процессе используется сервер sftp -, хотя для сеансов, использующих ведение журнала, может потребоваться /dev/log внутри каталога chroot на некоторые операционные системы (см. sftp -сервер (8 )для подробностей ).