'Process linux system login files.
Orchestrates collection of  account entries from /etc/passwd and
/etc/shadow. The passwd and shadow entries are reconciled and group
memberships are mapped to the account.
Args:
fileset: A dict of files mapped from path to an open file.
Yields:
- A series of User entries, each of which is populated with
group memberships and indications of the shadow state of the account.
- A series of anomalies in cases where there are mismatches between passwd
and shadow state.'

def ParseFileset(self, fileset=None):

    self.AddPassword(fileset)
    self.AddShadow(fileset)
    self.ReconcileShadow(self.shadow_store)
    for rdf in LinuxSystemGroupParser().ParseFileset(fileset):
        if isinstance(rdf, rdf_client.Group):
            self.groups[rdf.name] = rdf
        else:
            (yield rdf)
    self.AddGroupMemberships()
    for user in self.entry.values():
        (yield user)
    for grp in self.groups.values():
        (yield grp)
    for anom in self.FindAnomalies():
        (yield anom)
