Перейти к содержанию

Глава 6: Виртуальные файловые системы и сеть

Современное управление файлами редко ограничивается пределами одного физического жесткого диска. Разработчики программного обеспечения поддерживают удаленные промежуточные среды через SFTP; системные администраторы управляют общими файловыми ресурсами предприятия через SMB/CIFS; создатели контента получают доступ к облачному хранилищу и медиа-серверам через WebDAV; и опытные пользователи регулярно проверяют, редактируют и упаковывают сжатые архивы размером в гигабайты.

Традиционные среды рабочего стола вынуждают пользователей манипулировать разрозненными приложениями: отдельная утилита архивирования для распаковки и повторного сжатия zip-архивов, внешний FTP/SFTP-клиент для управления ресурсами сервера и диалоговые окна монтирования операционной системы, которые разбрасывают удаленные тома по отключенным окнам Finder.

ATBCmder устраняет эту фрагментацию с помощью механизма Виртуальной файловой системы (VFS). Созданный на основе унифицированного уровня абстракции URI vfs://, ATBCmder обрабатывает удаленные серверы и сжатые архивы точно так же, как стандартные локальные папки. Вы можете перейти к архиву .tar.gz, просмотреть файлы кода с помощью F3, отредактировать вложенный файл конфигурации с помощью F4 (с автоматической переупаковкой в реальном времени при сохранении) и скопировать ресурсы непосредственно через защищенный сеанс SFTP на локальный NAS SMB, используя стандартный ключ F5 — и все это без извлечения промежуточного ключа. файлы на диск или переключение между отдельными инструментами.


1. Краткое руководство: архитектура VFS и матрица команд

