Я пишу кроссплатформенный сервер TCP / IP, и мне нужно аутентифицировать пользователей перед их обслуживанием. Требования предусматривают, что я использую «собственную» аутентификацию платформы, а не создаю свой собственный механизм аутентификации.
Для семейства ОС Linux / Unix я использую getpwnam для аутентификации пользователей, и самый надежный способ, который я знаю, чтобы убедиться, что это работает, - запустить мой сервис от имени root. Других причин для запуска службы от имени root нет, и мне интересно, какие у меня есть варианты? Могу ли я вызвать getpwnam, не будучи root без ущерба для безопасности? Или, если есть альтернативы getpwnam, насколько они переносимы и насколько «дружественны к администратору» в смысле «каких усилий по настройке они требуют?» Причина, по которой независимый механизм аутентификации не обсуждается, именно в том, что он создает «слишком много усилия по настройке ".