Я пытаюсь написать простой скрипт, который отслеживает /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
разрешение тщательно выбирается, чтобы скрыть любую конфиденциальную информацию, которая случайно попадает в этот файл журнала.