BEGIN { FS = ":"; OFS = ":" } FILENAME == "/etc/passwd" { passwd[++np] = $0 } FILENAME == "/etc/shadow" { # shadow[++ns] = $0; shadow[$1] = $2 } END { # if (np != ns) # { # print "Lines in passwd(" np ") != lines in shadow (" ns ")" # } for (i=1;i<=np;i++) { split(passwd[i],p,":"); if (p[1] == "root") { continue # hide root as stdpasswd does } # split(shadow[i],s,":"); # if(p[1] != s[1]) # { # print p[1] ":???:1:1:" p[1] " or " s[1] ":???:/etc/passwd-shadow.misaligned" # } # else # { if (p[2] == "x") { # print p[1],s[2],p[3],p[4],p[5],p[6],p[7] # print p[1],shadow[p[1]],p[3],p[4],p[5],p[6],p[7] if (shadow[p[1]] != "") { print p[1],shadow[p[1]],p[3],p[4],p[5],p[6],p[7] } else { print p[1],"???",p[3],p[4],p[5],p[6],p[7] } } else { print p[1],p[2],p[3],p[4],p[5],p[6],p[7] } } # } }