Banana Studio
News · BS Manager

SSH Server 0.13.0: оболочка SSH теперь остаётся в папках пользователя

В SSH Server 0.13.0 оболочка SSH подчиняется тем же правилам, что и SFTP: оболочка каждого пользователя видит только заданные ему папки, папки только для чтения остаются только для чтения, а скрытые файлы остаются скрытыми. Также исправлены обрыв сеанса SFTP при неверном пути и два экрана, уходившие под строку состояния на Android 15 и новее.

SSH Server 0.13.0: оболочка SSH теперь остаётся в папках пользователя
On this page

SSH Server 0.13.0: оболочка SSH теперь остаётся в папках пользователя

SSH Server 0.13.0 уже доступен в Google Play для телефонов, планшетов и Android TV. В этом выпуске закрыт пробел, с которым сталкивались некоторые из вас: оболочка SSH теперь подчиняется тем же правилам, что и SFTP. Оболочка каждого пользователя видит только заданные ему папки и ничего больше.

Почему это важно

В SSH Server каждому пользователю назначается список папок. SFTP всегда соблюдал этот список: пользователь, которому дали только Download, видел Download и ничего больше.

Оболочка SSH этого не делала. Когда тот же пользователь открывал терминал через ssh, оболочка запускалась в собственной закрытой папке приложения и могла просматривать всё, к чему у приложения был доступ. Это сбивало с толку («Почему я не вижу папку Download в оболочке?») и означало, что список папок не был настоящим ограничением для тех, кто пользуется оболочкой.

С версии 0.13.0 список папок — это ограничение везде.

Раньше: оболочка могла просматривать всё, к чему у приложения был доступ. Теперь: только папки пользователя, Download (запись) и Photos (только чтение)

Что теперь видит оболочка

Оболочка видит ровно те папки, которые SFTP показывает этому пользователю:

  • Одна папка: она видна как /. Если дать пользователю /storage/emulated/0, то / в его оболочке — это внутренняя память.
  • Несколько папок: / показывает их под псевдонимами. Пользователь с Download и DCIM (показана как Photos) видит в / ровно две папки: Download и Photos.
  • Всё остальное исчезает. Остальной памяти, данных самого приложения и данных других приложений там просто нет. Пути, ведущие наружу, включая .. и трюки Linux через /proc, остаются внутри папок пользователя.

Привычные инструменты оболочки работают как раньше: ls, cd, cp, mv, find, cat, конвейеры, скрипты и фоновые задачи. Системные файлы Android остаются доступными для чтения, чтобы эти команды могли работать, как в любой оболочке Android.

Вот настоящий сеанс в SSH Server 0.13.0:

Настоящий сеанс SSH: pwd показывает /, ls / показывает Download и Photos, запись в Photos запрещена, /storage/emulated/0 не существует

Папки только для чтения и скрытые файлы тоже работают

Две настройки, знакомые по SFTP, теперь работают и в оболочке:

  • Доступ на запись: если у папки снят флажок Доступ на запись, оболочка может открывать её, читать и копировать из неё файлы, но не может ничего внутри создавать, изменять, переименовывать или удалять. Вы увидите Read-only file system, как на диске только для чтения.
  • Показывать скрытые файлы: если эта настройка выключена для пользователя, файлы и папки, имена которых начинаются с точки (.ssh, .cache, …), пропадают и из списков оболочки: в ls -a, find и автодополнении по Tab. Как и в SFTP, скрытый файл можно открыть по точному имени.

Экран «Пользователи»: у пользователя есть Download (Доступ на запись включён) и Photos (Доступ на запись выключен)

Как настроить

Включать ничего не нужно. Оболочка использует папки, которые вы уже задали для каждого пользователя:

  1. Откройте SSH Server и нажмите Пользователи.
  2. Нажмите на карандаш рядом с пользователем.
  3. В разделе Путь доступа нажмите Добавить и выберите папку. Повторите для каждой папки, которая нужна пользователю.
  4. Снимите флажок Доступ на запись у папок, которые должны быть только для чтения.
  5. Нажмите ✓, чтобы сохранить. При следующем входе оболочка этого пользователя покажет ровно эти папки.

