proftpd через mysql и веб-управление пользователями FTP

При использовании Bash 4 или более поздней версии можно использовать сопроцессы :

function f () { a=3; b=4 ; echo "`date`: $a $b"; }
coproc cat
f >&${COPROC[1]}
exec {COPROC[1]}>&-
read c <&${COPROC[0]}
echo a $a
echo b $b
echo c $c

будут выводиться

a 3
b 4
c Sun Jun 29 10:08:15 NZST 2014: 3 4

coproc создает новый процесс, выполняющий заданную команду (здесь cat ). Он сохраняет PID в COPROC _ PID и стандартные дескрипторы выходных/входных файлов в массив COPROC (как и pipe (2) , или см. здесь или здесь ).

Здесь мы запускаем функцию со стандартным выходом, который указывает на наш сопроцессный запуск cat , а затем считываем из него. Поскольку cat просто спиливает входные данные обратно, мы получаем выходные данные функции в нашу переменную. exec {COPROC [1]} > & - закрывает дескриптор файла, так что cat не будет ждать вечно.


Обратите внимание, что чтение занимает только одну строку за раз. Можно использовать mapfile для получения массива строк или просто использовать дескриптор файла, однако использовать его другим способом.

exec {COPROC [1]} > & - работает в текущих версиях Bash, но более ранние 4-серийные версии требуют сначала сохранения дескриптора файла в простую переменную: fd = $ {COPROC [1]}; exec {fd} > & - . Если переменная не задана, она закроет стандартный вывод.


Если вы используете 3-серийную версию Bash, вы можете получить тот же эффект с mkfifo , но это не намного лучше, чем использование реального файла на этом пункте.

-121--50404-

Пакеты rpm и deb содержат архивы устанавливаемых файлов ( cpio архивы в случае rpm, tar в случае deb). Эти архивы содержат метаданные о каждом файле, включая его имя, дату изменения, владельца и группу, а также разрешения. Когда пакет установлен, каждый файл получает право собственности, описанное в архиве (если сценарий после установки не изменяет его).

Большинство файлов, установленных пакетами, принадлежат root, поскольку ни один пользователь не имеет прав на их изменение.

Чужой преобразует пакеты, распаковывая архив и переупаковывая его (а также другие вещи, такие как преобразование сценариев перед/после установки). Например, чтобы преобразовать rpm в deb, чужой вызывает cpio для извлечения архива во временное местоположение, затем tar для построения нового архива. Если распаковка не выполняется с правами root, то все временные файлы будут принадлежать пользователю, выполняющему распаковку, поэтому, когда файлы будут упакованы в новый архив, они в конечном итоге будут принадлежать этому пользователю.

Alien на самом деле не должен работать как root, так как ему не нужно ничего изменять в системе. Fakeroot выполняет чужую (или любую другую) команду в среде, где эта команда получает фальшивую информацию об операциях файловой системы, делая вид, что операции, которые обычно требуют root (например, изменение владельца файла), прошли успешно. Сюда,распаковка выполняется как корень и устанавливает правильное владение файлом (что касается чужого и его подпроцессов) и, таким образом, переупаковка создает предполагаемый архив.

-121--84687-

Этот тип функциональности слишком продвинутый для GRUB. GRUB не может даже говорить по сети, кроме TFTP.

Сервер SSH , который вы видели , работает под управлением Linux. Он запускается рано во время процесса загрузки, после загрузки ядра, но перед установкой корневой файловой системы. Linux запускает программы из initramfs (или initrd на старых системах) перед установкой корневой файловой системы; именно так на консоли выводится запрос пароля, например, при шифровании корневой файловой системы.

Initramfs обычно имеют набор утилит BusyBox . BusyBox не может отправлять почту, но предлагает утилиту ssmtp в качестве компаньона для этой задачи. Вам нужно построить статически скомпилированную версию.

Альтернативным подходом может быть установка клиента dropbear и отправка сообщения электронной почты (или другой формы уведомления) с другой машины. Директиву command = в файле authorized _ keys можно использовать только для одной конкретной команды.

Еще один подход, если машина находится в сетевом сегменте, защищенном от вторжений, может заключаться в тестировании выделенного порта, или «порте» некоторой последовательности, или передаче ping с некоторой постоянной полезной нагрузкой.

1
19.03.2014, 23:12
1 ответ
[118279] Вот несколько проблем, которые я уже могу идентифицировать: [12365] Также помните, что этот виртуальный пользователь должен быть привязан к реальному пользователю, у которого есть правильное разрешение. [118961] Наконец, если вам нужно отладить демон, вы можете просто добавить эти 2 директивы [118962] в самом верху[118963] вашего конфигурационного файла : [12366]
1
27.01.2020, 23:52

Теги

Похожие вопросы