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

Что теперь видит оболочка
Оболочка видит ровно те папки, которые SFTP показывает этому пользователю:
- Одна папка: она видна как
/. Если дать пользователю/storage/emulated/0, то/в его оболочке — это внутренняя память. - Несколько папок:
/показывает их под псевдонимами. Пользователь сDownloadиDCIM(показана какPhotos) видит в/ровно две папки:DownloadиPhotos. - Всё остальное исчезает. Остальной памяти, данных самого приложения и данных других приложений там просто нет. Пути, ведущие наружу, включая
..и трюки Linux через/proc, остаются внутри папок пользователя.
Привычные инструменты оболочки работают как раньше: ls, cd, cp, mv, find, cat, конвейеры, скрипты и фоновые задачи. Системные файлы Android остаются доступными для чтения, чтобы эти команды могли работать, как в любой оболочке Android.
Вот настоящий сеанс в SSH Server 0.13.0:

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

Как настроить
Включать ничего не нужно. Оболочка использует папки, которые вы уже задали для каждого пользователя:
- Откройте SSH Server и нажмите Пользователи.
- Нажмите на карандаш рядом с пользователем.
- В разделе Путь доступа нажмите Добавить и выберите папку. Повторите для каждой папки, которая нужна пользователю.
- Снимите флажок Доступ на запись у папок, которые должны быть только для чтения.
- Нажмите ✓, чтобы сохранить. При следующем входе оболочка этого пользователя покажет ровно эти папки.
Не хотите давать пользователю оболочку вообще? Переключатель Отключить 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» и продолжаете работу.

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

Вопросы
Мои файлы были в /storage/emulated/0. Где они теперь?
В папках пользователя. Выполните ls /, чтобы их увидеть. Если вы дали пользователю всю внутреннюю память, то это и есть /.
Оболочка пишет, что недоступна или не может запуститься. Что делать? Проверьте, что у пользователя есть хотя бы одна папка в разделе Путь доступа и что у SSH Server есть разрешение на доступ к файлам. Если всё в порядке, ваше устройство — одно из немногих без функции ядра, нужной оболочке; SFTP по-прежнему работает.
Изменился ли SFTP? Нет. SFTP уже работал так. Изменилась только оболочка, плюс исправление SFTP выше.
Скачать
SSH Server 0.13.0 уже распространяется в Google Play:
- Телефоны и планшеты: SSH Server в Google Play
- Android TV: SSH Server для Android TV
Спасибо всем, кто писал нам об оболочке и SFTP. Ждём новых отзывов!
Videos
Related posts
Image2SVG 2.1: цветной SVG, живой предпросмотр и многое другое
Image2SVG 2.1 — наше самое большое обновление: цветные SVG до 8 цветов, пресеты векторизации с живым предпросмотром, цвета и размер SVG, вывод в PDF/EPS/DXF, экспорт в PNG, просмотрщик со сравнением и масштабированием, обрезка, отправка из других приложений, экспорт в ZIP и 14 новых языков. А ещё приложение готово к Android 17.
Photo EXIF Editor 2.5.5: редактирование IPTC-описаний, ключевых слов и авторства на Android
В Photo EXIF Editor 2.5.5 появилось редактирование IPTC для JPEG-фото: названия, описания, ключевые слова, автор, авторские права и место съёмки, для одного снимка или сразу для целой группы. Даты, которые вы задаёте отсканированным и старым фото, теперь правильно отображаются в галерее, сохранение больше не оставляет испорченных снимков, а конвертер HEIC снова работает на Android 16.
Daily Wallpapers 0.3.21: обои больше не увеличены, загрузка только по Wi-Fi и виджет в одно касание
Daily Wallpapers 0.3.21 исправляет обои, которые после ночной смены выглядели увеличенными или размытыми, больше не обрезает лишнее у портретных фото, добавляет параметр «Загружать только по Wi-Fi» и виджет на главном экране, который меняет обои одним касанием. Приложение также готово к Android 16 и 17.