Я думаю, что в наши дни большинство приложений используют PAM, не так ли? http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/Linux-PAM_ADG.html. Тем не менее, вы можете посмотреть на источник `pam_unix.so ', чтобы увидеть, как они это делают. Я посмотрел в pam_unix_passwd.c и проследил:
/* update the password database(s) -- race conditions..? */
retval = unix_update_db(pamh, ctrl, user, pass_old, pass_new);
To здесь , у которого множество функций с префиксом `pwdb '. Гугл снова показал этот , который, я думаю, является источником passwd .
В результате я думаю, что редактирование этих файлов обрабатывается libpwdb
. Конечно, я вижу, включает в себя:
#include <pwdb/pwdb_public.h>
#include <pwdb/pwdb_shadow.h>
Но find . -name "*pwdb*" 2>/dev/null
пока ничего не обнаружил в моей системе.