Do not fail on missing files in /etc/, create them instead.

passwd, shadow, group, gshadow etc. can be managed via nss -
e.g. system default accounts can be specified using nss_altfiles,
rather than in /etc/. Thus despite having default accounts, these
files can be missing on disk and thus should be opened with O_CREATE
whenever they are attempted to be opened in O_RDWR modes.
This commit is contained in:
Dimitri John Ledkov 2015-02-27 13:17:25 +00:00
parent 71c6165dcd
commit ee43f47f45
No known key found for this signature in database
GPG Key ID: 43388EE7C151C9C9
21 changed files with 54 additions and 54 deletions

View File

@ -592,7 +592,7 @@ static void open_files (bool readonly)
} }
pw_locked = true; pw_locked = true;
} }
if (pw_open (readonly ? O_RDONLY: O_RDWR) == 0) { if (pw_open (readonly ? O_RDONLY: O_CREAT | O_RDWR) == 0) {
fprintf (stderr, _("%s: cannot open %s\n"), Prog, pw_dbname ()); fprintf (stderr, _("%s: cannot open %s\n"), Prog, pw_dbname ());
SYSLOG ((LOG_WARN, "cannot open %s", pw_dbname ())); SYSLOG ((LOG_WARN, "cannot open %s", pw_dbname ()));
fail_exit (E_NOPERM); fail_exit (E_NOPERM);
@ -613,7 +613,7 @@ static void open_files (bool readonly)
} }
spw_locked = true; spw_locked = true;
} }
if (spw_open (readonly ? O_RDONLY: O_RDWR) == 0) { if (spw_open (readonly ? O_RDONLY: O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), Prog, spw_dbname ()); _("%s: cannot open %s\n"), Prog, spw_dbname ());
SYSLOG ((LOG_WARN, "cannot open %s", spw_dbname ())); SYSLOG ((LOG_WARN, "cannot open %s", spw_dbname ()));

View File

@ -463,7 +463,7 @@ static void update_gecos (const char *user, char *gecos)
fail_exit (E_NOPERM); fail_exit (E_NOPERM);
} }
pw_locked = true; pw_locked = true;
if (pw_open (O_RDWR) == 0) { if (pw_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), Prog, pw_dbname ()); _("%s: cannot open %s\n"), Prog, pw_dbname ());
fail_exit (E_NOPERM); fail_exit (E_NOPERM);

View File

@ -316,7 +316,7 @@ static void open_files (void)
fail_exit (1); fail_exit (1);
} }
gr_locked = true; gr_locked = true;
if (gr_open (O_RDWR) == 0) { if (gr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), Prog, gr_dbname ()); _("%s: cannot open %s\n"), Prog, gr_dbname ());
fail_exit (1); fail_exit (1);
@ -332,7 +332,7 @@ static void open_files (void)
fail_exit (1); fail_exit (1);
} }
sgr_locked = true; sgr_locked = true;
if (sgr_open (O_RDWR) == 0) { if (sgr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, _("%s: cannot open %s\n"), fprintf (stderr, _("%s: cannot open %s\n"),
Prog, sgr_dbname ()); Prog, sgr_dbname ());
fail_exit (1); fail_exit (1);

View File

@ -313,7 +313,7 @@ static void open_files (void)
fail_exit (1); fail_exit (1);
} }
pw_locked = true; pw_locked = true;
if (pw_open (O_RDWR) == 0) { if (pw_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), Prog, pw_dbname ()); _("%s: cannot open %s\n"), Prog, pw_dbname ());
fail_exit (1); fail_exit (1);
@ -328,7 +328,7 @@ static void open_files (void)
fail_exit (1); fail_exit (1);
} }
spw_locked = true; spw_locked = true;
if (spw_open (O_RDWR) == 0) { if (spw_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, spw_dbname ()); Prog, spw_dbname ());

View File

