Путь к Linux. Руководство по установке и настройке

       

Использование теневых паролей в программах на Си


По большому счету ничего сложного в реализации поддержки теневых паролей нет, за исключением того, что программа должна быть запущена пользователем root (или использовать SUID root), для того, чтобы получить права доступа к файлу /etc/shadow.

Это незначительное замечание приводит, тем не менее к возникновению серьезной проблемы — при создании программ, работающих с SUID необходимо очеь тщательно отлаживать программный код. Например, если программа предусматривает временный запуск оболочки, недопустимо, чтобы этот запуск поисходил при установленном SUID равном root.

В большинстве случаев, если вам необходимо реализовать программу, которая может проверять пароли, но не нуждается ни в каких других функциях root, целесообразно воспользоваться идентификатором shadow.

В приведенном ниже примере мы не используем эту возможность, поскольку демон pppd-1.2.1d и ранее работал с SUID root, а поэтому добавление поддержки теневых паролей не приведет у повышению уязвимости программы.



Содержание раздела