Назад | Перейти на главную страницу

Разрешения файла журнала в Linux

Я пытаюсь написать простой скрипт, который отслеживает /var/log/messages файл. Файл по умолчанию не имеет разрешения на чтение для пользователей, когда я разрешаю доступ для чтения к этому файлу, мой скрипт работает отлично, но проблема в том, что файл перезаписывается каждый раз, когда я перезапускаю систему, и все мои изменения теряются. Есть ли способ изменить его разрешения по умолчанию?

Спасибо.

Там являются настройки управления разрешениями, которые не требуют от вас использования sudo - вы можете предоставить пользователю, запускающему скрипт, доступ к группе, которой принадлежит /var/log/messages (adm, на моем ноутбуке здесь). В качестве альтернативы используйте NOPASSWD в записи sudoers для сценария, так что вам не нужно хранить пароль в сценарии.

Если ты действительно твердо настроен позволить миру увидеть, что в /var/log/messages (и я бы сильно не рекомендую - там действительно могут быть личные вещи), тогда то, что устанавливает ваши разрешения по умолчанию, вероятно, logrotate, поэтому проверьте свою конфигурацию logrotate и найдите строфу, которая выполняет ваши /var/log/messages вращение и измените его.

Если вы используете sudo для предоставления доступа, вам нужно быть осторожным, чтобы правильно ограничить область доступа. Я бы порекомендовал использовать что-то подобное в вашем файле sudoers:

scriptuser  ALL = NOPASSWD: /bin/cat /var/log/messages

Это позволит «пользователю сценария» выполнить указанную команду без ввода пароля.

Обычное решение - запустить сценарий монитора с достаточными привилегиями, чтобы иметь возможность читать файл.

Это потому, что /var/log/messages разрешение тщательно выбирается, чтобы скрыть любую конфиденциальную информацию, которая случайно попадает в этот файл журнала.