Невозможно ограничить это с помощью ssh. Возможно, для этого можно использовать selinux или iptables. Тем не менее, существует альтернативная стратегия, которая может соответствовать или не соответствовать вашим потребностям. Используйте привязку к сокетам UNIX. Это должно быть доступно, начиная с версии openssh 6.8.
При использовании сокетов у вас есть ACL файловой системы (, хотя сокеты учитывают, что они могут *зависеть от nix ), и вы можете использовать его, чтобы предотвратить привязку одного пользователя к другому сокету. Однако это никоим образом не предотвращает привязку к портам, поэтому в зависимости от вашего варианта использования это может не помочь, но, возможно, порты не имеют значения, если вы можете постоянно использовать только сокеты.
При обработке сокетов UNIX висячих файлов сокетов могут возникнуть проблемы, поскольку обратные издатели пытаются повторно подключиться. У меня есть еще вопрос (и ответ )на эту проблему. Короче говоря, вы, вероятно, также захотите использоватьStreamLocalBindUnlink yes
:
Как очистить сокет обратного туннеля SSH после закрытия соединения?
Вы можете получить желаемый результат, отфильтровав только имена файлов, отменив тест для файлов, которые вам не нужны:
find src -type f -name \*.ts ! -name \*.d.ts
Я не думаю, что egrep
поддерживает этот синтаксис (ваше выражение является Perl-совместимым регулярным выражением ). Но вам не нужно использовать регулярные выражения в вашем примере, просто используйте несколько тестов -name
и применяйте отрицание !
по мере необходимости:
find src -type f -name '*.ts' ! -name '*.d.ts'
Простой (возможно, менее эффективный )подход может заключаться в отфильтровывании строки «не хочу» -.
find -name "*.ts" | egrep -v "\.d\.ts$"