Jelajahi Sumber

HDFS-10455. Logging the username when deny the setOwner operation. Contributed by Rakesh R.

Brahma Reddy Battula 8 tahun lalu
induk
melakukan
e9c7a97089

+ 4 - 2
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSDirAttrOp.java

@@ -84,10 +84,12 @@ public class FSDirAttrOp {
       fsd.checkOwner(pc, iip);
       if (!pc.isSuperUser()) {
         if (username != null && !pc.getUser().equals(username)) {
-          throw new AccessControlException("Non-super user cannot change owner");
+          throw new AccessControlException("User " + username
+              + " is not a super user (non-super user cannot change owner).");
         }
         if (group != null && !pc.isMemberOfGroup(group)) {
-          throw new AccessControlException("User does not belong to " + group);
+          throw new AccessControlException(
+              "User " + username + " does not belong to " + group);
         }
       }
       unprotectedSetOwner(fsd, iip, username, group);

+ 5 - 5
hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/security/TestPermission.java

@@ -337,7 +337,7 @@ public class TestPermission {
       fail("Expect ACE when a non-super user tries to change a file to a " +
           "group where the user does not belong.");
     } catch (AccessControlException e) {
-      assertThat(e.getMessage(), startsWith("User does not belong to"));
+      assertThat(e.getMessage(), startsWith("User null does not belong to"));
     }
   }
 
@@ -371,8 +371,8 @@ public class TestPermission {
       userfs.setOwner(file, NOUSER, null);
       fail("Expect ACE when a non-super user tries to change owner");
     } catch (AccessControlException e) {
-      assertThat(e.getMessage(), startsWith(
-          "Non-super user cannot change owner"));
+      assertThat(e.getMessage(), startsWith("User " + NOUSER
+          + " is not a super user (non-super user cannot change owner)"));
     }
   }
 
@@ -397,8 +397,8 @@ public class TestPermission {
       fail("Expect ACE or FNFE when a non-super user tries to change owner " +
           "for a non-existent file");
     } catch (AccessControlException e) {
-      assertThat(e.getMessage(), startsWith(
-          "Non-super user cannot change owner"));
+      assertThat(e.getMessage(), startsWith("User " + NOUSER
+          + " is not a super user (non-super user cannot change owner)"));
     } catch (FileNotFoundException e) {
     }
   }