Все о Linux. LinuxRSP.Ru

[an error occurred while processing this directive]

Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

25 лет исполнилось ядру Linux

Релиз KDevelop 5.0

Oracle открывает код JDK9 для ARM

Выпущен Timewarrior 1.0.0

Релиз Android 7.0

Percona Memory Engine для MongoDB на базе WiredTiger

PowerShell открыт и доступен для Linux

Форк TrueCrypt: VeraCrypt 1.18

Релиз Snapcraft 2.14

Релиз Go 1.7

Стабильный выпуск рабочего стола Lumina

Вышла первая версия аналога OpenCV - DCV 0.1

Выпуск минималистичной программы для мониторинга jsonmon 3

В MIT разработали новый язык программирования

Первый релиз Qt5Gtk2

Godot 2.1 - новая версия открытого игрового движка

Свободная цифровая станция звукозаписи: Ardour 5.0

Обновление SkypeWeb Plugin for Pidgin

Вышла версия 3.0 Android File Transfer для Linux (и для OS X)

Программный аналог MIDI-контроллера для создания музыки: Launchpadd v1.3

Mozilla спонсирует поддержку Python 3.5 в PyPy

Ef 0.08 - программа для моделирования динамики заряженных частиц

Обновление текстового редактора TEA до версии 42.0.0

Релиз OpenOrienteering Mapper 0.6.4

Вышли Guix и GuixSD 0.11

Релиз Opera 39

Выпуск LibreOffice 5.2

В OpenSSH обнаружены и устранены некоторые уязвимости

Эмулятор FCEUX 2.2.3

Компания Билайн переходит на российскую СУБД с открытым исходным кодом Tarantool

Google

 Новые статьи :

Утилиты для восстановления потерянных данных в Linux

Лучшие файловые менеджеры для Android

20 лучших бесплатных книг о Linux

Как сгенерировать открытый/закрытый SSH-ключ в Linux

Grive - клиент Google Drive для Linux с открытым исходным кодом

Протокол IPv6: варианты подключения

Сервер из образа: DHCP + TFTP + Initrd + OpenVZ

Обзор веб-панелей управления хостингом

Приёмы работы с Vim

Nginx как Reverse Proxy для сайта, использующего SSL

Разработка модулей ядра Linux

Мониторинг нагрузки http-сервера Apache 2

Перевод комментариев к файлу конфигурации Squid

Решение проблем при использовании "1c предприятие" 8.2 в Linux

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки







Rambler's Top100





 
 

Дополнение A. Версия 0.10 для 2.2.19

Как я уже упоминал, авторы не придерживаются определенного дизайна своей системы. Команды lidsadm и методы хранения данных меняются почти координально от версии к версии. У версии 0.10 есть несколько отличий от версии 0.9.8, которую я описывал.

Изменения касаются установки способностей программам. Если в версии 0.9.8 это делалось таким образом:


lidsadm -A -s программа -t -o способность -j [NO_INHERIT|INHERIT]

то в версии 0.10 это делается так:


lidsadm -A -s программа -o способность -j GRANT -i уровень_наследования

Здесь уровень наследования определяет будут ли наследовать способность программы ее потомки. Если в предыдущих версиях можно было только указать разрешение (INHERIT) или запрет (NO_INHERIT) наследования, то начиная с версии 0.9.14 можно указывать насколько далекие потомки данной программы будут обладать той же способностью, что и родитель. Команда вида -


lidsadm -A -s программа -o способность -j GRANT -i 0

запрещает для потомков программы указанную способность. Аналог команды -


lidsadm -A -s программа -t -o способность -j NO_INHERIT

для версии 0.9.8.

Команда вида -


lidsadm -A -s программа -o способность -j GRANT -i -1

разрещает наследование способности бесконечному уровню потоков, т.е. всем потомкам родительского процеса, потомкам потомков родительского процесса, потомкам потомков потомков и т.д., т.е. не только "детям", но "внукам", "правнукам", "праправнукам" и так до бесконечности.:)

