static FileStatus setOwner( FSDirectory fsd, FSPermissionChecker pc, String src, String username, String group) throws IOException { if (FSDirectory.isExactReservedName(src)) { throw new InvalidPathException(src); } INodesInPath iip; fsd.writeLock(); try { iip = fsd.resolvePath(pc, src, DirOp.WRITE); fsd.checkOwner(pc, iip); if (!pc.isSuperUser()) { if (username != null && !pc.getUser().equals(username)) { throw new AccessControlException("User " + pc.getUser() + " is not a super user (non-super user cannot change owner)."); } if (group != null && !pc.isMemberOfGroup(group)) { throw new AccessControlException( "User " + pc.getUser() + " does not belong to " + group); } } unprotectedSetOwner(fsd, iip, username, group); } finally { fsd.writeUnlock(); } fsd.getEditLog().logSetOwner(iip.getPath(), username, group); return fsd.getAuditFileInfo(iip); }
void setOwner(String src, String username, String groupname ) throws IOException { unprotectedSetOwner(src, username, groupname); fsImage.getEditLog().logSetOwner(src, username, groupname); }
void setOwner(String src, String username, String groupname ) throws IOException { unprotectedSetOwner(src, username, groupname); fsImage.getEditLog().logSetOwner(src, username, groupname); }
static HdfsFileStatus setOwner( FSDirectory fsd, String src, String username, String group) throws IOException { FSPermissionChecker pc = fsd.getPermissionChecker(); INodesInPath iip; fsd.writeLock(); try { iip = fsd.resolvePathForWrite(pc, src); src = iip.getPath(); fsd.checkOwner(pc, iip); if (!pc.isSuperUser()) { if (username != null && !pc.getUser().equals(username)) { 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 " + username + " does not belong to " + group); } } unprotectedSetOwner(fsd, src, username, group); } finally { fsd.writeUnlock(); } fsd.getEditLog().logSetOwner(src, username, group); return fsd.getAuditFileInfo(iip); }
static HdfsFileStatus setOwner( FSDirectory fsd, String src, String username, String group) throws IOException { FSPermissionChecker pc = fsd.getPermissionChecker(); INodesInPath iip; fsd.writeLock(); try { iip = fsd.resolvePathForWrite(pc, src); src = iip.getPath(); fsd.checkOwner(pc, iip); if (!pc.isSuperUser()) { if (username != null && !pc.getUser().equals(username)) { throw new AccessControlException("User " + username + " is not a super user (non-super user cannot change owner)."); } if (group != null && !pc.containsGroup(group)) { throw new AccessControlException( "User " + username + " does not belong to " + group); } } unprotectedSetOwner(fsd, src, username, group); } finally { fsd.writeUnlock(); } fsd.getEditLog().logSetOwner(src, username, group); return fsd.getAuditFileInfo(iip); }