ATBCmder направляет весь доступ к файловой системе через единый уровень абстракции. Независимо от того, указывает ли путь на раздел Apple APFS SSD, элемент внутри вложенного архива .zip или удаленный каталог, размещенный на SFTP-сервере Linux на другом конце света, двухпанельный интерфейс обеспечивает идентичную операционную модель.

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                              ATBCMDER DUAL-PANEL GUI                                   │
│            Left Panel (Active)                  Right Panel (Inactive / Target)        │
├────────────────────────────────────────────────────────────────────────────────────────┤
│                                          │                                             │
│  [1] Local File System                   │  [2] Archive Virtual File System (VFS)      │
│      file:///Users/brain/projects/       │      vfs:///Users/brain/backup.tar.gz/src/  │
│      Direct POSIX / APFS access          │      In-place browse, F3 view, F4 live edit │
│                                          │                                             │
│  [3] Remote Network VFS (SFTP/SSH)       │  [4] Remote Storage VFS (SMB / WebDAV)      │
│      vfs://sftp://deploy@aws.prod/app/   │      vfs://smb://admin@truenas/Pool/Media/  │
│      Paramiko / SSH Keys / Keychain      │      Kernel mount_smbfs / WebDAVClient3     │
│                                          │                                             │
├────────────────────────────────────────────────────────────────────────────────────────┤
│                          UNIFIED VFS DISPATCH ENGINE (vfs://)                          │
│     FileSystemModel ➔ VFSManager ➔ SessionCache ➔ StreamCopyWorker / RepackWorker      │
└────────────────────────────────────────────────────────────────────────────────────────┘

Двойная матрица VFS и сетевая шпаргалка

Действие Сочетание клавиш macOS Классическая клавиша Commander Идентификатор команды Описание
Упаковать файлы в архив Alt+F5 / ⌥F5 Alt+F5 cm_PackFiles Открывает диалоговое окно «Архивный пакет» с параметрами формата, сжатия и пароля.
Извлечение файлов из архива Alt+F9 / ⌥F9 Alt+F9 cm_ExtractFiles Распаковывает выбранные архивы с разрешением коллизий.
Быстрое подключение к сети Меню: Сеть cm_NetworkConnect cm_NetworkConnect Открывает диалоговое окно быстрого специального подключения.
Диспетчер подключений Меню: Сеть cm_ManageConnections cm_ManageConnections Открывает полный сетевой менеджер CRUD с сохраненными профилями подключения.
FTP-соединение Ctrl+S / ⌃S Ctrl+S cm_FTPConnect Быстрый ярлык для запуска сеанса FTP-соединения.
Войти в архив/папку Enter / ⏎ Enter cm_Open Перемещается непосредственно внутри .zip, .tar, .7z или удаленного каталога.
Вернуться к родительской папке Backspace / ⌫ Backspace cm_GoToParent Вылезает из архива или удаленного каталога обратно на родительский уровень.
Просмотр виртуального/удаленного файла F3 / Fn+F3 F3 cm_View Передаёт удаленный или архивный файл в Universal Lister.
Редактировать виртуальный/удаленный файл F4 / Fn+F4 F4 cm_Edit Открывает файл в редакторе; автоматически перепаковывается или загружается обратно при сохранении.
Копирование по панелям/VFS F5 / Fn+F5 F5 cm_Copy Копирует выбранные элементы на локальные, архивные или сетевые конечные точки.
Панель фоновых операций Меню: Показать cm_OperationsPanel cm_OperationsPanel Отслеживает фоновые очереди передачи, скорости и активные потоки.

2. Унифицированная абстракция URI vfs://

Традиционные файловые менеджеры относятся к удаленным серверам и архивам как к людям второго сорта, требуя внешних утилит монтирования, папок временного извлечения или сторонних клиентов передачи. ATBCmder объединяет каждый источник файлов в единую, четко определенную спецификацию URI:

vfs://[protocol]://[user]@[host]:[port]/[remote_path]

2.1 Анатомия виртуальных путей

В зависимости от операционной области URI vfs:// принимают одну из двух стандартных форм:

  1. Архивировать виртуальные пути:

    vfs:///Users/brain/Documents/release_v1.7.zip/src/main.py
    

  2. Внешний префикс: vfs:// указывает FileSystemModel перехватывать обход пути.

  3. Путь к контейнеру: /Users/brain/Documents/release_v1.7.zip идентифицирует физический архив контейнера в локальном хранилище.
  4. Внутренний элемент: src/main.py указывает виртуальный ресурс, вложенный в архив.

  5. Пути к сетевому серверу:

    vfs://sftp://developer@staging.internal.net:2222/var/www/html/index.php
    vfs://smb://admin@192.168.1.50/StoragePool/Backups/2026/
    vfs://webdavs://user@cloud.mycompany.com:443/remote.php/dav/files/user/
    

  6. Спецификатор схемы: идентифицирует драйвер транспорта (sftp, ftp, ftps, smb, webdav, webdavs, gdrive).

  7. Аутентификация: кодирует учетные данные пользователя и целевой порт.
  8. Удаленная цель: определяет абсолютные пути к каталогам и файлам на удаленном хосте.
┌────────────────────────────────────────────────────────────────────────────────────────┐
│                              VFS URI ROUTING IN ACTION                                 │
├────────────────────────────────────────────────────────────────────────────────────────┤
│                                                                                        │
│   Input URI: vfs://sftp://deploy@aws.infra:22/var/log/nginx/access.log                 │
│                 │      │        │        │   └────────────────────► Remote Path        │
│                 │      │        │        └────────────────────────► Port (Default 22)  │
│                 │      │        └─────────────────────────────────► Host / Server      │
│                 │      └──────────────────────────────────────────► Username           │
│                 └─────────────────────────────────────────────────► Protocol Scheme    │
│                                                                                        │
│   Input URI: vfs:///Volumes/Data/Archive.zip/docs/manual.pdf                           │
│                 │                      │        └─────────────────► Archive Member     │
│                 │                      └──────────────────────────► Physical Archive   │
│                 └─────────────────────────────────────────────────► Virtual Scheme     │
└────────────────────────────────────────────────────────────────────────────────────────┘

2.2 Бесшовная интеграция двух панелей

Поскольку виртуальные пути соответствуют стандартным структурам каталогов внутри ATBCmder, вы получаете полную четность двух панелей:

  • Виртуальные рабочие пространства с вкладками: откройте удаленную папку SFTP на вкладке 1, зашифрованный локальный ZIP-архив на вкладке 2 и локальную папку ~/Downloads на вкладке 3.
  • Направленное копирование (F5): выберите файлы на локальной активной панели и нажмите F5, чтобы загрузить их непосредственно на удаленный сервер или в сжатый архив, отображаемый на неактивной панели.
  • Взаимодействие с перетаскиванием: перетаскивайте элементы по панелям между локальными дисками, общими сетевыми ресурсами и архивными иерархиями без промежуточной подготовки.
  • Интерактивная навигационная панель: навигационная панель разбивает виртуальные URI на кликабельные сегменты. Щелкните любую родительскую папку или значок корневого сервера, чтобы мгновенно перейти вверх по дереву.

3. Архив VFS: навигация и проверка на месте

Открытие архива в ATBCmder не требует ручного извлечения или стороннего инструмента распаковки. Просто выделите любой поддерживаемый архив и нажмите Enter (или дважды щелкните мышью). ATBCmder монтирует архив на месте, превращая панель в высокоскоростной браузер виртуальных каталогов.

Archive VFS In-Place Navigation Рисунок 6.1: Навигация внутри многовложенного сжатого архива как виртуальной папки с отображением несжатых размеров, временных меток и подкаталогов.

3.1 Поддерживаемые форматы архивов

ATBCmder имеет встроенные драйверы для всех стандартных форматов архивирования и сжатия:

Формат Расширения файлов Читать раздел «Поддержка» Написать / Упаковать Поддержка шифрования
Почтовый индекс .zip Да Да Стандарт и AES-256 (pyzipper)
GZip-архив .tar.gz, .tgz Да Да Стандартная потоковая передача tar POSIX
Архив BZip2 .tar.bz2, .tbz2 Да Да Высокоскоростное сжатие блоков bzip2
XZ-тарбол .tar.xz, .txz Да Да Высокоэффективное сжатие LZMA2
Обычная СМОЛА .tar Да Да Несжатый ленточный архив UNIX
7-Zip .7z Да Да (через py7zr) LZMA / LZMA2 твердое сжатие

3.2 Рабочие процессы навигации на месте

При просмотре внутри архива:

  1. Ввести подкаталоги: нажмите Enter в любой папке внутри архива, чтобы просмотреть вложенные деревья.
  2. Восхождение к родительскому элементу (..): нажмите Backspace (⌫) или дважды щелкните запись .. [Parent Directory], чтобы подняться. Как только вы достигнете корня архива, нажатие Backspace вернет вас в физический каталог, содержащий файл архива.
  3. Мгновенный просмотр (F3 / Fn+F3): выделите любой документ, изображение или исходный файл внутри архива и нажмите F3. ATBCmder автоматически извлекает целевой файл в безопасную временную песочницу и отображает его в универсальном листере.
  4. Выборочное копирование (F5 / Fn+F5): вместо распаковки всего многогигабайтного архива только для получения одного или двух файлов выберите нужные конкретные элементы и нажмите F5. ATBCmder распаковывает только выбранные элементы непосредственно в неактивную панель.

Note

При предварительном просмотре или копировании отдельных файлов из архива ATBCmder передает только запрошенные байты файла непосредственно из потока контейнера. Он не тратит дисковое пространство и время на распаковку невыбранных одноуровневых файлов.


4. Живая переупаковка: редактирование на месте внутри архивов

Один из самых мощных рабочих процессов в ATBCmder — это Живая переупаковка. Исторически сложилось так, что изменение одного файла, вложенного в сжатый архив, требовало утомительной последовательности из шести шагов: извлечь весь архив, найти целевой файл, отредактировать и сохранить его, повторно сжать каталог в новый архив, удалить исходный архив и очистить временные папки.

ATBCmder делает редактирование файлов внутри архивов таким же простым, как и редактирование стандартных локальных файлов.

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                              LIVE REPACKING LIFECYCLE                                  │
├────────────────────────────────────────────────────────────────────────────────────────┤
│                                                                                        │
│  1. User presses F4 on "config.json" inside "package.zip"                              │
│     │                                                                                  │
│     ├──► ATBCmder extracts "config.json" to sandbox: /tmp/dc_repack_xyz/config.json    │
│     └──► Opens internal EditorDialog with window title: "config.json — Editor"         │
│                                                                                        │
│  2. User modifies file and presses Cmd+S (Save)                                        │
│     │                                                                                  │
│     ├──► Editor emits file_saved signal                                                │
│     └──► RepackWorker checks original archive size vs ArchiveRepackWarningMB threshold │
│                                                                                        │
│  3. Atomic Repack Execution                                                            │
│     │                                                                                  │
│     ├──► Writes modified stream to staging archive: /tmp/package.zip.tmp               │
│     ├──► Validates container integrity via archive driver                              │
│     ├──► Atomic swap: os.replace("/tmp/package.zip.tmp", "/original/package.zip")      │
│     └──► Refreshes active file panel and cleans up sandbox /tmp/dc_repack_xyz/         │
│                                                                                        │
└────────────────────────────────────────────────────────────────────────────────────────┘

4.1 Шаг за шагом: редактирование архивного файла конфигурации

  1. Перейдите в архив (например, application_bundle.zip), нажав Enter.
  2. Найдите файл, который хотите изменить (например, settings.yaml).
  3. Нажмите F4 (Fn+F4). ATBCmder извлекает файл во временный кэш и запускает встроенный редактор.
  4. Внесите изменения в редакторе.
  5. Нажмите Cmd+S (⌘S), чтобы сохранить.
  6. Закройте редактор с помощью Cmd+W (⌘W) или Esc.
  7. RepackWorker ATBCmder автоматически обновляет внутренний элемент, сжимает обновленную структуру во временный файл, атомарно заменяет исходный архив и обновляет вид панели.

[!ВНИМАНИЕ] Охранник большого архива (ArchiveRepackWarningMB) Переупаковка сжатого архива требует распаковки и перекодирования потоков контейнера. Изменение файла размером 10 КБ внутри видеоархива .tar.gz размером 20 ГБ заставит компьютер перезаписать все 20 ГБ данных.

Чтобы предотвратить случайное зависание диска, ATBCmder включает защитный порог безопасности (ArchiveRepackWarningMB, по умолчанию: 100 МБ в atbcmder.xml). Если вы попытаетесь отредактировать или удалить файл внутри архива, размер которого превышает этот предел, ATBCmder отобразит запрос подтверждения: "Модификация этого архива требует перепаковки всего файла, что может занять много времени. Продолжить?"


5. Создание и извлечение архивов (Alt+F5 / Alt+F9)

ATBCmder предоставляет выделенных фоновых работников для создания и извлечения архивов, гарантируя, что ваши файловые панели останутся отзывчивыми даже во время длительных заданий сжатия.

Pack and Extract Archives Рис. 6.2. Диалоговое окно «Параметры архива» (Alt+F5 / cm_PackFiles), показывающее путь назначения, выбор формата, уровни сжатия и шифрование пароля.

5.1 Сжатие файлов (Alt+F5 / ⌥F5 / cm_PackFiles)

Чтобы создать новый архив:

  1. На активной панели выберите файлы или каталоги, которые вы хотите объединить.
  2. Нажмите Alt+F5 (⌥F5) или выберите Файлы ➔ Упаковать... в строке меню.
  3. Появится диалоговое окно Упаковать файлы:
  4. Создать файл архива: путь к файлу назначения. По умолчанию ATBCmder предлагает поместить архив в каталог неактивной панели, названный в честь выделенного элемента.
  5. Формат архива: выберите между ZIP, TAR, TAR.GZ, TAR.BZ2, TAR.XZ или 7Z.
  6. Уровень сжатия:
  7. Store: нулевое сжатие; мгновенная упаковка предварительно сжатых медиафайлов (MP4, JPEG).
  8. Fast: низкая нагрузка на процессор; идеально подходит для быстрых переводов.
  9. Normal (Deflated): сбалансированная скорость и степень сжатия (рекомендуется для общего использования).
  10. Maximum: сжатие максимальной плотности (где применимо, используется LZMA/Bzip2).
  11. Пароль (только ZIP): введите секретную фразу-пароль для шифрования архива.
  12. Нажмите Пуск (или нажмите Enter). Операция выполняется в неблокирующем фоновом потоке с индикатором выполнения и индикатором состояния каждого файла.

Шифрование пароля военного уровня AES-256

Стандартное шифрование ZIP (устаревшее ZipCrypto) криптографически взломано и уязвимо для атак по словарю открытого текста. Когда вы указываете пароль для ZIP-архива, ATBCmder использует шифрование AES-256 на базе pyzipper (pyzipper.AESZipFile со стандартом WZ_AES). Это обеспечивает совместимость с macOS, WinZip и 7-Zip, одновременно защищая конфиденциальные данные от грубого расшифрования.

Разделение огромных архивов на многотомные наборы

Если вам нужно распределить архив по вложениям электронной почты, дискам FAT32 или границам загрузки в облако с ограничением размера файла:

  1. Объедините файлы, используя Alt+F5 (cm_PackFiles).
  2. Выделите полученный архив .zip или .tar и запустите File Splitter через Alt+F6 (cm_FileSpliter).
  3. Выберите предустановленный размер разделения (например, 100 MB, 4.7 GB DVD, CD 700 MB или собственный размер в байтах).
  4. ATBCmder генерирует пронумерованные разделенные части (archive.zip.001, archive.zip.002 и т. д.) вместе с манифестом проверки CRC32. Получатели могут собрать исходный контейнер в любое время, используя cm_FileLinker (cm_Combine).

5.2 Извлечение архивов (Alt+F9 / ⌥F9 / cm_ExtractFiles)

Чтобы извлечь архивы на диск:

  1. Выделите один или несколько архивов на активной панели.
  2. Нажмите Alt+F9 (⌥F9) или выберите Файлы ➔ Извлечь... в строке меню.
  3. Откроется диалоговое окно Извлечение файлов:
  4. Архивировать для извлечения: выбран исходный путь контейнера.
  5. Извлечь в каталог: каталог назначения (по умолчанию неактивная панель).
  6. Предварительный просмотр содержимого: интерактивный список, загружающий элементы архива в режиме реального времени.
  7. Пароль: поле ввода для архивов, защищенных паролем.
  8. Нажмите Начать. Если какой-либо целевой файл уже существует в папке назначения, ATBCmder приостанавливает рабочий процесс и отображает интерактивный диалог коллизий:
  9. Перезаписать: заменяет конфликтующий целевой файл.
  10. Пропустить: существующий файл остается нетронутым и переходит к следующему элементу.
  11. Перезаписать все: автоматически перезаписывает все последующие конфликты.
  12. Пропустить все: автоматически пропускает все существующие целевые файлы.
  13. Отмена: безопасно останавливает процесс извлечения.

6. Удаленная сеть VFS: протоколы и удаленное хранилище

ATBCmder включает в себя многопротокольный сетевой клиентский механизм, способный монтировать, просматривать и манипулировать удаленными серверами непосредственно внутри рабочей области с двумя панелями.

Network VFS Client Рисунок 6.3: Просмотр каталогов удаленного сервера Linux через безопасный SFTP с живыми атрибутами файлов, правами владения и передачей с двух панелей.

Remote Connection Overview Рис. 6.4. Поддерживаемые типы сетевых подключений: FTP/FTPS, безопасный SFTP, облачное хранилище WebDAV и общие сетевые ресурсы SMB.

6.1 Поддерживаемые сетевые протоколы

Схема протокола Порт по умолчанию Транспортный уровень Режимы аутентификации Лучше всего использовать для
sftp:// 22 СШ-2 (Парамико) Пароль, ключ SSH (id_rsa, id_ed25519) Серверы Linux, облачные экземпляры, промежуточные хосты
ftp:// 21 Обычный RFC 959 Анонимное имя пользователя и пароль в открытом виде Устаревший веб-хостинг, локальные лабораторные устройства
ftps:// 990 FTP с шифрованием TLS Имя пользователя и пароль с SSL/TLS Безопасные коммерческие FTP-серверы
smb:// 445 CIFS/SMB3 Windows NT/Kerberos/Локальная учетная запись Общие ресурсы Windows, устройства NAS, серверы Samba
webdav:// 80 HTTP WebDAV Базовая, дайджест-аутентификация Веб-серверы, локальные сетевые хранилища
webdavs:// 443 HTTPS WebDAV Базовая аутентификация с шифрованием SSL/дайджест-аутентификация Nextcloud, ownCloud, коммерческое облачное хранилище
gdrive:// 443 API Google Диска Авторизация токена OAuth2 Облачные диски и общие папки Google Drive

6.2 Возможности протокола и подробное описание

SFTP (протокол передачи файлов SSH)

Драйвер SFTP ATBCmder, поддерживаемый стандартным механизмом SSH paramiko, устанавливает зашифрованные туннели через порт 22:

  • Безопасность ключа хоста (WarningPolicy): в соответствии со строгими требованиями безопасности ATBCmder автоматически обращается к вашему локальному файлу ~/.ssh/known_hosts. При подключении к известному хосту ключи хоста проверяются криптографически. Если обнаружен неизвестный сервер, ATBCmder выдает предупреждение о безопасности, а не молча доверяет неожиданным открытым ключам.
  • Аутентификация по ключу SSH: помимо стандартной аутентификации по паролю, ATBCmder поддерживает файлы секретных ключей SSH (~/.ssh/id_rsa, ~/.ssh/id_ed25519).
  • Сопоставление атрибутов UNIX: сохраняет удаленные восьмеричные режимы файлов (chmod), строки владения пользователем/группой и точные временные метки модификации POSIX.

FTP и FTPS (явный/неявный SSL)

Драйвер FTP, управляемый Python ATB_INL_0000, поддерживает:

  • Пассивный режим (PASV): включен по умолчанию для обеспечения надежных соединений через маршрутизаторы с ограничительным NAT и потребительские брандмауэры.
  • Настраиваемые кодировки: устраняются проблемы с отображением имен файлов, отличных от ASCII, позволяя переключаться между наборами символов UTF-8, ISO-8859-1, GB18030 и Windows-1252.

SMB/Samba (общие ресурсы Windows и устройства NAS)

В отличие от простых библиотек Python SMB пользовательского пространства, которые страдают от низкой скорости передачи, ATBCmder использует гибридную архитектуру:

  • Встроенное ускорение ядра macOS (mount_smbfs): в macOS SambaMounter ATBCmder использует собственную подсистему Apple /sbin/mount_smbfs. Он монтирует удаленный общий ресурс непосредственно в дерево VFS macOS (/Volumes/ или изолированный каталог монтирования), открывая полную пропускную способность чтения/записи SMB3 с аппаратным ускорением.
  • Обнаружение существующего монтирования: если macOS Finder или системный сценарий уже смонтировали целевой общий ресурс SMB, ATBCmder автоматически определяет активную точку монтирования из таблицы ОС mount и мгновенно переходит к ней, избегая избыточных сетевых подключений.

Important

Требования к имени общего ресурса SMB Сервер SMB невозможно просмотреть на уровне простого имени хоста. URI SMB должен включать в путь целевой общий ресурс или имя экспорта:

  • ❌ Неверно: vfs://smb://nas.local/
  • ✅ Допустимо: vfs://smb://nas.local/StoragePool или vfs://smb://192.168.1.100/Media

WebDAV и WebDAVS (Nextcloud/облачное хранилище)

Этот драйвер, созданный на основе webdavclient3, обеспечивает двунаправленную синхронизацию файлов с современными решениями облачного хранения:

  • Проверка сертификата SSL: поддерживает строгую проверку сертификата SSL для общедоступных хостов WebDAVS с возможностью переопределения самозаверяющих сертификатов в настройках частной домашней лаборатории.
  • Рекурсивное создание каталогов (makedirs): автоматически создает недостающие вложенные пути к удаленным каталогам во время операций массовой загрузки.

7. Быстрое подключение и диспетчер подключений

ATBCmder предоставляет два гибких механизма подключения к удаленным хостам: Быстрое подключение для быстрых временных сеансов и Менеджер подключений для постоянных классифицированных закладок сервера.

7.1 Быстрое подключение (cm_NetworkConnect)

Когда вам нужно быстро получить доступ к серверу, не загромождая постоянную конфигурацию:

  1. Выберите Сеть ➔ Быстрое подключение... (или выполните команду cm_NetworkConnect).
  2. Появится облегченное приглашение на подключение:
  3. Протокол: выберите sftp, ftp, ftps, smb, webdav, webdavs или gdrive.
  4. Хост и порт: введите адрес сервера (порт автоматически заполняет значения по умолчанию).
  5. Имя пользователя и пароль: введите учетные данные для подключения.
  6. Удаленный путь: запуск удаленного каталога (по умолчанию: /).
  7. Запомнить пароль: не устанавливайте флажок для односеансового временного соединения.
  8. Нажмите Проверить соединение, чтобы проверить сетевое соединение и учетные данные перед подключением.
  9. Нажмите Подключиться. ATBCmder сразу же открывает новую вкладку на активной панели, указывающую на удаленный сервер.

7.2 Менеджер соединений (cm_ManageConnections)

Для серверов, к которым вы регулярно обращаетесь, Диспетчер подключений предоставляет полную панель настройки конфигурации:

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                              CONNECTION MANAGER DIALOG                                 │
├──────────────────────────────┬─────────────────────────────────────────────────────────┤
│  Saved Connections           │  Connection Details                                     │
│  ┌────────────────────────┐  │  Label:        [ Staging Web Server (AWS)             ] │
│  │ 🔐 AWS Staging Server  │  │  Protocol:     [ SFTP (port 22)                     ▼ ] │
│  │ 🖧 Synology Office NAS │  │  Host:         [ ec2-54-210-10-2.compute.amazonaws.com] │
│  │ 🌐 Nextcloud Personal  │  │  Port:         [ 22                                   ] │
│  │ 📂 Legacy Archive FTP  │  │  Username:     [ ubuntu                               ] │
│  │                        │  │  Password:     [ ••••••••••••••••••                   ] │
│  │                        │  │  Remote Path:  [ /var/www/production                  ] │
│  │                        │  │  [✓] Remember password in macOS Keychain                │
│  └────────────────────────┘  │                                                         │
│  [➕ New] [⧉ Dup] [🗑 Del]    │  [🔍 Test Connection]          [💾 Save]  [🔗 Connect] │
└──────────────────────────────┴─────────────────────────────────────────────────────────┘

Управление профилями сервера

  • Создать новый (➕ New): очищает правую форму для определения новой конфигурации сервера.
  • Дублировать (⧉ Duplicate): клонирует выбранный профиль подключения. Идеально подходит для управления несколькими средами (разработка, промежуточное исполнение, производство) на идентичных конфигурациях хоста.
  • Удалить (🗑 Delete): удаляет профиль подключения и связанные учетные данные из системной цепочки ключей.
  • Тестовое соединение (🔍 Test Connection): отправляет фонового работника (ConnectionTestWorker) для подключения, аутентификации и корректного отключения, проверяя реакцию сервера без его ухода.
  • Подключиться (🔗 Connect): сохраняет все ожидающие изменения полей, устанавливает удаленный сеанс и загружает удаленный каталог в новую активную вкладку панели.

Меню динамических сохраненных соединений

Сохраненные подключения автоматически интегрируются в верхнюю строку меню в разделе Сеть ➔ Сохраненные подключения. Вы можете смонтировать любой сервер, добавленный в закладки, одним щелчком мыши:

  • Network ➔ Saved Connections ➔ 🔐 AWS Staging Server
  • Network ➔ Saved Connections ➔ 🖧 Synology Office NAS

8. Безопасность учетных данных и интеграция связки ключей

Файлы конфигурации файлового менеджера являются основной мишенью для вредоносных программ, собирающих учетные данные. Многие устаревшие файловые менеджеры хранят пароли FTP/SFTP в виде открытых текстовых файлов конфигурации XML или INI, расположенных в домашнем каталоге пользователя.

ATBCmder гарантирует отсутствие хранения учетных данных в открытом виде.

8.1 Архитектура безопасности

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                           CREDENTIAL STORAGE ARCHITECTURE                              │
├────────────────────────────────────────────────────────────────────────────────────────┤
│                                                                                        │
│   Connection Configuration XML                    Apple System Keychain                │
│   (~/.config/atbcmder/atbcmder.xml)               (service: "ATBCmder_VFS")            │
│   ┌─────────────────────────────────────┐         ┌──────────────────────────────────┐ │
│   │ <connection>                        │         │ Label: "AWS Staging Server"      │ │
│   │   <label>AWS Staging</label>        │         │ Key:   Encrypted Secret          │ │
│   │   <scheme>sftp</scheme>             │         │ Access: Controlled by macOS      │ │
│   │   <host>aws.infra.net</host>        │         │         Hardware Security Enclave│ │
│   │   <user>deploy</user>               │         └──────────────────────────────────┘ │
│   │   <password></password>             │                           ▲                  │
│   │ </connection>                       │                           │                  │
│   └─────────────────────────────────────┘                           │                  │
│         ▲                                                           │                  │
│         │ Password stripped on save                                 │ Stored via       │
│         └─────────────────── ConnectionManager ─────────────────────┘ Python keyring   │
│                                                                                        │
└────────────────────────────────────────────────────────────────────────────────────────┘
  1. Очистка XML открытым текстом: всякий раз, когда профили подключения сериализуются на диск (atbcmder.xml), процедура ConnectionManager.save() явно вызывает d["password"] = "" перед записью. Даже если неавторизованная сторона проверит ваш XML-файл конфигурации, никакие пароли сервера никогда не будут раскрыты.
  2. Шифрование системной связки ключей macOS: если установлен флажок Запомнить пароль, пароли сохраняются непосредственно в связке ключей macOS через системный API keyring под идентификатором безопасного сервиса ATBCmder_VFS. Получение и хранение ключей защищены аппаратным обеспечением Secure Enclave от Apple.
  3. Эфемерные сеансы в памяти: если флажок «Запомнить пароль» не установлен, учетные данные хранятся строго в динамической памяти (VFSSessionCache) в течение текущего жизненного цикла приложения и удаляются в момент завершения работы ATBCmder.

9. ⚡ Советы профессионалов: высокопроизводительные удаленные операции

Совет 1. Неблокирующая фоновая очередь передачи (cm_OperationsPanel)

При копировании больших каталогов на удаленные серверы или загрузке многогигабайтных ISO-образов по SFTP никогда не замораживайте свое рабочее пространство. Все операции с сетевыми файлами в ATBCmder автоматически интегрируются в Очередь фоновых операций:

  • Нажмите F5, чтобы начать передачу, затем нажмите Фоновый режим (или включите автоматическую очередь).
  • Откройте панель операций с помощью Показать ➔ Панель операций (cm_OperationsPanel), чтобы отслеживать диаграммы пропускной способности в реальном времени, количество байтов в каждом файле и оценки оставшегося количества передачи.
  • Вы можете приостановить, возобновить или изменить порядок сетевых передач в очереди, продолжая просматривать локальные файлы на обеих панелях.

Совет 2. Копирование потоков по гетерогенным протоколам

Механизм ATB_INL_0000 ATBCmder обеспечивает прямую потоковую передачу между серверами. Если вы перетащите папку с SFTP-сервера на левой панели в общий сетевой ресурс SMB на правой панели:

  • ATBCmder не загружает весь каталог на локальный жесткий диск Mac перед повторной загрузкой.
  • Данные распределяются по кольцу буферов в памяти, передавая байты из исходного сокета непосредственно в целевой сокет. Это исключает износ локального диска и позволяет передавать данные, превышающие доступную емкость локального твердотельного накопителя.

Совет 3. Поддержание сети и предотвращение обрывов соединения

Сетевые брандмауэры с отслеживанием состояния и шлюзы NAT часто разрывают простаивающие TCP-соединения после 60–300 секунд бездействия. Чтобы предотвратить разрыв сеансов при просмотре больших удаленных деревьев:

  • Уровень ATB_INL_0000 ATBCmder автоматически поддерживает контрольные сигналы сеанса при бездействующих соединениях.
  • Если происходит мгновенное обрыв сети, внутренний механизм _retry() выполняет до 3 повторных попыток с использованием экспоненциальной задержки (2^attempt секундные интервалы), прежде чем сообщить об ошибке соединения.

Совет 4. Редактирование удаленных файлов с помощью жизненного цикла автоматической загрузки

Вам нужно отредактировать nginx.conf или скрипт Python непосредственно на удаленном сервере?

  1. Выделите удаленный файл на панели SFTP или WebDAV.
  2. Нажмите F4 (Fn+F4).
  3. ATBCmder загружает файл в изолированную временную песочницу (/tmp/) и открывает его во встроенном редакторе.
  4. Каждый раз, когда вы нажимаете Cmd+S (⌘S), ATBCmder запускает _upload_vfs_temp(), асинхронно передавая обновленный файл обратно на удаленный сервер и отображая подтверждение в строке состояния.
  5. Когда вы закрываете редактор, временный файл надежно отсоединяется от /tmp/.

10. Оповещения системы и безопасности

[!ВНИМАНИЕ] Несоответствие ключа хоста SSH Если SFTP-сервер повторно генерирует свои ключи хоста (например, после переустановки ОС) или если предпринята попытка перехвата сети «злоумышленник посередине», ATBCmder обнаруживает, что ключ сервера не соответствует отпечатку пальца, зарегистрированному в ~/.ssh/known_hosts. Никогда не обходите предупреждения ключа хоста в ненадежных общедоступных сетях Wi-Fi без независимой проверки отпечатка открытого ключа сервера у системного администратора.

Important

Временное кэш-пространство для больших удаленных файлов При просмотре (F3) или редактировании (F4) многогигабайтных файлов, хранящихся на удаленных серверах VFS, ATBCmder передает целевой элемент в ваш локальный том /tmp. Прежде чем открывать большие объемы удаленного видео или файлов базы данных, убедитесь, что в основном контейнере APFS вашего Mac достаточно свободного места.

[!ВНИМАНИЕ] Отключение общих сетевых ресурсов Для общих ресурсов SMB, подключенных через macOS mount_smbfs, прекращение сетевого подключения без отключения может привести к тому, что дескрипторы монтирования в /Volumes/ останутся устаревшими. Всегда используйте меню панели управления или отключите действие перед закрытием ноутбука или сменой сети Wi-Fi.


11. Справочная таблица основной двухматричной клавиатуры

Категория Описание действия Сочетание клавиш macOS Классическая клавиша Commander Идентификатор команды
Архивные операции Упаковать выбранные файлы/папки Alt+F5 / ⌥F5 Alt+F5 cm_PackFiles
Архивные операции Извлечь выбранные архивы Alt+F9 / ⌥F9 Alt+F9 cm_ExtractFiles
Архивные операции Просмотр внутри контейнера архива Enter / ⏎ Enter cm_Open
Архивные операции Выйти из архива в родительский каталог Backspace / ⌫ Backspace cm_ChangeDirToParent
Архивные операции Предварительный просмотр файла внутри архива F3 / Fn+F3 F3 cm_View
Архивные операции Редактировать файл внутри архива (в реальном времени) F4 / Fn+F4 F4 cm_Edit
Архивные операции Извлечь только выбранные элементы F5 / Fn+F5 F5 cm_Copy
Архивные операции Разделить большой архив на тома Alt+F6 / ⌥F6 Alt+F6 cm_FileSpliter / cm_Split
Архивные операции Соберите части разделенного тома Меню: Файлы ➔ Объединить файлы — cm_FileLinker / cm_Combine
Сетевые подключения Диалоговое окно быстрого подключения к сети Меню: Сеть — cm_NetworkConnect
Сетевые подключения Управление сетевыми подключениями Меню: Сеть — cm_ManageConnections
Сетевые подключения Быстрое подключение к FTP-серверу Ctrl+S / ⌃S Ctrl+S cm_FTPConnect
Сетевые подключения Отключить удаленный сетевой ресурс Меню: Сеть — cm_NetworkDisconnect
Управление трансфером Открыть очередь передачи операций Меню: Показать — cm_OperationsPanel
Управление трансфером Приостановить/возобновить активную очередь Space (в очереди) Space —

Готовы отслеживать ресурсы системы, анализировать использование диска и безопасно очищать кэши?

Перейти к Главе 7: Системные инструменты и обслуживание →