Защита /etc/passwd и /etc/shadow от одновременного доступа

Как защитить / etc / passwd и / etc / shadow от одновременного доступа? Я не вижу никакого механизма блокировки в pwd.h, Я вижу руководство для pwd_mkdb упоминает получение блокировки, но это просто блокировка файла для монопольного доступа?

Существует ли соглашение о блокировке этих файлов, если бы я написал утилиту для их непосредственного изменения или через семейство функций get / set / endpwent?

1 ответ

Я думаю, что большинство приложений используют 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);

Здесь, у которого много функций с префиксом `pwdb'. Поиск в Google снова показал это, и я думаю, что это источник passwd.

В результате я думаю, что редактирование этих файлов выполняется libpwdb, Конечно, я вижу, включает в себя:

#include <pwdb/pwdb_public.h>
#include <pwdb/pwdb_shadow.h>

Но find . -name "*pwdb*" 2>/dev/null пока ничего не обнаружилось в моей системе.

Другие вопросы по тегам