+sub fetchgroup () {
+ return if $ch_fetchedgroup;
+ die "$configfile:$.: getgroup not specified for host $ch_name\n"
+ unless length $ch_getgroup;
+ fetchfile(%remgroup,"$ch_getgroup |");
+}
+
+sub syncusergroup ($$) {
+ my ($lu,$luid) = @_;
+
+ return 1 if !$opt_usergroups;
+#print STDERR "syncusergroup($lu,$luid)\n";
+ $ugfound=0;
+
+ for $e (@owngroup) {
+ $samename= $e->[0] eq $lu;
+ $sameid= $e->[2] eq $luid;
+ next unless $samename || $sameid;
+ if (!$samename || !$sameid) {
+ diag("local group $e->[0] ($e->[2]) mismatch vs. local user $lu ($luid)");
+ return 0;
+ }
+ if ($ugfound) {
+ diag("per-user group $lu ($luid) duplicated");
+ return 0;
+ }
+ $ugfound=1;
+ }
+
+ return 1 if $ugfound;
+
+ if (!length $opt_createuser) {
+ diag("account creation not enabled, not creating per-user group");
+ return 0;
+ }
+ push @owngroup, [ $lu,'x',$luid,'' ];
+ $modifiedgroup= 1;
+ return 1;
+}
+