@ -373,7 +373,7 @@ static void update_shell (const char *user, char *newshell)
fail_exit (1); fail_exit (1);
} }
pw_locked = true; pw_locked = true;
if (pw_open (O_RDWR) == 0) { if (pw_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, _("%s: cannot open %s\n"), Prog, pw_dbname ()); fprintf (stderr, _("%s: cannot open %s\n"), Prog, pw_dbname ());
SYSLOG ((LOG_WARN, "cannot open %s", pw_dbname ())); SYSLOG ((LOG_WARN, "cannot open %s", pw_dbname ()));
fail_exit (1); fail_exit (1);

View File

@ -370,7 +370,7 @@ static void open_files (void)
add_cleanup (log_gpasswd_failure_system, NULL); add_cleanup (log_gpasswd_failure_system, NULL);
if (gr_open (O_RDWR) == 0) { if (gr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, gr_dbname ()); Prog, gr_dbname ());
@ -380,7 +380,7 @@ static void open_files (void)
#ifdef SHADOWGRP #ifdef SHADOWGRP
if (is_shadowgrp) { if (is_shadowgrp) {
if (sgr_open (O_RDWR) == 0) { if (sgr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, sgr_dbname ()); Prog, sgr_dbname ());

View File

@ -346,7 +346,7 @@ static void open_files (void)
add_cleanup (cleanup_report_add_group, group_name); add_cleanup (cleanup_report_add_group, group_name);
/* And now open the databases */ /* And now open the databases */
if (gr_open (O_RDWR) == 0) { if (gr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ()); fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ());
SYSLOG ((LOG_WARN, "cannot open %s", gr_dbname ())); SYSLOG ((LOG_WARN, "cannot open %s", gr_dbname ()));
exit (E_GRP_UPDATE); exit (E_GRP_UPDATE);
@ -354,7 +354,7 @@ static void open_files (void)
#ifdef SHADOWGRP #ifdef SHADOWGRP
if (is_shadow_grp) { if (is_shadow_grp) {
if (sgr_open (O_RDWR) == 0) { if (sgr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, sgr_dbname ()); Prog, sgr_dbname ());

View File

@ -246,7 +246,7 @@ static void open_files (void)
add_cleanup (cleanup_report_del_group, group_name); add_cleanup (cleanup_report_del_group, group_name);
/* An now open the databases */ /* An now open the databases */
if (gr_open (O_RDWR) == 0) { if (gr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, gr_dbname ()); Prog, gr_dbname ());
@ -255,7 +255,7 @@ static void open_files (void)
} }
#ifdef SHADOWGRP #ifdef SHADOWGRP
if (is_shadow_grp) { if (is_shadow_grp) {
if (sgr_open (O_RDWR) == 0) { if (sgr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, sgr_dbname ()); Prog, sgr_dbname ());

View File

@ -536,14 +536,14 @@ static void open_files (void)
#endif #endif
} }
if (gr_open (list ? O_RDONLY : O_RDWR) == 0) { if (gr_open (list ? O_RDONLY : O_CREAT | O_RDWR) == 0) {
fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ()); fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ());
fail_exit (EXIT_GROUP_FILE); fail_exit (EXIT_GROUP_FILE);
} }
#ifdef SHADOWGRP #ifdef SHADOWGRP
if (is_shadowgrp) { if (is_shadowgrp) {
if (sgr_open (list ? O_RDONLY : O_RDWR) == 0) { if (sgr_open (list ? O_RDONLY : O_CREAT | O_RDWR) == 0) {
fprintf (stderr, _("%s: cannot open %s\n"), Prog, sgr_dbname ()); fprintf (stderr, _("%s: cannot open %s\n"), Prog, sgr_dbname ());
fail_exit (EXIT_GROUP_FILE); fail_exit (EXIT_GROUP_FILE);
} }

View File

@ -663,7 +663,7 @@ static void lock_files (void)
*/ */
static void open_files (void) static void open_files (void)
{ {
if (gr_open (O_RDWR) == 0) { if (gr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ()); fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ());
SYSLOG ((LOG_WARN, "cannot open %s", gr_dbname ())); SYSLOG ((LOG_WARN, "cannot open %s", gr_dbname ()));
exit (E_GRP_UPDATE); exit (E_GRP_UPDATE);
@ -672,7 +672,7 @@ static void open_files (void)
#ifdef SHADOWGRP #ifdef SHADOWGRP
if ( is_shadow_grp if ( is_shadow_grp
&& (pflg || nflg)) { && (pflg || nflg)) {
if (sgr_open (O_RDWR) == 0) { if (sgr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, sgr_dbname ()); Prog, sgr_dbname ());
@ -683,7 +683,7 @@ static void open_files (void)
#endif /* SHADOWGRP */ #endif /* SHADOWGRP */
if (gflg) { if (gflg) {
if (pw_open (O_RDWR) == 0) { if (pw_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, pw_dbname ()); Prog, pw_dbname ());

View File

@ -299,7 +299,7 @@ static void open_files (void)
* Open the files. Use O_RDONLY if we are in read_only mode, * Open the files. Use O_RDONLY if we are in read_only mode,
* O_RDWR otherwise. * O_RDWR otherwise.
*/ */
if (gr_open (read_only ? O_RDONLY : O_RDWR) == 0) { if (gr_open (read_only ? O_RDONLY : O_CREAT | O_RDWR) == 0) {
fprintf (stderr, _("%s: cannot open %s\n"), Prog, fprintf (stderr, _("%s: cannot open %s\n"), Prog,
grp_file); grp_file);
if (use_system_grp_file) { if (use_system_grp_file) {
@ -308,7 +308,7 @@ static void open_files (void)
fail_exit (E_CANT_OPEN); fail_exit (E_CANT_OPEN);
} }
#ifdef SHADOWGRP #ifdef SHADOWGRP
if (is_shadow && (sgr_open (read_only ? O_RDONLY : O_RDWR) == 0)) { if (is_shadow && (sgr_open (read_only ? O_RDONLY : O_CREAT | O_RDWR) == 0)) {
fprintf (stderr, _("%s: cannot open %s\n"), Prog, fprintf (stderr, _("%s: cannot open %s\n"), Prog,
sgr_file); sgr_file);
if (use_system_sgr_file) { if (use_system_sgr_file) {

View File

@ -163,7 +163,7 @@ int main (int argc, char **argv)
fail_exit (5); fail_exit (5);
} }
gr_locked = true; gr_locked = true;
if (gr_open (O_RDWR) == 0) { if (gr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ()); fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ());
fail_exit (1); fail_exit (1);
} }

View File

@ -166,7 +166,7 @@ int main (int argc, char **argv)
fail_exit (5); fail_exit (5);
} }
gr_locked = true; gr_locked = true;
if (gr_open (O_RDWR) == 0) { if (gr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), Prog, gr_dbname ()); _("%s: cannot open %s\n"), Prog, gr_dbname ());
fail_exit (1); fail_exit (1);

View File

@ -805,27 +805,27 @@ static void open_files (void)
} }
#endif /* ENABLE_SUBIDS */ #endif /* ENABLE_SUBIDS */
if (pw_open (O_RDWR) == 0) { if (pw_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, _("%s: cannot open %s\n"), Prog, pw_dbname ()); fprintf (stderr, _("%s: cannot open %s\n"), Prog, pw_dbname ());
fail_exit (EXIT_FAILURE); fail_exit (EXIT_FAILURE);
} }
if (is_shadow && (spw_open (O_RDWR) == 0)) { if (is_shadow && (spw_open (O_CREAT | O_RDWR) == 0)) {
fprintf (stderr, _("%s: cannot open %s\n"), Prog, spw_dbname ()); fprintf (stderr, _("%s: cannot open %s\n"), Prog, spw_dbname ());
fail_exit (EXIT_FAILURE); fail_exit (EXIT_FAILURE);
} }
if (gr_open (O_RDWR) == 0) { if (gr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ()); fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ());
fail_exit (EXIT_FAILURE); fail_exit (EXIT_FAILURE);
} }
#ifdef SHADOWGRP #ifdef SHADOWGRP
if (is_shadow_grp && (sgr_open (O_RDWR) == 0)) { if (is_shadow_grp && (sgr_open (O_CREAT | O_RDWR) == 0)) {
fprintf (stderr, _("%s: cannot open %s\n"), Prog, sgr_dbname ()); fprintf (stderr, _("%s: cannot open %s\n"), Prog, sgr_dbname ());
fail_exit (EXIT_FAILURE); fail_exit (EXIT_FAILURE);
} }
#endif #endif
#ifdef ENABLE_SUBIDS #ifdef ENABLE_SUBIDS
if (is_sub_uid) { if (is_sub_uid) {
if (sub_uid_open (O_RDWR) == 0) { if (sub_uid_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, sub_uid_dbname ()); Prog, sub_uid_dbname ());
@ -833,7 +833,7 @@ static void open_files (void)
} }
} }
if (is_sub_gid) { if (is_sub_gid) {
if (sub_gid_open (O_RDWR) == 0) { if (sub_gid_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, sub_gid_dbname ()); Prog, sub_gid_dbname ());

View File

@ -573,7 +573,7 @@ static void update_noshadow (void)
exit (E_PWDBUSY); exit (E_PWDBUSY);
} }
pw_locked = true; pw_locked = true;
if (pw_open (O_RDWR) == 0) { if (pw_open (O_CREAT | O_RDWR) == 0) {
(void) fprintf (stderr, (void) fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, pw_dbname ()); Prog, pw_dbname ());
@ -627,7 +627,7 @@ static void update_shadow (void)
exit (E_PWDBUSY); exit (E_PWDBUSY);
} }
spw_locked = true; spw_locked = true;
if (spw_open (O_RDWR) == 0) { if (spw_open (O_CREAT | O_RDWR) == 0) {
(void) fprintf (stderr, (void) fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, spw_dbname ()); Prog, spw_dbname ());

View File

@ -281,7 +281,7 @@ static void open_files (void)
* Open the files. Use O_RDONLY if we are in read_only mode, O_RDWR * Open the files. Use O_RDONLY if we are in read_only mode, O_RDWR
* otherwise. * otherwise.
*/ */
if (pw_open (read_only ? O_RDONLY : O_RDWR) == 0) { if (pw_open (read_only ? O_RDONLY : O_CREAT | O_RDWR) == 0) {
fprintf (stderr, _("%s: cannot open %s\n"), fprintf (stderr, _("%s: cannot open %s\n"),
Prog, pw_dbname ()); Prog, pw_dbname ());
if (use_system_pw_file) { if (use_system_pw_file) {
@ -290,7 +290,7 @@ static void open_files (void)
fail_exit (E_CANTOPEN); fail_exit (E_CANTOPEN);
} }
if (is_shadow && !use_tcb) { if (is_shadow && !use_tcb) {
if (spw_open (read_only ? O_RDONLY : O_RDWR) == 0) { if (spw_open (read_only ? O_RDONLY : O_CREAT | O_RDWR) == 0) {
fprintf (stderr, _("%s: cannot open %s\n"), fprintf (stderr, _("%s: cannot open %s\n"),
Prog, spw_dbname ()); Prog, spw_dbname ());
if (use_system_spw_file) { if (use_system_spw_file) {
@ -566,7 +566,7 @@ static void check_pw_file (int *errors, bool *changed)
continue; continue;
} }
spw_locked = true; spw_locked = true;
if (spw_open (read_only ? O_RDONLY : O_RDWR) == 0) { if (spw_open (read_only ? O_RDONLY : O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, spw_dbname ()); Prog, spw_dbname ());

View File

@ -200,7 +200,7 @@ int main (int argc, char **argv)
fail_exit (E_PWDBUSY); fail_exit (E_PWDBUSY);
} }
pw_locked = true; pw_locked = true;
if (pw_open (O_RDWR) == 0) { if (pw_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), Prog, pw_dbname ()); _("%s: cannot open %s\n"), Prog, pw_dbname ());
fail_exit (E_MISSING); fail_exit (E_MISSING);

View File

@ -166,7 +166,7 @@ int main (int argc, char **argv)
fail_exit (5); fail_exit (5);
} }
pw_locked = true; pw_locked = true;
if (pw_open (O_RDWR) == 0) { if (pw_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, pw_dbname ()); Prog, pw_dbname ());

View File

@ -1537,7 +1537,7 @@ static void open_files (void)
exit (E_PW_UPDATE); exit (E_PW_UPDATE);
} }
pw_locked = true; pw_locked = true;
if (pw_open (O_RDWR) == 0) { if (pw_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, _("%s: cannot open %s\n"), Prog, pw_dbname ()); fprintf (stderr, _("%s: cannot open %s\n"), Prog, pw_dbname ());
fail_exit (E_PW_UPDATE); fail_exit (E_PW_UPDATE);
} }
@ -1554,7 +1554,7 @@ static void open_files (void)
fail_exit (E_GRP_UPDATE); fail_exit (E_GRP_UPDATE);
} }
gr_locked = true; gr_locked = true;
if (gr_open (O_RDWR) == 0) { if (gr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ()); fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ());
fail_exit (E_GRP_UPDATE); fail_exit (E_GRP_UPDATE);
} }
@ -1567,7 +1567,7 @@ static void open_files (void)
fail_exit (E_GRP_UPDATE); fail_exit (E_GRP_UPDATE);
} }
sgr_locked = true; sgr_locked = true;
if (sgr_open (O_RDWR) == 0) { if (sgr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, sgr_dbname ()); Prog, sgr_dbname ());
@ -1584,7 +1584,7 @@ static void open_files (void)
fail_exit (E_SUB_UID_UPDATE); fail_exit (E_SUB_UID_UPDATE);
} }
sub_uid_locked = true; sub_uid_locked = true;
if (sub_uid_open (O_RDWR) == 0) { if (sub_uid_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, sub_uid_dbname ()); Prog, sub_uid_dbname ());
@ -1599,7 +1599,7 @@ static void open_files (void)
fail_exit (E_SUB_GID_UPDATE); fail_exit (E_SUB_GID_UPDATE);
} }
sub_gid_locked = true; sub_gid_locked = true;
if (sub_gid_open (O_RDWR) == 0) { if (sub_gid_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, sub_gid_dbname ()); Prog, sub_gid_dbname ());
@ -1621,7 +1621,7 @@ static void open_shadow (void)
fail_exit (E_PW_UPDATE); fail_exit (E_PW_UPDATE);
} }
spw_locked = true; spw_locked = true;
if (spw_open (O_RDWR) == 0) { if (spw_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, spw_dbname ()); Prog, spw_dbname ());

