Рейтинг:0

Проблема с правами чтения каталога Httpd только на чтение

флаг us

В моем сценарии мне нужно, чтобы каталог «httpd» в «/var/log/» был доступен для чтения пользователями в группе «devs» (Amazon Linux 2). Может ли кто-нибудь подсказать мне, как это сделать?

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

может это поможет??

chmod -R go+r /var/log/httpd

или же chmod -R go+rX /var/log/httpd

или мне нужно пойти с:

chmod 644 /var/журнал/httpd

chgrp -R апач /var/журнал/httpd
chmod 02750 /var/журнал/httpd
chmod 0640 /var/журнал/httpd/*
создать 0640 корневой апач

лс

[root@ip-10-0-10-165 httpd]# ls -la
всего 48
drwx------ 19 root devs 4096 3 апр 03:42 .
drwxr-xr-x 11 корневых разработчиков 4096 8 апреля 07:45 ..
-rw-r--r-- 1 root root 0 15 февраля 14:55 access_log
drwxr-xr-x 2 корневых разработчиков 41 1 марта 20:44 u1-dev.qwerty.com
-rw-r--r-- 1 root root 1648 3 апреля 03:42 error_log
-rw-r--r-- 1 root root 883 13 марта 03:41 error_log-20220313
drwxr-xr-x 2 корневых разработчиков 41 1 марта 20:44 u4-dev.qwerty.com
drwxr-xr-x 2 root root 41 1 марта 20:44 langs.qwerty.com
drwxr-xr-x 2 корневых разработчиков 41 1 марта 20:44 u8-dev3.qwerty.com
-rw-r--r-- 1 root root 0 15 февраля 14:55 ssl_access_log
-rw-r--r-- 1 root root 314 3 апреля 03:42 ssl_error_log
-rw-r--r-- 1 root root 157 6 марта 03:50 ssl_error_log-20220313
-rw-r--r-- 1 root root 0 15 февраля 14:55 ssl_request_log
drwxr-xr-x 2 apache apache 253 3 апреля 03:42 www.qwerty.com
drwxr-xr-x 2 корневых разработчиков 41 1 марта 20:44 u13-dev.qwerty.com
[root@ip-10-0-20-173httpd]#

Как изменить этот набор разрешений? каков наилучший подход здесь?

Рейтинг:1
флаг ru

Вы можете использовать acl для этого каталога и предоставить разрешения для группы разработчиков. Например:

setfacl -m g:devs:rx httpd/

Вы можете установить список доступа к файлам для каталога. В вашем примере у вас есть каталог httpd с разрешениями, установленными только для пользователя/группы root.

# ls-la| grep httpd
drwx------ 2 root root 4096 8 апр 10:11 httpd

Вы можете проверить, что в этом каталоге нет списка acl:

getfacl httpd/
# файл: httpd/
# владелец: корень
# группа: корень
пользователь::rwx
группа::---
Другие::---

Мы устанавливаем разрешения для группы разработчиков с правами на чтение и выполнение:

setfacl -m g:devs:rx httpd/

После установки разрешений это будет выглядеть так:

getfacl httpd/
# файл: httpd/
# владелец: корень
# группа: корень
пользователь::rwx
группа::---
группа: разработчики: г-х
маска::rx
Другие::---

Обратите внимание на дополнительный знак (+) для любого существующего списка управления доступом в команде ls.

# ls-la| grep httpd
drwxr-x---+ 2 root root 4096 8 апр 10:11 httpd

Может быть хорошей идеей повторить команду setfacl с ключом -b, чтобы установить разрешения по умолчанию. Я обычно так делаю.

-д, --по умолчанию
           Все операции применяются к ACL по умолчанию. Обычные записи ACL во входном наборе повышаются до записей ACL по умолчанию. Записи ACL по умолчанию во входном наборе отбрасываются. (выдается предупреждение
           если это произойдет).

С уважением

samtech avatar
флаг us
просто для лучшего понимания, можете ли вы немного описать пример?
KuchnMar avatar
флаг ru
Я расширил ответ выше.
samtech avatar
флаг us
KuchnMar, setfacl -m g:devs:rx /var/log/httpd, предоставит моей группе «разработчиков» разрешение на желание без прав root-доступа? [root@ip-10-0-10-165 httpd]# getfacl /var/log/httpd getfacl: удаление ведущего '/' из абсолютных путей # файл: var/log/httpd # владелец: корень # группа: разработчики пользователь::rwx группа::--- Другие::--- "
Рейтинг:0
флаг cm

Судя по тому, как вы отметили вопрос, вы используете среду в стиле Redhat. Предполагая, что вы используете стандартную установку Apache httpd, вы, вероятно, за кулисами имеете дело с logrotate. По умолчанию logrotate выполняется ежедневно из /etc/cron.daily. Он переместит ваши текущие файлы журналов, создаст новые и перезапустит httpd таким образом, что он начнет использовать только что созданные пустые файлы журнала.

Проверять /etc/logrotate.d/httpd. Например, стоковая версия показывает:

/var/журнал/httpd/*журнал {
    отсутствует
    непустой
    общие скрипты
    задержка сжатия
    постротировать
        /bin/systemctl перезагрузить httpd.service > /dev/null 2>/dev/null || истинный
    эндскрипт
}

Если вы добавите такую ​​​​строку в фигурные скобки, logrotate правильно повернет и заново создаст ваши файлы журнала с правильным владельцем и членством в группе:

    создать 0640 корневых разработчиков

Это указывает logrotate на создание новых файлов журнала с корень как владелец, разработчики как группа, с правами владельца на чтение/запись и чтение группы.

Затем вы можете установить свой каталог журнала httpd с разрешениями и правами собственности следующим образом:

корень chown:devs /var/log/httpd
chmod 0750 /var/журнал/httpd

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

корень chown:devs /var/log/httpd/*log
chmod 0640 /var/журнал/httpd/*журнал

Вы можете пофантазировать с ACL, как продемонстрировал @KuchnMar выше, но это решение делает вещи простыми и совместимыми с различными типами файловых систем * nix.

Это может быть похоже на хост в стиле Debian, но ваш файл конфигурации logrotate может называться апач2 вместо.

Более подробную информацию можно найти здесь:

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.