Не хотите давать пользователю оболочку вообще? Переключатель Отключить shell на том же экране по-прежнему её отключает.

Работает везде, без root

Новая оболочка работает без root на любом устройстве, которое поддерживает SSH Server: телефонах, планшетах и Android TV с 64- и 32-битными процессорами ARM и x86. Мы проверили её на Android с 6 по 16.

На немногих очень старых устройствах, в основном с Android 6 и 7 и устаревшим ядром системы, нет функции, которая нужна оболочке. Там SSH Server не переходит на неограниченную оболочку: сеанс показывает короткое сообщение о том, что оболочку запустить нельзя, и закрывается. SFTP на таких устройствах работает как обычно.

Два исправления

SFTP больше не обрывает сеанс из-за неверного пути. Если открыть путь вне своих папок, например ls /storage/emulated/0, соединение могло закрыться с сообщением Connection closed. Теперь вы получаете обычное «not found» и продолжаете работу.

Раньше: Connection closed. Теперь: «not found», и сеанс продолжается

Экраны «Пользователи» и «Журнал» правильно отображаются на Android 15 и новее. В новых версиях Android заголовок и стрелка «Назад» этих двух экранов уходили под строку состояния. Теперь они расположены под ней.

На Android 15 заголовок экрана «Пользователи» уходил под строку состояния; теперь он под ней

Вопросы

Мои файлы были в /storage/emulated/0. Где они теперь? В папках пользователя. Выполните ls /, чтобы их увидеть. Если вы дали пользователю всю внутреннюю память, то это и есть /.

Оболочка пишет, что недоступна или не может запуститься. Что делать? Проверьте, что у пользователя есть хотя бы одна папка в разделе Путь доступа и что у SSH Server есть разрешение на доступ к файлам. Если всё в порядке, ваше устройство — одно из немногих без функции ядра, нужной оболочке; SFTP по-прежнему работает.

Изменился ли SFTP? Нет. SFTP уже работал так. Изменилась только оболочка, плюс исправление SFTP выше.

Скачать

SSH Server 0.13.0 уже распространяется в Google Play:

Спасибо всем, кто писал нам об оболочке и SFTP. Ждём новых отзывов!

Videos

SSH Server 0.13.0: что нового

Related posts

Image2SVG 2.1: цветной SVG, живой предпросмотр и многое другое
News

Image2SVG 2.1: цветной SVG, живой предпросмотр и многое другое

Image2SVG 2.1 — наше самое большое обновление: цветные SVG до 8 цветов, пресеты векторизации с живым предпросмотром, цвета и размер SVG, вывод в PDF/EPS/DXF, экспорт в PNG, просмотрщик со сравнением и масштабированием, обрезка, отправка из других приложений, экспорт в ZIP и 14 новых языков. А ещё приложение готово к Android 17.

Image2SVG - Конвертер SVG
Photo EXIF Editor 2.5.5: редактирование IPTC-описаний, ключевых слов и авторства на Android
News

Photo EXIF Editor 2.5.5: редактирование IPTC-описаний, ключевых слов и авторства на Android

В Photo EXIF Editor 2.5.5 появилось редактирование IPTC для JPEG-фото: названия, описания, ключевые слова, автор, авторские права и место съёмки, для одного снимка или сразу для целой группы. Даты, которые вы задаёте отсканированным и старым фото, теперь правильно отображаются в галерее, сохранение больше не оставляет испорченных снимков, а конвертер HEIC снова работает на Android 16.

Photo EXIF Editor
Daily Wallpapers 0.3.21: обои больше не увеличены, загрузка только по Wi-Fi и виджет в одно касание
News

Daily Wallpapers 0.3.21: обои больше не увеличены, загрузка только по Wi-Fi и виджет в одно касание

Daily Wallpapers 0.3.21 исправляет обои, которые после ночной смены выглядели увеличенными или размытыми, больше не обрезает лишнее у портретных фото, добавляет параметр «Загружать только по Wi-Fi» и виджет на главном экране, который меняет обои одним касанием. Приложение также готово к Android 16 и 17.

Daily Wallpapers