Глава 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:
2.1 Анатомия виртуальных путей¶
В зависимости от операционной области URI vfs:// принимают одну из двух стандартных форм:
-
Архивировать виртуальные пути:
-
Внешний префикс:
vfs://указываетFileSystemModelперехватывать обход пути. - Путь к контейнеру:
/Users/brain/Documents/release_v1.7.zipидентифицирует физический архив контейнера в локальном хранилище. -
Внутренний элемент:
src/main.pyуказывает виртуальный ресурс, вложенный в архив. -
Пути к сетевому серверу:
-
Спецификатор схемы: идентифицирует драйвер транспорта (
sftp,ftp,ftps,smb,webdav,webdavs,gdrive). - Аутентификация: кодирует учетные данные пользователя и целевой порт.
- Удаленная цель: определяет абсолютные пути к каталогам и файлам на удаленном хосте.
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ 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 монтирует архив на месте, превращая панель в высокоскоростной браузер виртуальных каталогов.
Рисунок 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 Рабочие процессы навигации на месте¶
При просмотре внутри архива:
- Ввести подкаталоги: нажмите
Enterв любой папке внутри архива, чтобы просмотреть вложенные деревья. - Восхождение к родительскому элементу (
..): нажмитеBackspace(⌫) или дважды щелкните запись.. [Parent Directory], чтобы подняться. Как только вы достигнете корня архива, нажатиеBackspaceвернет вас в физический каталог, содержащий файл архива. - Мгновенный просмотр (
F3/Fn+F3): выделите любой документ, изображение или исходный файл внутри архива и нажмитеF3. ATBCmder автоматически извлекает целевой файл в безопасную временную песочницу и отображает его в универсальном листере. - Выборочное копирование (
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 Шаг за шагом: редактирование архивного файла конфигурации¶
- Перейдите в архив (например,
application_bundle.zip), нажавEnter. - Найдите файл, который хотите изменить (например,
settings.yaml). - Нажмите
F4(Fn+F4). ATBCmder извлекает файл во временный кэш и запускает встроенный редактор. - Внесите изменения в редакторе.
- Нажмите
Cmd+S(⌘S), чтобы сохранить. - Закройте редактор с помощью
Cmd+W(⌘W) илиEsc. RepackWorkerATBCmder автоматически обновляет внутренний элемент, сжимает обновленную структуру во временный файл, атомарно заменяет исходный архив и обновляет вид панели.
[!ВНИМАНИЕ] Охранник большого архива (
ArchiveRepackWarningMB) Переупаковка сжатого архива требует распаковки и перекодирования потоков контейнера. Изменение файла размером 10 КБ внутри видеоархива.tar.gzразмером 20 ГБ заставит компьютер перезаписать все 20 ГБ данных.Чтобы предотвратить случайное зависание диска, ATBCmder включает защитный порог безопасности (
ArchiveRepackWarningMB, по умолчанию: 100 МБ вatbcmder.xml). Если вы попытаетесь отредактировать или удалить файл внутри архива, размер которого превышает этот предел, ATBCmder отобразит запрос подтверждения: "Модификация этого архива требует перепаковки всего файла, что может занять много времени. Продолжить?"
5. Создание и извлечение архивов (Alt+F5 / Alt+F9)¶
ATBCmder предоставляет выделенных фоновых работников для создания и извлечения архивов, гарантируя, что ваши файловые панели останутся отзывчивыми даже во время длительных заданий сжатия.
Рис. 6.2. Диалоговое окно «Параметры архива» (Alt+F5 / cm_PackFiles), показывающее путь назначения, выбор формата, уровни сжатия и шифрование пароля.
5.1 Сжатие файлов (Alt+F5 / ⌥F5 / cm_PackFiles)¶
Чтобы создать новый архив:
- На активной панели выберите файлы или каталоги, которые вы хотите объединить.
- Нажмите
Alt+F5(⌥F5) или выберите Файлы ➔ Упаковать... в строке меню. - Появится диалоговое окно Упаковать файлы:
- Создать файл архива: путь к файлу назначения. По умолчанию ATBCmder предлагает поместить архив в каталог неактивной панели, названный в честь выделенного элемента.
- Формат архива: выберите между
ZIP,TAR,TAR.GZ,TAR.BZ2,TAR.XZили7Z. - Уровень сжатия:
Store: нулевое сжатие; мгновенная упаковка предварительно сжатых медиафайлов (MP4, JPEG).Fast: низкая нагрузка на процессор; идеально подходит для быстрых переводов.Normal (Deflated): сбалансированная скорость и степень сжатия (рекомендуется для общего использования).Maximum: сжатие максимальной плотности (где применимо, используется LZMA/Bzip2).- Пароль (только ZIP): введите секретную фразу-пароль для шифрования архива.
- Нажмите Пуск (или нажмите
Enter). Операция выполняется в неблокирующем фоновом потоке с индикатором выполнения и индикатором состояния каждого файла.
Шифрование пароля военного уровня AES-256¶
Стандартное шифрование ZIP (устаревшее ZipCrypto) криптографически взломано и уязвимо для атак по словарю открытого текста. Когда вы указываете пароль для ZIP-архива, ATBCmder использует шифрование AES-256 на базе pyzipper (pyzipper.AESZipFile со стандартом WZ_AES). Это обеспечивает совместимость с macOS, WinZip и 7-Zip, одновременно защищая конфиденциальные данные от грубого расшифрования.
Разделение огромных архивов на многотомные наборы¶
Если вам нужно распределить архив по вложениям электронной почты, дискам FAT32 или границам загрузки в облако с ограничением размера файла:
- Объедините файлы, используя
Alt+F5(cm_PackFiles). - Выделите полученный архив
.zipили.tarи запустите File Splitter черезAlt+F6(cm_FileSpliter). - Выберите предустановленный размер разделения (например,
100 MB,4.7 GB DVD,CD 700 MBили собственный размер в байтах). - ATBCmder генерирует пронумерованные разделенные части (
archive.zip.001,archive.zip.002и т. д.) вместе с манифестом проверки CRC32. Получатели могут собрать исходный контейнер в любое время, используяcm_FileLinker(cm_Combine).
5.2 Извлечение архивов (Alt+F9 / ⌥F9 / cm_ExtractFiles)¶
Чтобы извлечь архивы на диск:
- Выделите один или несколько архивов на активной панели.
- Нажмите
Alt+F9(⌥F9) или выберите Файлы ➔ Извлечь... в строке меню. - Откроется диалоговое окно Извлечение файлов:
- Архивировать для извлечения: выбран исходный путь контейнера.
- Извлечь в каталог: каталог назначения (по умолчанию неактивная панель).
- Предварительный просмотр содержимого: интерактивный список, загружающий элементы архива в режиме реального времени.
- Пароль: поле ввода для архивов, защищенных паролем.
- Нажмите Начать. Если какой-либо целевой файл уже существует в папке назначения, ATBCmder приостанавливает рабочий процесс и отображает интерактивный диалог коллизий:
- Перезаписать: заменяет конфликтующий целевой файл.
- Пропустить: существующий файл остается нетронутым и переходит к следующему элементу.
- Перезаписать все: автоматически перезаписывает все последующие конфликты.
- Пропустить все: автоматически пропускает все существующие целевые файлы.
- Отмена: безопасно останавливает процесс извлечения.
6. Удаленная сеть VFS: протоколы и удаленное хранилище¶
ATBCmder включает в себя многопротокольный сетевой клиентский механизм, способный монтировать, просматривать и манипулировать удаленными серверами непосредственно внутри рабочей области с двумя панелями.
Рисунок 6.3: Просмотр каталогов удаленного сервера Linux через безопасный SFTP с живыми атрибутами файлов, правами владения и передачей с двух панелей.
Рис. 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): в macOSSambaMounterATBCmder использует собственную подсистему 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)¶
Когда вам нужно быстро получить доступ к серверу, не загромождая постоянную конфигурацию:
- Выберите Сеть ➔ Быстрое подключение... (или выполните команду
cm_NetworkConnect). - Появится облегченное приглашение на подключение:
- Протокол: выберите
sftp,ftp,ftps,smb,webdav,webdavsилиgdrive. - Хост и порт: введите адрес сервера (порт автоматически заполняет значения по умолчанию).
- Имя пользователя и пароль: введите учетные данные для подключения.
- Удаленный путь: запуск удаленного каталога (по умолчанию:
/). - Запомнить пароль: не устанавливайте флажок для односеансового временного соединения.
- Нажмите Проверить соединение, чтобы проверить сетевое соединение и учетные данные перед подключением.
- Нажмите Подключиться. 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 ServerNetwork ➔ 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 │
│ │
└────────────────────────────────────────────────────────────────────────────────────────┘
- Очистка XML открытым текстом: всякий раз, когда профили подключения сериализуются на диск (
atbcmder.xml), процедураConnectionManager.save()явно вызываетd["password"] = ""перед записью. Даже если неавторизованная сторона проверит ваш XML-файл конфигурации, никакие пароли сервера никогда не будут раскрыты. - Шифрование системной связки ключей macOS: если установлен флажок Запомнить пароль, пароли сохраняются непосредственно в связке ключей macOS через системный API
keyringпод идентификатором безопасного сервисаATBCmder_VFS. Получение и хранение ключей защищены аппаратным обеспечением Secure Enclave от Apple. - Эфемерные сеансы в памяти: если флажок «Запомнить пароль» не установлен, учетные данные хранятся строго в динамической памяти (
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 непосредственно на удаленном сервере?
- Выделите удаленный файл на панели SFTP или WebDAV.
- Нажмите
F4(Fn+F4). - ATBCmder загружает файл в изолированную временную песочницу (
/tmp/) и открывает его во встроенном редакторе. - Каждый раз, когда вы нажимаете
Cmd+S(⌘S), ATBCmder запускает_upload_vfs_temp(), асинхронно передавая обновленный файл обратно на удаленный сервер и отображая подтверждение в строке состояния. - Когда вы закрываете редактор, временный файл надежно отсоединяется от
/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 |
— |
Готовы отслеживать ресурсы системы, анализировать использование диска и безопасно очищать кэши?