Не удается запустить vsftpd. vsftpd :должен быть запущен как root

Bash waitвозвращает 0 в этом случае, потому что он «помнит», что процесс 72009 был одним из его дочерних процессов, и он помнит коды завершения своих дочерних элементов, и этот код завершения был 0. (Документация здесь несколько вводит в заблуждение. поскольку в нем явно упоминаются «активные» процессы.)

За кулисами waitопределяет, соответствует ли данный идентификатор процесса одному из дочерних элементов оболочки, возможно, в задании; если это так, он проверяет, выполняется ли процесс. Если он все еще работает, он ждет его завершения. По завершении он определяет соответствующий код выхода (, который может быть только для процесса или для задания в целом ), и возвращает его. Существует много дополнительных сложностей для правильной обработки сигналов, подстановки процессов, управления терминалами и т. д., но здесь это не имеет значения.

Код выхода запоминается (как минимум )в таблице заданий. Вы можете увидеть это в действии, запустив две команды с разными кодами выхода(false &иtrue &)и дождавшись соответствующих идентификаторов процесса. Пока таблица заданий не очищена, waitвыдаст правильный код выхода. Запустите waitбез аргументов, чтобы удалить завершенные задания из таблицы заданий, и вы увидите, что больше не можете получать коды выхода предыдущих заданий.

-1
06.08.2020, 10:51
1 ответ

Ошибка не требует пояснений -. Вы должны запустить либо как root, либо использовать опцию run_as_launching_user, как указано в руководстве vsftpd.conf:

.

run_as_launching_user Set to YES if you want vsftpd to run as the user which launched vsftpd. This is useful where root access is not available.

Пожалуйста, обратите внимание, что включение этой опции может быть угрозой безопасности, поскольку опция chroot_local_user, которую вы используете в настоящее время, и опция run_as_launching_userявляются взаимоисключающими

1
18.03.2021, 23:14

Теги

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