def _testCheckKey(self, filename):
     self.sshDir.child(filename).setContent(self.content)
     user = UsernamePassword("user", "password")
     user.blob = "foobar"
     self.assertTrue(self.checker.checkKey(user))
     user.blob = "eggspam"
     self.assertTrue(self.checker.checkKey(user))
     user.blob = "notallowed"
     self.assertFalse(self.checker.checkKey(user))
Beispiel #2
0
 def _testCheckKey(self, filename):
     self.sshDir.child(filename).setContent(self.content)
     user = UsernamePassword("user", "password")
     user.blob = "foobar"
     self.assertTrue(self.checker.checkKey(user))
     user.blob = "eggspam"
     self.assertTrue(self.checker.checkKey(user))
     user.blob = "notallowed"
     self.assertFalse(self.checker.checkKey(user))
Beispiel #3
0
    def test_checkKeyAsRoot(self):
        """
        If the key file is readable, L{SSHPublicKeyDatabase.checkKey} should
        switch its uid/gid to the ones of the authenticated user.
        """
        keyFile = self.sshDir.child("authorized_keys")
        keyFile.setContent(self.content)
        # Fake permission error by changing the mode
        keyFile.chmod(0000)
        self.addCleanup(keyFile.chmod, 0777)
        # And restore the right mode when seteuid is called
        savedSeteuid = self.mockos.seteuid

        def seteuid(euid):
            keyFile.chmod(0777)
            return savedSeteuid(euid)

        self.mockos.euid = 2345
        self.mockos.egid = 1234
        self.patch(self.mockos, "seteuid", seteuid)
        self.patch(util, 'os', self.mockos)
        user = UsernamePassword("user", "password")
        user.blob = "foobar"
        self.assertTrue(self.checker.checkKey(user))
        self.assertEqual(self.mockos.seteuidCalls, [0, 1, 0, 2345])
        self.assertEqual(self.mockos.setegidCalls, [2, 1234])
Beispiel #4
0
 def test_checkKeyAsRoot(self):
     """
     If the key file is readable, L{SSHPublicKeyDatabase.checkKey} should
     switch its uid/gid to the ones of the authenticated user.
     """
     keyFile = self.sshDir.child("authorized_keys")
     keyFile.setContent(self.content)
     # Fake permission error by changing the mode
     keyFile.chmod(0000)
     self.addCleanup(keyFile.chmod, 0777)
     # And restore the right mode when seteuid is called
     savedSeteuid = self.mockos.seteuid
     def seteuid(euid):
         keyFile.chmod(0777)
         return savedSeteuid(euid)
     self.mockos.euid = 2345
     self.mockos.egid = 1234
     self.patch(self.mockos, "seteuid", seteuid)
     self.patch(checkers, 'os', self.mockos)
     self.patch(util, 'os', self.mockos)
     user = UsernamePassword("user", "password")
     user.blob = "foobar"
     self.assertTrue(self.checker.checkKey(user))
     self.assertEqual(self.mockos.seteuidCalls, [0, 1, 0, 2345])
     self.assertEqual(self.mockos.setegidCalls, [2, 1234])