docs: public static int getFilePermissions(final File file) {
          if (OsValidator.WINDOWS) {
              logger.trace("Determining 'group' is skipped for file [{}] on [{}]", file, OsValidator.OS);
              return -1;
          }
          try {
              final Path path = Paths.get(file.getAbsolutePath());
              PosixFileAttributes attrs = Files.getFileAttributeView(path, PosixFileAttributeView.class).readAttributes();
              Set<PosixFilePermission> permissions = attrs.permissions();
              int user = toOctalPermission(
                      permissions.contains(PosixFilePermission.OWNER_READ),
                      permissions.contains(PosixFilePermission.OWNER_WRITE),
                      permissions.contains(PosixFilePermission.OWNER_EXECUTE));
              int group = toOctalPermission(
                      permissions.contains(PosixFilePermission.GROUP_READ),
                      permissions.contains(PosixFilePermission.GROUP_WRITE),
                      permissions.contains(PosixFilePermission.GROUP_EXECUTE));
              int others = toOctalPermission(
                      permissions.contains(PosixFilePermission.OTHERS_READ),
                      permissions.contains(PosixFilePermission.OTHERS_WRITE),
                      permissions.contains(PosixFilePermission.OTHERS_EXECUTE));
  
              return user * 100 + group * 10 + others;
          }
          catch(Exception e) {
              logger.warn("Failed to determine 'owner' of {}: {}", file, e.getMessage());
              return -1;
          }
      }