CRON: pam_unix (cron: session): сеанс открыт для пользователя root пользователем (uid = 0): это обязательный процесс ?

Существует небольшая проблема с sed в режиме редактирования на месте -i. sed создает временный файл в том же каталоге под названием sedy08qMA, где y08qMA - случайно сгенерированная строка. Этот файл заполняется измененным содержимым исходного файла. После выполнения операции sed удаляет исходный файл и переименовывает временный файл с исходным именем. Таким образом, это не настоящее inplace edit. Он создает новый файл с правами вызывающего пользователя и новым номером inode. Такое поведение в основном не плохо, но, например, жесткие ссылки могут быть нарушены.

Однако, если вы хотите true inplace edit, вам следует использовать ed. Он читает команды из stdin и редактирует файл напрямую, без временного файла (это делается через буфер памяти ed). Обычно для создания списка команд используется printf:

printf "%s\n" '1,$s/search/replace/g' wq | ed -s file

Команда printf выдает следующий результат:

1,$s/search/replace/g
wq

Эти две строки - команды ed. Первая ищет строку search и заменяет ее на replace. Вторая записывает (w) изменения в файл и завершает работу (q). -s подавляет диагностический вывод.

3
05.05.2016, 03:13
1 ответ

Записи добавляются в журнал каждый раз, когда выполняется задание cron. Чтобы уменьшить время между записями, вам придется просмотреть задания cron и изменить их тайминг. Однако это может привести к поломке того, что зависит от выполнения этих заданий через определенные промежутки времени.

Если они действительно раздражают вас, то просто следуйте инструкциям в отчёте об ошибке Debian и запретите cron регистрировать запись в auth.log при каждом выполнении задания. То есть, отредактируйте /etc/pam.d/common-session-noninteractive и добавьте:

session     [success=1 default=ignore] pam_succeed_if.so service in cron quiet use_uid
12
27.01.2020, 21:11

Теги

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