Какой самый безопасный способ позволить пользователю читать доступ к файлу журнала?

Моему приложению требуется доступ для чтения к /var/log/messages, который принадлежит пользователю и группе root. Каков минимальный уровень воздействия, необходимый для /var/log/messages, чтобы мое приложение могло его прочитать?

В настоящее время мой план состоит в том, чтобы изменить принадлежность группы /var/log/messages к новой группе и добавить к ней пользователя root и моего приложения , но это также даст привилегии на запись в /var/log/messages.

ОС: Centos 5.5

18 голосов | спросил gAMBOOKa 12 PMpTue, 12 Apr 2011 19:59:03 +040059Tuesday 2011, 19:59:03

6 ответов


6

Не нужно добавлять root в группу, так как в любом случае у него будет доступ к пользовательским привилегиям, просто дайте группе прочитать, какую группу вы решаете. Не забудьте также внести изменения с помощью logrotate, или изменения группы будут стерты в ночное время.

ответил rfelsburg 12 PMpTue, 12 Apr 2011 20:02:59 +040002Tuesday 2011, 20:02:59
12

Просто для того, чтобы немного расширить приведенные выше ответы, это реальный случай использования в мире. Я запускаю приложение анализа журнала предприятия Splunk на коробке Redhat. Он работает под пользователем splunk и группой splunk. Это предотвращает всплеск доступа к журналам в /var /log, поскольку они доступны только для root (или администратора sudo)

Чтобы разрешить доступ для чтения только для чтения, я использовал некоторые ACL и измененный logrotate для его сохранения.

Вы можете вручную установить ACL с помощью

sudo setfacl -m g:splunk:rx /var/log/messages

Это не будет продолжаться, так как logrotate не будет повторно применять настройку ACL, поэтому для более постоянного решения я добавил правило для logrotate для сброса ACL. Я добавил файл.

/etc/logrotate.d/Splunk_ACLs

с

{
    postrotate
        /usr/bin/setfacl -m g:splunk:rx /var/log/cron
        /usr/bin/setfacl -m g:splunk:rx /var/log/maillog
        /usr/bin/setfacl -m g:splunk:rx /var/log/messages
        /usr/bin/setfacl -m g:splunk:rx /var/log/secure
        /usr/bin/setfacl -m g:splunk:rx /var/log/spooler
    endscript
}

Проверьте статус ACL файла с помощью

$ getfacl /var/log/messages

Подробнее о ACL см. https://help.ubuntu.com/community/FilePermissionsACLs http://bencane.com/2012/05/27 /ACL-использования-контроля доступа списки-на-Linux /

ответил nick fox 1 J0000006Europe/Moscow 2016, 12:42:53
4

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

Если вам не кажется, что вы привязаны к традиционной схеме разрешений User /Group /Other, вы также можете использовать POSIX ACL (другие, возможно, лучше howtos /информация, доступная через Google), чтобы дать пользователю доступ к программе только для чтения /var/log/messages - это немного более мелкозернистая и не рискует случайно помещать кого-то в группу приложения и предоставлять им доступ к вещам, которые они не могут видеть.

ответил voretaq7 12 PMpTue, 12 Apr 2011 20:07:13 +040007Tuesday 2011, 20:07:13
2

Yip Я использовал setfacl, чтобы предоставить доступ к mail.log для клиента, вам также не понадобится вставлять команду в файл logrotate.conf, чтобы переустановите ACL после того, как журналы были повернуты, например:

postrotate
         /usr/bin/setfacl -m o::r /var/log/mail.log  
endscript

Примечание. Я только что установил это и не протестировал, но, хотя он будет опубликован здесь, can.t понять, почему он не работает, кто-то меня исправит, если я ошибаюсь.

ответил Matt 9 J000000Monday12 2012, 12:31:31
0

Вы можете использовать ACL для этого. Он позволяет вам устанавливать специальные правила доступа для определенных пользователей и файлов.

ответил landonz 12 PMpTue, 12 Apr 2011 20:07:00 +040007Tuesday 2011, 20:07:00
-1

после того, как вы настроили ACL, как говорили другие люди, вместо того чтобы поместить все ваши правила acl в конфигурацию postrotate, вы можете swith logrotate использовать copytruncate вместо создания нового файла журнала каждый раз

ответил Skullone 8 J0000006Europe/Moscow 2018, 22:27:08

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132