Exemplo n.º 1
0
  def testNetgroupParser(self):
    """Ensure we can extract users from a netgroup file."""
    parser = linux_file_parser.NetgroupParser()
    dat = u"""group1 (-,user1,) (-,user2,) (-,user3,)
#group1 comment
group2 (-,user4,) (-,user2,)

super_group (-,user5,) (-,user6,) (-,文德文,) group1 group2
super_group2 (-,user7,) super_group
super_group3 (-,user5,) (-,user6,) group1 group2
"""
    dat_fd = StringIO.StringIO(dat)

    config_lib.CONFIG.Set("Artifacts.netgroup_user_blacklist", ["user2",
                                                                "user3"])
    out = list(parser.Parse(None, dat_fd, None))
    users = []
    for result in out:
      if isinstance(result, rdfvalue.Anomaly):
        self.assertTrue(utils.SmartUnicode(u"文德文") in result.symptom)
      else:
        users.append(result)

    self.assertItemsEqual([x.username for x in users],
                          [u"user1", u"user4", u"user5", u"user6", u"user7"])

    dat_fd.seek(0)
    config_lib.CONFIG.Set("Artifacts.netgroup_filter_regexes",
                          [r"^super_group3$"])
    out = list(parser.Parse(None, dat_fd, None))
    self.assertItemsEqual([x.username for x in out],
                          [u"user5", u"user6"])
Exemplo n.º 2
0
  def testNetgroupParserBadInput(self):
    parser = linux_file_parser.NetgroupParser()
    dat = """group1 (-,user1,) (-,user2,) (-,user3,)
#group1 comment
group2 user4 (-user2,)
super_group (-,,user5,) (-user6,) group1 group2
super_group2 (-,user7,) super_group
"""
    self.assertRaises(parsers.ParseError,
                      list, parser.Parse(None, StringIO.StringIO(dat), None))