Example #1
0
    def test_inject_admin_password(self):
        vfs = vfsguestfs.VFSGuestFS("/some/file", "qcow2")
        vfs.setup()

        def fake_salt():
            return "1234567890abcdef"

        self.stubs.Set(diskapi, '_generate_salt', fake_salt)

        vfs.handle.write("/etc/shadow",
                         "root:$1$12345678$xxxxx:14917:0:99999:7:::\n" +
                         "bin:*:14495:0:99999:7:::\n" +
                         "daemon:*:14495:0:99999:7:::\n")

        vfs.handle.write("/etc/passwd",
                         "root:x:0:0:root:/root:/bin/bash\n" +
                         "bin:x:1:1:bin:/bin:/sbin/nologin\n" +
                         "daemon:x:2:2:daemon:/sbin:/sbin/nologin\n")

        diskapi._inject_admin_password_into_fs("123456", vfs)

        self.assertEquals(vfs.handle.files["/etc/passwd"],
                          {'content': "root:x:0:0:root:/root:/bin/bash\n" +
                                      "bin:x:1:1:bin:/bin:/sbin/nologin\n" +
                                      "daemon:x:2:2:daemon:/sbin:" +
                                      "/sbin/nologin\n",
                           'gid': 100,
                           'isdir': False,
                           'mode': 0700,
                           'uid': 100})
Example #2
0
    def test_inject_admin_password(self):
        vfs = vfsguestfs.VFSGuestFS("/some/file", "qcow2")
        vfs.setup()

        def fake_salt():
            return "1234567890abcdef"

        self.stubs.Set(diskapi, '_generate_salt', fake_salt)

        vfs.handle.write(
            "/etc/shadow", "root:$1$12345678$xxxxx:14917:0:99999:7:::\n" +
            "bin:*:14495:0:99999:7:::\n" + "daemon:*:14495:0:99999:7:::\n")

        vfs.handle.write(
            "/etc/passwd", "root:x:0:0:root:/root:/bin/bash\n" +
            "bin:x:1:1:bin:/bin:/sbin/nologin\n" +
            "daemon:x:2:2:daemon:/sbin:/sbin/nologin\n")

        diskapi._inject_admin_password_into_fs("123456", vfs)

        self.assertEquals(
            vfs.handle.files["/etc/passwd"], {
                'content':
                "root:x:0:0:root:/root:/bin/bash\n" +
                "bin:x:1:1:bin:/bin:/sbin/nologin\n" +
                "daemon:x:2:2:daemon:/sbin:" + "/sbin/nologin\n",
                'gid':
                100,
                'isdir':
                False,
                'mode':
                0700,
                'uid':
                100
            })
    def test_inject_admin_password(self):
        vfs = vfsguestfs.VFSGuestFS(self.file)
        vfs.setup()

        def fake_salt():
            return "1234567890abcdef"

        self.stubs.Set(diskapi, '_generate_salt', fake_salt)

        vfs.handle.write("/etc/shadow",
                         "root:$1$12345678$xxxxx:14917:0:99999:7:::\n" +
                         "bin:*:14495:0:99999:7:::\n" +
                         "daemon:*:14495:0:99999:7:::\n")

        vfs.handle.write("/etc/passwd",
                         "root:x:0:0:root:/root:/bin/bash\n" +
                         "bin:x:1:1:bin:/bin:/sbin/nologin\n" +
                         "daemon:x:2:2:daemon:/sbin:/sbin/nologin\n")

        diskapi._inject_admin_password_into_fs("123456", vfs)

        self.assertEqual(vfs.handle.files["/etc/passwd"],
                         {'content': "root:x:0:0:root:/root:/bin/bash\n" +
                                     "bin:x:1:1:bin:/bin:/sbin/nologin\n" +
                                     "daemon:x:2:2:daemon:/sbin:" +
                                     "/sbin/nologin\n",
                          'gid': 100,
                          'isdir': False,
                          'mode': 0o700,
                          'uid': 100})
        shadow = vfs.handle.files["/etc/shadow"]

        # if the encrypted password is only 13 characters long, then
        # nova.virt.disk.api:_set_password fell back to DES.
        if len(shadow['content']) == 91:
            self.assertEqual(shadow,
                             {'content': "root:12tir.zIbWQ3c" +
                                         ":14917:0:99999:7:::\n" +
                                         "bin:*:14495:0:99999:7:::\n" +
                                         "daemon:*:14495:0:99999:7:::\n",
                              'gid': 100,
                              'isdir': False,
                              'mode': 0o700,
                              'uid': 100})
        else:
            self.assertEqual(shadow,
                             {'content': "root:$1$12345678$a4ge4d5iJ5vw" +
                                         "vbFS88TEN0:14917:0:99999:7:::\n" +
                                         "bin:*:14495:0:99999:7:::\n" +
                                         "daemon:*:14495:0:99999:7:::\n",
                              'gid': 100,
                              'isdir': False,
                              'mode': 0o700,
                              'uid': 100})
        vfs.teardown()
Example #4
0
    def test_inject_admin_password(self):
        vfs = vfsguestfs.VFSGuestFS("/some/file", "qcow2")
        vfs.setup()

        def fake_salt():
            return "1234567890abcdef"

        self.stubs.Set(diskapi, '_generate_salt', fake_salt)

        vfs.handle.write("/etc/shadow",
                         "root:$1$12345678$xxxxx:14917:0:99999:7:::\n" +
                         "bin:*:14495:0:99999:7:::\n" +
                         "daemon:*:14495:0:99999:7:::\n")

        vfs.handle.write("/etc/passwd",
                         "root:x:0:0:root:/root:/bin/bash\n" +
                         "bin:x:1:1:bin:/bin:/sbin/nologin\n" +
                         "daemon:x:2:2:daemon:/sbin:/sbin/nologin\n")

        diskapi._inject_admin_password_into_fs("123456", vfs)

        self.assertEqual(vfs.handle.files["/etc/passwd"],
                         {'content': "root:x:0:0:root:/root:/bin/bash\n" +
                                     "bin:x:1:1:bin:/bin:/sbin/nologin\n" +
                                     "daemon:x:2:2:daemon:/sbin:" +
                                     "/sbin/nologin\n",
                          'gid': 100,
                          'isdir': False,
                          'mode': 0o700,
                          'uid': 100})
        shadow = vfs.handle.files["/etc/shadow"]

        # if the encrypted password is only 13 characters long, then
        # nova.virt.disk.api:_set_password fell back to DES.
        if len(shadow['content']) == 91:
            self.assertEqual(shadow,
                             {'content': "root:12tir.zIbWQ3c" +
                                         ":14917:0:99999:7:::\n" +
                                         "bin:*:14495:0:99999:7:::\n" +
                                         "daemon:*:14495:0:99999:7:::\n",
                              'gid': 100,
                              'isdir': False,
                              'mode': 0o700,
                              'uid': 100})
        else:
            self.assertEqual(shadow,
                             {'content': "root:$1$12345678$a4ge4d5iJ5vw" +
                                         "vbFS88TEN0:14917:0:99999:7:::\n" +
                                         "bin:*:14495:0:99999:7:::\n" +
                                         "daemon:*:14495:0:99999:7:::\n",
                              'gid': 100,
                              'isdir': False,
                              'mode': 0o700,
                              'uid': 100})
        vfs.teardown()