SSH Server 0.13.0: SSHシェルが指定フォルダの中にとどまるように
SSH Server 0.13.0 では、SSHシェルがSFTPと同じルールに従います。各ユーザーのシェルには割り当てたフォルダだけが見え、読み取り専用フォルダは読み取り専用のまま、隠しファイルは隠されたままになります。
On this page
SSH Server 0.13.0: SSHシェルが指定フォルダの中にとどまるように
SSH Server 0.13.0 が、スマートフォン、タブレット、Android TV 向けに Google Play で公開されました。このリリースは、一部の方が遭遇していた抜け穴をふさぎます。SSHシェルがSFTPと同じルールに従うようになりました。 各ユーザーのシェルには、そのユーザー用に設定したフォルダだけが見え、ほかには何も見えません。
0.13.0 の新機能を1分で紹介します。
なぜ重要なのか
SSH Server では、各ユーザーにフォルダの一覧を割り当てます。SFTP は常にその一覧を守ってきました。Download だけを与えられたユーザーには Download だけが見え、それ以上は見えませんでした。
SSHシェルはそうではありませんでした。同じユーザーが ssh でターミナルを開くと、シェルはアプリ自身のプライベートフォルダから始まり、アプリが到達できるすべての場所を見て回れました。これは分かりにくく(「シェルで Download フォルダが見つからないのはなぜ?」)、シェルを使う人にとってフォルダ一覧は実際には制限になっていませんでした。
0.13.0 からは、フォルダ一覧がどこでも制限になります。

シェルに見えるもの
シェルには、SFTP がそのユーザーに見せるフォルダとまったく同じものが見えます。
- フォルダが1つの場合:
/として表示されます。ユーザーに/storage/emulated/0を与えると、そのシェルの/は内部ストレージになります。 - フォルダが複数の場合:
/はそれらをエイリアスで一覧表示します。DownloadとDCIM(Photosとして表示)を持つユーザーには、/にDownloadとPhotosの2つだけが見えます。 - それ以外はすべて消えます。 ストレージの残り、アプリ自身のデータ、他アプリのデータは、そもそも存在しません。外へ出ようとするパスは、
..や/procを使った Linux のテクニックを含め、ユーザーのフォルダ内にとどまります。
いつものシェルツールは引き続き使えます。ls、cd、cp、mv、find、cat、パイプ、スクリプト、バックグラウンドジョブなどです。Android 自身のシステムファイルは、これらのコマンドが動くように読み取り可能なままで、どの Android シェルとも同じです。
SSH Server 0.13.0 での実際のセッションを示します。

読み取り専用フォルダと隠しファイルも適用されます
SFTP でおなじみの2つの設定が、シェルでも機能するようになりました。
- Writable: フォルダの Writable のチェックを外すと、シェルはそのフォルダを開いて読み、ファイルをコピーして取り出せますが、中に作成・変更・名前変更・削除はできません。読み取り専用ディスクと同じく
Read-only file systemと表示されます。 - Show hidden files: ユーザーに対してこれがオフの場合、名前がドットで始まるファイルやフォルダ(
.ssh、.cacheなど)は、シェルでも一覧から除外されます。ls -a、find、タブ補完も同様です。SFTP と同じく、隠しファイルは正確な名前を指定すれば開けます。

設定方法
新たに有効化するものはありません。シェルは、各ユーザーに対してすでに設定済みのフォルダを使います。
- SSH Server を開き、Users をタップします。
- ユーザーの横の鉛筆をタップします。
- Access path で Add new をタップし、フォルダを選びます。ユーザーに与える各フォルダについて繰り返します。
- 読み取り専用にすべきフォルダでは Writable のチェックを外します。
- ✓ をタップして保存します。そのユーザーが次にログインすると、シェルにはまさにこれらのフォルダが表示されます。
ユーザーにシェルをまったく持たせたくない場合は、同じ画面の Disable shell スイッチで今もオフにできます。
どこでも動作、root 不要
新しいシェルは、SSH Server が対応するすべての端末で root なしに動作します。スマートフォン、タブレット、Android TV、64ビットおよび32ビットの ARM と x86 のプロセッサに対応します。Android 6 から Android 16 までテストしました。
ごく一部の非常に古い端末、主にシステムカーネルが古い Android 6 と 7 では、シェルが必要とする機能がシステムに欠けています。その場合、SSH Server は制限なしのシェルに戻ることはしません。セッションはシェルを起動できない旨の短いメッセージを表示して閉じます。それらの端末でも SFTP は通常どおり動作します。
2つの修正
SFTP が誤ったパスでセッションを終了しなくなりました。 フォルダの外のパス、たとえば ls /storage/emulated/0 を開くと、接続が Connection closed で切れることがありました。今は通常の「not found」メッセージが表示され、作業を続けられます。

Users と SFTP Logs が Android 15 以降で画面に収まります。 新しい Android では、これら2つの画面のタイトルと戻る矢印がステータスバーの下に隠れていました。今はその下に収まります。

よくある質問
以前はファイルが /storage/emulated/0 にありました。今はどこですか?
ユーザーのフォルダの中です。ls / を実行すると見られます。ユーザーに内部ストレージ全体を与えた場合は、それが / そのものです。
シェルが利用不可、または起動できないと表示されます。どうすればよいですか? ユーザーに Access path のフォルダが少なくとも1つあること、そして SSH Server にファイルへのアクセス許可があることを確認してください。どちらも問題なければ、お使いの端末はシェルに必要なカーネル機能を持たない数少ない端末です。SFTP は引き続き使えます。
これで SFTP は変わりますか? いいえ。SFTP はすでにこのように動作していました。変わったのはシェルだけで、加えて上記の SFTP の修正があります。
入手
SSH Server 0.13.0 は現在 Google Play で配信中です。
- スマートフォンとタブレット: Google Play の SSH Server
- Android TV: Android TV 向け SSH Server
シェルと SFTP についてご連絡くださった皆さま、ありがとうございます。これからもご意見をお寄せください。
Videos
Related posts
Image2SVG 2.1:カラー SVG、ライブプレビューなど新機能が満載
Image2SVG 2.1 は過去最大のアップデートです。最大 8 色のカラー SVG、ライブプレビュー付きのプリセット、SVG の色とサイズの指定、PDF/EPS/DXF 出力、PNG 書き出し、比較とズームができるビューアー、切り抜き、他のアプリからの共有、ZIP 書き出し、そして 14 の新しい言語に対応しました。Android 17 にも対応しています。
Photo EXIF Editor 2.5.5:Android で IPTC のキャプション、キーワード、クレジットを編集
Photo EXIF Editor 2.5.5 では、JPEG 写真の IPTC 編集に対応しました。タイトル、説明、 キーワード、作成者、著作権、撮影場所を、1 枚でも複数枚まとめてでも編集できます。 スキャンした写真や古い写真に設定した日付がギャラリーに正しく表示されるようになり、 保存に失敗して壊れた写真が残ることもなくなりました。HEIC コンバーターも Android 16 で再び動作します。
Daily Wallpapers 0.3.21:壁紙が拡大されて表示される問題を解消、Wi-Fi接続時のみのダウンロードとワンタップのウィジェットも追加
Daily Wallpapers 0.3.21 では、夜間の変更後に壁紙が拡大されたりぼやけたりする問題を修正し、縦向きの写真が切り取られすぎないようにしました。さらに「Wi-Fi接続時のみダウンロード」オプションと、ワンタップで壁紙を変更できるホーム画面ウィジェットを追加しています。Android 16 と 17 にも対応しました。