diff --git a/contrib/assign0.awk b/contrib/assign0.awk new file mode 100755 index 0000000..5045485 --- /dev/null +++ b/contrib/assign0.awk @@ -0,0 +1,30 @@ +#!/usr/bin/awk -f + +# Assign a new uid for users that have uid=0 +BEGIN { + FS=":"; + max_uid = 0; + i = 0; +} + +{ + max_uid = ($3 > max_uid ? $3 : max_uid); + if ($3 == "0") { + uid0[i] = $0; + } else { + good[i] = $0; + } + i += 1; +} + +END { + for (i in good) { + print good[i]; + } + + for (i in uid0) { + max_uid += 1; + split(uid0[i], f, ":"); + print f[1]":"f[2]":"max_uid":"f[4]":"f[5]":"f[6]":"f[7]; + } +} diff --git a/contrib/remove_dupe_gids.awk b/contrib/remove_dupe_gids.awk new file mode 100755 index 0000000..dcfbb1f --- /dev/null +++ b/contrib/remove_dupe_gids.awk @@ -0,0 +1,12 @@ +#!/usr/bin/awk -f +# +# Remove groups that have duplicate gids. The first group wins. +BEGIN{ FS=":" } +{ + if ($3 in gids) { + print "duplicate gid="$3" name="$1", ignoring" > "/dev/stderr"; + next; + } + gids[$3]=$0; + print $0; +}