code: private ObjectPermissions getPermissionsInternal() {
      short bucketMode =
          ModeUtils.getUMask(mUfsConf.get(PropertyKey.UNDERFS_S3A_DEFAULT_MODE)).toShort();
      String accountOwner = DEFAULT_OWNER;
  
      // if ACL enabled try to inherit bucket acl for all the objects.
      if (Boolean.parseBoolean(mConf.get(PropertyKey.UNDERFS_S3A_INHERIT_ACL))) {
        try {
          Owner owner = mClient.getS3AccountOwner();
          AccessControlList acl = mClient.getBucketAcl(mBucketName);
  
          bucketMode = S3AUtils.translateBucketAcl(acl, owner.getId());
          if (mConf.isSet(PropertyKey.UNDERFS_S3_OWNER_ID_TO_USERNAME_MAPPING)) {
            accountOwner = CommonUtils.getValueFromStaticMapping(
                mConf.get(PropertyKey.UNDERFS_S3_OWNER_ID_TO_USERNAME_MAPPING), owner.getId());
          } else {
            // If there is no user-defined mapping, use display name or id.
            accountOwner = owner.getDisplayName() != null ? owner.getDisplayName() : owner.getId();
          }
        } catch (AmazonClientException e) {
          LOG.warn("Failed to inherit bucket ACLs, proceeding with defaults. {}", e.getMessage());
        }
      }
  
      return new ObjectPermissions(accountOwner, accountOwner, bucketMode);
    }
docs: Since there is no group in S3 acl, the owner is reused as the group. This method calls the
  S3 API and requires additional permissions aside from just read only. This method is best
  effort and will continue with default permissions (no owner, no group, 0700).
  
  @return the permissions associated with this under storage system