Аналог команды -


lidsadm -A -s программа -t -o способность -j INHERIT

для версии 0.9.8.

Команда вида -


lidsadm -A -s программа -o способность -j GRANT -i 2

разрешает способность "детям" и "внукам" главного процесса. "Правнуки", "праправнуки" и т.д. такой способностью уже не обладают.

Если не указывать уровень наследования (не использовать опцию -i), то по умолчанию он равен 0.

Примеры:


lidsadm -A -s /usr/sbin/httpd -o CAP_HIDDEN -j GRANT -i -1
lidsadm -A -s /sbin/syslogd -t -o CAP_HIDDEN -j GRANT -i 0
lidsadm -A -s /sbin/klogd -t -o CAP_HIDDEN -j GRANT

Новым в версии 0.10 является поддержка доменов. Доменами в данном случае является набор каталогов и их подкаталогов и файлов, к которым имеет доступ указанная программа. Любые действия в других каталогах или с другими файлами программе запрещены.

Домен для программы создается указанием опции -d при установке правил доступа программе.


lidsadm -A -s программа -d -o каталог -j правило_доступа

Пример (для Apache):


# Каталог конфигурационных файлов
lidsadm -A -s /usr/sbin/httpd -d -o /etc/httpd -j READ
# Каталог с корневым сайтом
lidsadm -A -s /usr/sbin/httpd -d -o /home/httpd -j WRITE
# Каталог для записи логов
lidsadm -A -s /usr/sbin/httpd -d -o /var/log/httpd -j WRITE
# Доступ к разделяемым библиотекам
lidsadm -A -s /usr/sbin/httpd -d -o /usr/lib -j READ
lidsadm -A -s /usr/sbin/httpd -d -o /lib -j READ
lidsadm -A -s /usr/sbin/httpd -d -o /etc/ld.so.cache -j READ
# Файлы для запуска
lidsadm -A -s /usr/sbin/httpd -d -o /var/run -j WRITE

Пример (для MySQL):


# Каталог конфигурационных файлов
lidsadm -A -s /usr/sbin/mysqld -d -o /etc -j READ
# Каталог с файлами сообщений
lidsadm -A -s /usr/sbin/mysqld -d -o /usr/share/mysql -j READ
# Каталог с базами данных
lidsadm -A -s /usr/sbin/mysqld -d -o /var/lib/mysql -j WRITE
# Доступ к разделяемым библиотекам
lidsadm -A -s /usr/sbin/mysqld -d -o /usr/lib -j READ
lidsadm -A -s /usr/sbin/mysqld -d -o /lib -j READ
lidsadm -A -s /usr/sbin/mysqld -d -o /etc/ld.so.cache -j READ
# Файлы для запуска
lidsadm -A -s /usr/sbin/mysqld -d -o /var/run -j WRITE
# Доступ к базовому каталогу
lidsadm -A -s /usr/sbin/mysqld -d -o /usr -j READ

Для всех перечисленных в домене каталогов должны быть установлены правила доступа по умолчанию, даже если эти правила доступа - разрешение записи-чтения для всех.


lidsadm -A -o /var -j WRITE
lidsadm -A -o /etc -j READ
lidsadm -A -o /usr -j READ

В противном случае LIDS будет ругаться:


root@dhl ~# lidsadm -A -s /usr/sbin/mysqld -d -o /var/run -j WRITE
ADD
lidsadm: you must define the default rules for object files

и правило не будет добавлено.

Домены позволяют запускать программы в строго ограниченном пространстве без создания специального пользователя и без использования chroot.

Предыдущая

Содержание

Следующая


(c)Ерижоков А.А., 2001.
Использование данного документа разрешено только с согласия автора и с указанием первоисточника: DH's Linux Site


      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2024 LinuxRSP