Java Code Examples for org.apache.hadoop.fs.permission.FsPermission#getStickyBit()

The following examples show how to use org.apache.hadoop.fs.permission.FsPermission#getStickyBit() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AclCommands.java    From hadoop with Apache License 2.0 6 votes vote down vote up
@Override
protected void processPath(PathData item) throws IOException {
  out.println("# file: " + item);
  out.println("# owner: " + item.stat.getOwner());
  out.println("# group: " + item.stat.getGroup());
  FsPermission perm = item.stat.getPermission();
  if (perm.getStickyBit()) {
    out.println("# flags: --" +
      (perm.getOtherAction().implies(FsAction.EXECUTE) ? "t" : "T"));
  }

  AclStatus aclStatus = item.fs.getAclStatus(item.path);
  List<AclEntry> entries = perm.getAclBit() ? aclStatus.getEntries()
      : Collections.<AclEntry> emptyList();
  ScopedAclEntries scopedEntries = new ScopedAclEntries(
    AclUtil.getAclFromPermAndEntries(perm, entries));
  printAclEntriesForSingleScope(aclStatus, perm,
      scopedEntries.getAccessEntries());
  printAclEntriesForSingleScope(aclStatus, perm,
      scopedEntries.getDefaultEntries());
  out.println();
}
 
Example 2
Source File: AclCommands.java    From big-c with Apache License 2.0 6 votes vote down vote up
@Override
protected void processPath(PathData item) throws IOException {
  out.println("# file: " + item);
  out.println("# owner: " + item.stat.getOwner());
  out.println("# group: " + item.stat.getGroup());
  FsPermission perm = item.stat.getPermission();
  if (perm.getStickyBit()) {
    out.println("# flags: --" +
      (perm.getOtherAction().implies(FsAction.EXECUTE) ? "t" : "T"));
  }

  AclStatus aclStatus = item.fs.getAclStatus(item.path);
  List<AclEntry> entries = perm.getAclBit() ? aclStatus.getEntries()
      : Collections.<AclEntry> emptyList();
  ScopedAclEntries scopedEntries = new ScopedAclEntries(
    AclUtil.getAclFromPermAndEntries(perm, entries));
  printAclEntriesForSingleScope(aclStatus, perm,
      scopedEntries.getAccessEntries());
  printAclEntriesForSingleScope(aclStatus, perm,
      scopedEntries.getDefaultEntries());
  out.println();
}
 
Example 3
Source File: FSPermissionDTO.java    From hudi with Apache License 2.0 5 votes vote down vote up
public static FSPermissionDTO fromFsPermission(FsPermission permission) {
  if (null == permission) {
    return null;
  }
  FSPermissionDTO dto = new FSPermissionDTO();
  dto.useraction = permission.getUserAction();
  dto.groupaction = permission.getGroupAction();
  dto.otheraction = permission.getOtherAction();
  dto.stickyBit = permission.getStickyBit();
  return dto;
}
 
Example 4
Source File: AclStorage.java    From hadoop with Apache License 2.0 3 votes vote down vote up
/**
 * Creates the new FsPermission for an inode that is receiving an extended
 * ACL, based on its access ACL entries.  For a correctly sorted ACL, the
 * first entry is the owner and the last 2 entries are the mask and other
 * entries respectively.  Also preserve sticky bit and toggle ACL bit on.
 * Note that this method intentionally copies the permissions of the mask
 * entry into the FsPermission group permissions.  This is consistent with the
 * POSIX ACLs model, which presents the mask as the permissions of the group
 * class.
 *
 * @param accessEntries List<AclEntry> access ACL entries
 * @param existingPerm FsPermission existing permissions
 * @return FsPermission new permissions
 */
private static FsPermission createFsPermissionForExtendedAcl(
    List<AclEntry> accessEntries, FsPermission existingPerm) {
  return new FsPermission(accessEntries.get(0).getPermission(),
    accessEntries.get(accessEntries.size() - 2).getPermission(),
    accessEntries.get(accessEntries.size() - 1).getPermission(),
    existingPerm.getStickyBit());
}
 
Example 5
Source File: AclStorage.java    From hadoop with Apache License 2.0 3 votes vote down vote up
/**
 * Creates the new FsPermission for an inode that is receiving a minimal ACL,
 * based on its access ACL entries.  For a correctly sorted ACL, the owner,
 * group and other permissions are in order.  Also preserve sticky bit and
 * toggle ACL bit off.
 *
 * @param accessEntries List<AclEntry> access ACL entries
 * @param existingPerm FsPermission existing permissions
 * @return FsPermission new permissions
 */
private static FsPermission createFsPermissionForMinimalAcl(
    List<AclEntry> accessEntries, FsPermission existingPerm) {
  return new FsPermission(accessEntries.get(0).getPermission(),
    accessEntries.get(1).getPermission(),
    accessEntries.get(2).getPermission(),
    existingPerm.getStickyBit());
}
 
Example 6
Source File: AclStorage.java    From big-c with Apache License 2.0 3 votes vote down vote up
/**
 * Creates the new FsPermission for an inode that is receiving an extended
 * ACL, based on its access ACL entries.  For a correctly sorted ACL, the
 * first entry is the owner and the last 2 entries are the mask and other
 * entries respectively.  Also preserve sticky bit and toggle ACL bit on.
 * Note that this method intentionally copies the permissions of the mask
 * entry into the FsPermission group permissions.  This is consistent with the
 * POSIX ACLs model, which presents the mask as the permissions of the group
 * class.
 *
 * @param accessEntries List<AclEntry> access ACL entries
 * @param existingPerm FsPermission existing permissions
 * @return FsPermission new permissions
 */
private static FsPermission createFsPermissionForExtendedAcl(
    List<AclEntry> accessEntries, FsPermission existingPerm) {
  return new FsPermission(accessEntries.get(0).getPermission(),
    accessEntries.get(accessEntries.size() - 2).getPermission(),
    accessEntries.get(accessEntries.size() - 1).getPermission(),
    existingPerm.getStickyBit());
}
 
Example 7
Source File: AclStorage.java    From big-c with Apache License 2.0 3 votes vote down vote up
/**
 * Creates the new FsPermission for an inode that is receiving a minimal ACL,
 * based on its access ACL entries.  For a correctly sorted ACL, the owner,
 * group and other permissions are in order.  Also preserve sticky bit and
 * toggle ACL bit off.
 *
 * @param accessEntries List<AclEntry> access ACL entries
 * @param existingPerm FsPermission existing permissions
 * @return FsPermission new permissions
 */
private static FsPermission createFsPermissionForMinimalAcl(
    List<AclEntry> accessEntries, FsPermission existingPerm) {
  return new FsPermission(accessEntries.get(0).getPermission(),
    accessEntries.get(1).getPermission(),
    accessEntries.get(2).getPermission(),
    existingPerm.getStickyBit());
}