В файловой системе стандарта POSIX (стандарт для всех *nix), есть аттрибуты файла в виде rwxrwxrwx, плюс еще два-три специальных бита.
Собственно этот аттрибут и правится. Внутри файла ничего не меняется.
Можете нагуглить права доступа в POSIX системах.
Этот флаг говорит системе, что файл - исполняемый. Но как его исполнят, система смотрит по заголовку файла.
Для скриптовых файлов, там обычно указан путь к интерпретатору. Для бинарных - соответствующий заголовок.
В отличие от Windows, расширение в *nix не значит ничего.