Майкл Джонсон - Разработка приложений в среде Linux. Второе издание

Здесь есть возможность читать онлайн «Майкл Джонсон - Разработка приложений в среде Linux. Второе издание» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2007, ISBN: 2007, Издательство: Вильямс, Жанр: ОС и Сети, Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Разработка приложений в среде Linux. Второе издание: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Разработка приложений в среде Linux. Второе издание»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет собой отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из других операционных систем. Подробно рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование свободно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Изобилие хорошо документированных примеров кода помогает лучше усвоить особенности программирования в Linux.
Книга рассчитана на разработчиков разной квалификации, а также может быть полезна для студентов и преподавателей соответствующих специальностей.

Разработка приложений в среде Linux. Второе издание — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Разработка приложений в среде Linux. Второе издание», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Для восстановления полномочий процесса необходимо использовать один или более из следующих методов: setuid(), setgid(), setgroups(). Этот прием эффективен только в том случае, если используется настоящая действующая файловая система и для всех сохраненных идентификаторах uid (или gid) установлены соответствующие значения. Если программа является setuid (или setgid), то процесс, вероятно, пожелает присвоить данным идентификаторам uid их сохраненное значение uid. Системные демоны, передающие управление другому пользователю после запуска от имени root, должны изменять пользовательские и групповые идентификаторы, а также очищать свой дополнительный групповой список. Более подробное описание того, как процесс может изменять свои сертификаты, можно найти в главе 10.

22.2.2. Получение вспомогательной программы

Если программа нуждается в особых полномочиях не только во время первоначального запуска, то неплохое решение проблемы могут предложить вспомогательные программы. Вместо активизации с повышенными правами доступа всего приложения целиком, главная программа работает как стандартный пользователь, запустивший ее, а также активизирует еще одну очень маленькую программу, которая обладает достаточными сертификатами для выполнения требуемой задачи. При проектировании приложения таким способом значительно снижается сложность того кода, который может подвергнуться атаке. Подобное упрощение позволяет легче обнаружить и исправить любые ошибки. Если в главном приложений есть некоторые проблемные места, позволяющие пользователю выполнять произвольные действия, то эти действия можно будет производить только со стандартными пользовательскими сертификатами. Тем самым любые атаки затрагивают только конкретного стандартного пользователя, но не привилегированного.

Применение маленьких вспомогательных программ приобрело широкую популярность в сообществе Linux. Библиотека utempter(обсуждаемая в главе 16) использует вспомогательную setgid-программу для обновления базы данных utmp. Эта программа очень внимательно проверяет правильность аргументов командной строки, а также контролирует, имеет ли вызывающее приложение разрешение на обновление базы данных utmp. Тем программам, которые предусматривают данную службу через вспомогательное приложение utempter, вообще не требуется никаких особых полномочий. До создания этой библиотеки каждая программа, использующая псевдотерминалы, была обязана быть setgid для той группы, которой принадлежит база данных utmp.

Еще одним примером вспомогательной программы может послужить программа unix_chkpwd, которая используется РАМ (Pluggable Authentication Modules — подключаемые модули аутентификации, подробнее рассматривается в главе 28). Пароли в большинстве систем Linux хранятся в файле, доступном для чтения только пользователю root. Это предотвращает словарные атаки на зашифрованные пароли пользователей [159] Словарная атака — это довольно прямолинейный метод обнаружения паролей, когда автоматическая программа прогоняет огромный список обычных паролей (таких как слова в словаре) до тех пор, пока один из них не подойдет. . Некоторые программы проверяют, действительно ли возле компьютера находится тот пользователь, который вошел в систему (программа xscreensaverможет применяться для блокировки экрана до возвращения пользователя), но они обычно работают не как программы root. Вместо того чтобы делать такие программы setuid на root, дабы они могли проверить правильность пользовательского пароля, стандартная аутентификация РАМ Unix вызывает unix_chkpwdдля подтверждения пароля. Таким образом, необходимость быть setuid на root существует только для программы unix_chkpwd. Это означает, что потребность создавать xscreensaverкак привилегированную программу отпадает, а также что все слабые места в системе безопасности библиотек X11 не допускают локальной эксплуатации.

Применение вспомогательных программ подобным способом является очень хорошим методом устранения в приложениях возможных проблем безопасности. Создание таких вспомогательных программ, как правило, является достаточно прямолинейным процессом, а их правильность определить относительно просто. Однако в конструкции таких программ есть пара моментов, в которых нужно проявить осторожность.

Довольно часто между главным приложением и вспомогательной программой передаются конфиденциальные данные. Например, для программы unix_chkpwdнеобходимо передавать незакодированный пароль пользователя для подтверждения его правильности. При передаче такой информации нужно принять некоторые меры предосторожности. Очень заманчиво использовать аргумент командной строки, однако это позволит любому пользователю, который в нужное время запустит ps, увидеть незакодированные пользовательские пароли. Если вместо этого для подачи данных применяется канал (обычно указанный в качестве стандартного ввода для вспомогательной программы), то во время передачи ни одна другая программа не сможет увидеть данные.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Разработка приложений в среде Linux. Второе издание»

Представляем Вашему вниманию похожие книги на «Разработка приложений в среде Linux. Второе издание» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Геше Джампа Тинлей - Лоджонг (второе издание)
Геше Джампа Тинлей
Алексей Филатов - Люди «А». Второе издание
Алексей Филатов
Отзывы о книге «Разработка приложений в среде Linux. Второе издание»

Обсуждение, отзывы о книге «Разработка приложений в среде Linux. Второе издание» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x