Существует два способа установления сеанса FTPS: явный (также называемый FTPES) и неявный.
Они оба выполняют одно и то же (FTP через SSL), но различаются в зависимости от того, как инициируется соединение.
Явно: Клиент подключается к стандартному FTP-порту (21) с помощью обычного FTP-соединения, а затем клиент отправляет команду на обновление соединения до SSL, позволяя подключению вернуться к обычному FTP. сеанс по запросу клиента.
Неявно: Клиент подключается к порту по умолчанию 990, и сеанс SSL устанавливается, как только клиент подключается к серверу.
Весь сеанс зашифрован, разрешены только сеансы SSL.
Редактировать:
Диаграмма ниже (от: globalscape.com ) хорошо иллюстрирует различия:
Что касается выбора, это зависит от ваших требований.
См. Два отрывка ниже:
И неявный, и явный FTPS предлагают сопоставимые уровни шифрования (при условии, что с явным FTPS вы выбираете вариант шифрования обоих каналы данных и управления).
С практической точки зрения явный FTPS предлагает некоторые преимущества, которые делают его лучшим выбором. Например:
Это стандартная поддерживаемая версия FTPS, которая, скорее всего, получит широкую поддержку в будущем. Она использует те же порты, что и простой FTP, поэтому не требует дополнительной настройки брандмауэра (при условии, что ваш брандмауэр уже настроен для простого FTP).
(Источник: Веб-страница Robo-FTP :)
Неявный FTPS потребляет много пропускной способности сети и вычислительных ресурсов, поскольку шифрование выполняется как в команде, так и в данных {{1 }} каналы. В сценарии, когда пользователь хочет загрузить неконфиденциальные файлы на сервер FTPS, будет использоваться явное соединение FTPS вместо неявного соединения FTPS.
В явном FTPS клиент напрямую запрашивает безопасность у сервера FTPS . Это необязательный запрос.Если клиент не запрашивает безопасность , сервер FTPS может либо разрешить клиенту продолжить работу в незащищенном режиме , либо отклонить или ограничить соединение.
Явный FTPS может использоваться в сценариях, где требуется защищать только командный канал (который несет команды и аутентификацию пользователя ), а не канал данных (который несет {{ 1}} неконфиденциальные данные FTP). Порт 21 - это порт по умолчанию, используемый FTP-сервером для связи с клиентом. Это позволяет как незащищенным FTP, так и защищенным клиентам FTPS подключаться к серверу FTPS.
Для организаций, придерживающихся федеральных нормативных требований, рекомендуется неявный FTPS.
(Источник: Веб-страница Serv-U )
Я не вижу способа заранее указать ps
выбирать на основе pgrp, поэтому вам нужно запросить этот столбец, а затем отфильтровать его; что-то вроде:
ps axo pgrp,stat,euid,ruid,tty,tpgid,sess,ppid,pid,pcpu,comm | awk -v pgrp=3668 '$1 == pgrp'
ps -eo pgrp,pid,comm | sed -n -e 1p -e ' /3668/ p'
PGRP=3668; ps -eo pgrp,pid,comm | sed -n -e 1p -e " / $PGRP / p"
На Дарвине ps -g $pgid
работает так, как вы просите.
В Linux это не работает, и вам нужно использовать другое решение. Вы можете использовать ps --ppid $ppid
, в котором перечислены все дочерние процессы данного родителя.
pgrep -ag PGID
Если PGID
равно 0
, это означает собственную группу процессов pgrep, например.
$ cat | cat | cat | pgrep -ag0
7301 cat
7302 cat
7303 cat
(обратите внимание, что pgrep
никогда не включает себя в список и pkill
никогда не уничтожает себя)