Добрый день.Подскажите, пожалуйста, как решить следующую задачу:
Необходимо дать перманентный доступ на чтение, логов из папки /var/audit, для определенного пользователя.
Проблема в том, что если дать команду:chown -R root:USER /var/audit
chmod -R g+r /var/auditПосле подачи команды: audit -n
Либо после перезапуска службы: svcadm disable auditd
Либо после перезагрузки ОСПрава на доступ к логу "/var/audit/*not_terminated*" остаются только у привилегированного пользователя!
-bash-3.2# ls -l /var/audit/
total 1290
-rw-r-x--- 1 root USER 579355 Mar 3 14:48 20140303080818.20140303084821.unknown
-rw------- 1 root USER 488 Mar 3 15:30 20140303084825.20140303093002.unknown
-rw------- 1 root root 1291 Mar 3 15:36 20140303093006.not_terminated.unknown
-bash-3.2#Заранее благодарю за ответ!
Данные о системе:
-bash-3.2# cat /etc/release
Oracle Solaris 10 1/13 s10x_u11wos_24a X86
Copyright (c) 1983, 2013, Oracle and/or its affiliates. All rights reserved.
Assembled 17 January 2013
-bash-3.2#
Там захардкодено вот так:newfd = open(newname, O_RDWR | O_APPEND | O_CREAT | O_EXCL, 0600);
, т.ч. сходу предложить вариант не могу (ACL-и тоже не помогут, как мне кажется). Кстати, в опенсолярисе и дальше файл создаётся с правами 0640 - см. http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/...
Спасибо, exSun!Скажите, пожалуйста, правильно ли я понял?
Данная логика работы, службы Аудита, жестко запрограммирована, для того чтобы что-то изменить необходимо исправить программный код, и перекомпилировать исходные файлы.
exSun, подскажите еще, пожалуйста, как я понимаю, любая служба SMF выполняется от имени определенного пользователя, возможно ли повлиять от имени какого пользователя запускается служба? И соответственно существует ли такое понятие, что сервис запускается как от определенного пользователя, так и от имени определенной группы и возможно ли поменять эту группу? Или я ошибаюсь?
> Данная логика работы, службы Аудита, жестко запрограммирована, для того чтобы что-то изменить
> необходимо исправить программный код, и перекомпилировать исходные файлы.Да, необходимы исходные тексты Solaris 10 вашей версии, среда для сборки и т.д. Также можно рассмотреть вариант миграции на Solaris 11, в котором также присутствуют изменения, которые внесены в OpenSolaris (создание логов с правами 0640), или же на опенсорсные дистрибутивы на основе Illumos (SmartOS, OmniOS и т.д.) - так можно даже самому править что-то по мелочи, если надо.
> exSun, подскажите еще, пожалуйста, как я понимаю, любая служба SMF выполняется от
> имени определенного пользователя, возможно ли повлиять от имени какого пользователя запускается
> служба? И соответственно существует ли такое понятие, что сервис запускается как
> от определенного пользователя, так и от имени определенной группы и возможно
> ли поменять эту группу? Или я ошибаюсь?Возможно, но конкретно auditd должен работать от рута (иначе он не будет работать вовсе). От имени пользователя выполняется exec_method за счёт задания method_credential, например:
<exec_method
type='method'
name='start'
exec='/path/to/some/binary'
timeout_seconds='600'>
<method_context>
<method_credential
user='user1'
group='group1'/>
<method_environment>
<envvar name='LD_LIBRARY_PATH' value='/path/to/non/standard/lib'/>
</method_environment>
</method_context></exec_method>
exSun, как Вы думаете, если изменит для службы "auditd" группу запуска:
<method_credential user='root' group='USER' />
Это может отразится на ее работе?
Другими словами служба будет запускаться от имени суперпользователя, но в группе USER.
Понимаю что мне это не поможет так как файлы создаются с маской "0600", спрашиваю на будущее.
> exSun, как Вы думаете, если изменит для службы "auditd" группу запуска:
> <method_credential user='root' group='USER' />
> Это может отразится на ее работе?
> Другими словами служба будет запускаться от имени суперпользователя, но в группе USER.
> Понимаю что мне это не поможет так как файлы создаются с маской
> "0600", спрашиваю на будущее.Попробуйте, я не знаю.
Возможно, кому-то пригодится, решил задачу следующим образом:
zfs create rpool/audit
zfs set aclinherit=passthrough rpool/audit
zfs set aclmode=passthrough rpool/audit
chmod A+group:USER:rwxpdDaARWcCos:fd:allow /rpool/audit
chown root:USER /rpool/audit
chmod 750 /rpool/audit
vi /etc/security/audit_control
#dir:/var/audit
dir:/rpool/audit