View File

@ -565,7 +565,7 @@ static void open_files (void)
fail_exit (E_PW_UPDATE); fail_exit (E_PW_UPDATE);
} }
pw_locked = true; pw_locked = true;
if (pw_open (O_RDWR) == 0) { if (pw_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), Prog, pw_dbname ()); _("%s: cannot open %s\n"), Prog, pw_dbname ());
#ifdef WITH_AUDIT #ifdef WITH_AUDIT
@ -590,7 +590,7 @@ static void open_files (void)
fail_exit (E_PW_UPDATE); fail_exit (E_PW_UPDATE);
} }
spw_locked = true; spw_locked = true;
if (spw_open (O_RDWR) == 0) { if (spw_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, spw_dbname ()); Prog, spw_dbname ());
@ -616,7 +616,7 @@ static void open_files (void)
fail_exit (E_GRP_UPDATE); fail_exit (E_GRP_UPDATE);
} }
gr_locked = true; gr_locked = true;
if (gr_open (O_RDWR) == 0) { if (gr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ()); fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ());
#ifdef WITH_AUDIT #ifdef WITH_AUDIT
audit_logger (AUDIT_DEL_USER, Prog, audit_logger (AUDIT_DEL_USER, Prog,
@ -641,7 +641,7 @@ static void open_files (void)
fail_exit (E_GRP_UPDATE); fail_exit (E_GRP_UPDATE);
} }
sgr_locked= true; sgr_locked= true;
if (sgr_open (O_RDWR) == 0) { if (sgr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, _("%s: cannot open %s\n"), fprintf (stderr, _("%s: cannot open %s\n"),
Prog, sgr_dbname ()); Prog, sgr_dbname ());
#ifdef WITH_AUDIT #ifdef WITH_AUDIT
@ -669,7 +669,7 @@ static void open_files (void)
fail_exit (E_SUB_UID_UPDATE); fail_exit (E_SUB_UID_UPDATE);
} }
sub_uid_locked = true; sub_uid_locked = true;
if (sub_uid_open (O_RDWR) == 0) { if (sub_uid_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), Prog, sub_uid_dbname ()); _("%s: cannot open %s\n"), Prog, sub_uid_dbname ());
#ifdef WITH_AUDIT #ifdef WITH_AUDIT
@ -695,7 +695,7 @@ static void open_files (void)
fail_exit (E_SUB_GID_UPDATE); fail_exit (E_SUB_GID_UPDATE);
} }
sub_gid_locked = true; sub_gid_locked = true;
if (sub_gid_open (O_RDWR) == 0) { if (sub_gid_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), Prog, sub_gid_dbname ()); _("%s: cannot open %s\n"), Prog, sub_gid_dbname ());
#ifdef WITH_AUDIT #ifdef WITH_AUDIT

