exit (E_GRP_UPDATE);
}
grp.gr_mem = add_list(grp.gr_mem, token);
+#ifdef SHADOWGRP
+ if (is_shadow_grp)
+ sgrp.sg_mem = add_list(sgrp.sg_mem, token);
+#endif
token = strtok(NULL, ",");
}
}
new_grent (&grp);
#ifdef SHADOWGRP
if ( is_shadow_grp
- && (pflg || nflg)) {
+ && (pflg || nflg || user_list)) {
osgrp = sgr_locate (group_name);
if (NULL != osgrp) {
sgrp = *osgrp;
if (NULL != grp.gr_mem[0])
grp.gr_mem = dup_list (grp.gr_mem);
}
+#ifdef SHADOWGRP
+ if (NULL != osgrp) {
+ if (!aflg) {
+ sgrp.sg_mem = XMALLOC(1, char *);
+ sgrp.sg_mem[0] = NULL;
+ } else {
+ if (NULL != sgrp.sg_mem[0])
+ sgrp.sg_mem = dup_list(sgrp.sg_mem);
+ }
+ }
+#endif /* SHADOWGRP */
token = strtok(user_list, ",");
while (token) {
exit (E_GRP_UPDATE);
}
grp.gr_mem = add_list(grp.gr_mem, token);
+#ifdef SHADOWGRP
+ if (NULL != osgrp)
+ sgrp.sg_mem = add_list(sgrp.sg_mem, token);
+#endif /* SHADOWGRP */
token = strtok(NULL, ",");
}
}
#ifdef SHADOWGRP
if ( is_shadow_grp
- && (pflg || nflg)) {
+ && (pflg || nflg || user_list)) {
if (sgr_close () == 0) {
fprintf (stderr,
_("%s: failure while writing changes to %s\n"),
add_cleanup (cleanup_report_mod_group, &info_group);
#ifdef SHADOWGRP
if ( is_shadow_grp
- && (pflg || nflg)) {
+ && (pflg || nflg || user_list)) {
add_cleanup (cleanup_report_mod_gshadow, &info_gshadow);
}
#endif
#ifdef SHADOWGRP
if ( is_shadow_grp
- && (pflg || nflg)) {
+ && (pflg || nflg || user_list)) {
if (sgr_lock () == 0) {
fprintf (stderr,
_("%s: cannot lock %s; try again later.\n"),
#ifdef SHADOWGRP
if ( is_shadow_grp
- && (pflg || nflg)) {
+ && (pflg || nflg || user_list)) {
if (sgr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr,
_("%s: cannot open %s\n"),