{"record":{"id":"140ae06b5a6c2491","repo":"apache/hadoop","slug":"permission-denied-user-access-inode","errorCode":null,"errorMessage":"Permission denied: user={}, access={}, inode=\"{}\":{}:{}:{}{}","messagePattern":"Permission denied: user=(.+?), access=(.+?), inode=\"(.+?)\":(.+?):(.+?):(.+?)(.+?)","errorType":"exception","errorClass":"AccessControlException","httpStatus":null,"severity":"error","filePath":"hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSPermissionChecker.java","lineNumber":472,"sourceCode":"            .callerContext(CallerContext.getCurrent());\n\n        accessControlEnforcer.checkPermissionWithContext(builder.build());\n      } else {\n        accessControlEnforcer.checkPermission(\n            fsOwner, supergroup, callerUgi,\n            iNodeAttr, // single inode attr in the array\n            new INode[]{inode}, // single inode in the array\n            pathComponents, snapshotId,\n            null, -1, // this will skip checkTraverse() because\n            // not checking ancestor here\n            false, null, null,\n            access, // the target access to be checked against the inode\n            null, // passing null sub access avoids checking children\n            false);\n      }\n    } catch (AccessControlException ace) {\n      LOG.debug(\"Error while checking permission: \", ace);\n      throw new AccessControlException(\n          toAccessControlString(nodeAttributes, inode.getFullPathName(),\n              access));\n    }\n  }\n\n  @Override\n  public void checkPermission(String fsOwner, String supergroup,\n      UserGroupInformation callerUgi, INodeAttributes[] inodeAttrs,\n      INode[] inodes, byte[][] components, int snapshotId, String path,\n      int ancestorIndex, boolean doCheckOwner, FsAction ancestorAccess,\n      FsAction parentAccess, FsAction access, FsAction subAccess,\n      boolean ignoreEmptyDir)\n      throws AccessControlException {\n    for(; ancestorIndex >= 0 && inodes[ancestorIndex] == null;\n        ancestorIndex--);\n\n    try {\n      checkTraverse(inodeAttrs, inodes, components, ancestorIndex);","sourceCodeStart":454,"sourceCodeEnd":490,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSPermissionChecker.java#L454-L490","documentation":"Error \"Permission denied: user={}, access={}, inode=\"{}\":{}:{}:{}{}\" thrown in apache/hadoop.","triggerScenarios":"A user attempts to read, write, or execute a file or directory without the required POSIX/ACL permission.","commonSituations":"Accessing another user's files or a directory without execute/search permission on a parent.","solutions":["Grant the user the required permission (chmod/chown or ACLs) or run as a user with sufficient privileges on the inode."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-22T20:17:22.307Z"}