View File

@ -1532,7 +1532,7 @@ static void open_files (void)
fail_exit (E_PW_UPDATE); fail_exit (E_PW_UPDATE);
} }
pw_locked = true; pw_locked = true;
if (pw_open (O_RDWR) == 0) { if (pw_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, pw_dbname ()); Prog, pw_dbname ());
@ -1545,7 +1545,7 @@ static void open_files (void)
fail_exit (E_PW_UPDATE); fail_exit (E_PW_UPDATE);
} }
spw_locked = true; spw_locked = true;
if (is_shadow_pwd && (spw_open (O_RDWR) == 0)) { if (is_shadow_pwd && (spw_open (O_CREAT | O_RDWR) == 0)) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, spw_dbname ()); Prog, spw_dbname ());
@ -1564,7 +1564,7 @@ static void open_files (void)
fail_exit (E_GRP_UPDATE); fail_exit (E_GRP_UPDATE);
} }
gr_locked = true; gr_locked = true;
if (gr_open (O_RDWR) == 0) { if (gr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, gr_dbname ()); Prog, gr_dbname ());
@ -1578,7 +1578,7 @@ static void open_files (void)
fail_exit (E_GRP_UPDATE); fail_exit (E_GRP_UPDATE);
} }
sgr_locked = true; sgr_locked = true;
if (is_shadow_grp && (sgr_open (O_RDWR) == 0)) { if (is_shadow_grp && (sgr_open (O_CREAT | O_RDWR) == 0)) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, sgr_dbname ()); Prog, sgr_dbname ());
@ -1595,7 +1595,7 @@ static void open_files (void)
fail_exit (E_SUB_UID_UPDATE); fail_exit (E_SUB_UID_UPDATE);
} }
sub_uid_locked = true; sub_uid_locked = true;
if (sub_uid_open (O_RDWR) == 0) { if (sub_uid_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, sub_uid_dbname ()); Prog, sub_uid_dbname ());
@ -1610,7 +1610,7 @@ static void open_files (void)
fail_exit (E_SUB_GID_UPDATE); fail_exit (E_SUB_GID_UPDATE);
} }
sub_gid_locked = true; sub_gid_locked = true;
if (sub_gid_open (O_RDWR) == 0) { if (sub_gid_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr, fprintf (stderr,
_("%s: cannot open %s\n"), _("%s: cannot open %s\n"),
Prog, sub_gid_dbname ()); Prog, sub_gid_dbname ());