69 lines
1.5 KiB
Plaintext
69 lines
1.5 KiB
Plaintext
Goal: Warn about possible need to edit shadow files when editing the
|
|
master files with vipw
|
|
|
|
Fixes: #62821
|
|
|
|
Status wrt upstream: Forwarded but not applied yet
|
|
|
|
Index: shadow-4.1.0/src/vipw.c
|
|
===================================================================
|
|
--- shadow-4.1.0.orig/src/vipw.c
|
|
+++ shadow-4.1.0/src/vipw.c
|
|
@@ -41,6 +41,12 @@
|
|
#include "pwio.h"
|
|
#include "sgroupio.h"
|
|
#include "shadowio.h"
|
|
+
|
|
+#define MSG_WARN_EDIT_OTHER_FILE _( \
|
|
+ "You have modified %s.\n"\
|
|
+ "You may need to modify %s for consistency.\n"\
|
|
+ "Please use the command `%s' to do so.\n")
|
|
+
|
|
/*
|
|
* Global variables
|
|
*/
|
|
@@ -285,17 +291,39 @@
|
|
}
|
|
|
|
if (do_vipw) {
|
|
- if (editshadow)
|
|
+ if (editshadow) {
|
|
vipwedit (SHADOW_FILE, spw_lock, spw_unlock);
|
|
- else
|
|
+ printf (MSG_WARN_EDIT_OTHER_FILE,
|
|
+ SHADOW_FILE,
|
|
+ PASSWD_FILE,
|
|
+ "vipw");
|
|
+ } else {
|
|
vipwedit (PASSWD_FILE, pw_lock, pw_unlock);
|
|
+ if (spw_file_present ())
|
|
+ printf (MSG_WARN_EDIT_OTHER_FILE,
|
|
+ PASSWD_FILE,
|
|
+ SHADOW_FILE,
|
|
+ "vipw -s");
|
|
+ }
|
|
} else {
|
|
#ifdef SHADOWGRP
|
|
- if (editshadow)
|
|
+ if (editshadow) {
|
|
vipwedit (SGROUP_FILE, sgr_lock, sgr_unlock);
|
|
- else
|
|
+ printf (MSG_WARN_EDIT_OTHER_FILE,
|
|
+ SGROUP_FILE,
|
|
+ GROUP_FILE,
|
|
+ "vigr");
|
|
+ } else {
|
|
#endif
|
|
vipwedit (GROUP_FILE, gr_lock, gr_unlock);
|
|
+#ifdef SHADOWGRP
|
|
+ if (sgr_file_present ())
|
|
+ printf (MSG_WARN_EDIT_OTHER_FILE,
|
|
+ GROUP_FILE,
|
|
+ SGROUP_FILE,
|
|
+ "vigr -s");
|
|
+#endif
|
|
+ }
|
|
}
|
|
|
|
nscd_flush_cache ("passwd");
|