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

sudo или acl или setuid / setgid?

по какой-то причине, которую я не очень понимаю, всем нужен sudo для всех и вся. На работе у нас даже есть столько записей, сколько есть способ прочитать файл журнала (голова / хвост / кошка / еще, ...).

Я думаю, здесь sudo побеждает.

Я бы предпочел использовать сочетание каталогов setgid / setuid и добавлять ACL кое-где, но мне действительно нужно знать, каковы лучшие практики, прежде чем начинать.

На наших серверах есть% admin,% production,% dba,% users, то есть много групп и много пользователей. Каждая служба (mysql, apache, ...) имеет свой собственный способ установки привилегий, но члены группы% production должны иметь возможность обращаться к файлу конфигурации или даже файлам журнала. Есть еще решение добавить их в нужные группы (mysql ...) и установить хорошее разрешение. Но я не хочу модифицировать всех пользователей, я не хочу изменять стандартные разрешения, так как они могут меняться после каждого обновления.

С другой стороны, установка acls и / или смешивание setuid / setgid в каталогах - это то, что я мог бы легко сделать, не «портя» стандартный дистрибутив.

Что Вы думаете об этом ?

В примере с mysql это будет выглядеть так:

setfacl d:g:production:rx,d:other::---,g:production:rx,other::--- /var/log/mysql /etc/mysql

Как вы думаете, это хорошая практика, или мне следует определенно usermod -G mysql и играть со стандартной системой разрешений?

Спасибо

Лучшие практики (и наиболее распространенные) обычно используют sudo. Sudo предлагает вам детальный контроль, а конфигурация может обрабатывать сразу несколько машин.

Использование ACL может дополнить это - sudo обрабатывает операции как root; ACL дают и отнимают права на каталоги и файлы для пользователей и групп. Я бы не стал рассчитывать на то, что setgid и setuid сделают что-нибудь разумное.

Я бы также реализовал колесную группу; это поможет повысить безопасность. Проверьте, есть ли у вас su Программа поддерживает колесную группу.

Еще одно: если у вас есть view или less в качестве способа чтения файла журнала вы подвергаетесь риску: обе эти программы предлагают доступ к оболочке.

Лучшие практики: ведите файл sudoers и используйте sudo.

На моей персональной машине я предпочитаю setuid / gid, но я единственный на своем компьютере; и я не делаю этого ни с чем явно опасным, как rm.

Мне кажется, что опция sudoers немного компактнее, чем setuid / setguid / ACL.

Без группировки пользователей ваши ACLS будут очень длинными. А если вы группируете пользователей, вы возвращаетесь к тому же месту, где начали.

Более серьезная проблема заключается в том, что без какого-либо централизованного управления контроль доступа распространяется по всей файловой системе. Конечно, вы можете легко обойти это с помощью макросов, шаблонов, управления конфигурацией и так далее. Но это совершенно другой уровень, который ничего не делает для уменьшения сложности.

В моем небольшом магазине Drupal я довольно широко использую ACL для всех рабочих файлов, кроме sudo для доступа к управлению. Уровень управления конфигурацией, который я использую, - это Ansible, и в нем хорошо то, что я могу легко создавать шаблоны пользователей, их ролей и, следовательно, того, какие группы они входят, на каких машинах и т. Д. Судоерс управляется аналогичным образом. Мне это кажется хорошей практикой, потому что она наиболее прозрачна.

Конечно, у меня, вероятно, не так много пользователей или групп, как у вас. Я мог бы представить себе включение ACL в управление конфигурацией. Но, хоть убей, я не вижу простого способа управлять таким образом множеством машин, множеством пользователей и множеством групп.