原始的なツールを組み合わせるのが結局は最強なのだ。メーリングリストやRSSみたいに……

概要

コンピュータの設定ファイルや創作のネタなどはクラウドにあげてデスクトップでもスマホでも確認・編集できるようにしている。
設定はいわずもがなシステムがクラッシュしたり乗り換えたときのために、創作ネタは出先で思いついたものをまとめておけばいつでも編集できる。正直ないと困るくらいになった。

ほとんどのことをDropboxに、倉庫的な使い方としてGoogleDriveを使っていたのだが、
平文であっても拡張子が一般的でないと開けない、一括ダウンロードができないor圧縮される、エディタがアプリ組み込みのものや専用のアプリ(Googleドキュメント等)でないと直接編集できないなど、何かと不便だった。

要はファイルシステムとして、いわばただのハードディスクと同じ感覚でオンラインストレージを使いたい!
空いているノートパソコンにSSHサーバを立てて…と思うもそれだと家の中でしか共有できないし、自宅サーバは技術的に立てられそうにない。
そういえば…と思って目を向けたのが、ホームページ用に借りているサーバだった。

つまりhttps://0xconfig.net、お前だっ……!!

使ってる機種

デスクトップ
Arch Linux
メインのファイルマネージャにPCManFM、自動処理にCurlFTPFS
モバイル
Galaxy Note9(Android10)
Galaxy Active Neo(Android5.1)
Nexus7 Grouper(Android4.1)
Note9のファイルマネージャにx-plore、他はファイルマネージャ+

うそ…私の機種、古すぎ?

サーバ情報と前提条件

image image
スターサーバーはFTP接続しかできないがドメインの特典プランや最安プランでも容量は20GBある。サイトの容量として使っているのは5GBもないので特に問題なし。
そのうちSSH接続できるところに乗り換え…とも思うけど、若干価格が高いので容量が欲しくなったら乗り換えたい。

リスクとしてあるのは
・どのファイルやディレクトリでもブラウザにURLさえ打てば表示されうる可能性がある
・FTPなので送受信中の保護がない(SFTPもやってるんだかやってないんだか正直わからん)

ことぐらい。

前者はちゃんと対策がある。後者はまあお隣さんがクラッカーじゃないことを祈りつつ、個人情報を送受信しないことを徹底するしかない。
とりわけLinuxだと.netrcとかwpa_supplicant.confとかで設定ファイルのなかにパスワード書くのが普通にあるので気をつけようね……

サーバ設定編

専用ディレクトリ作成

URLが特定できればアクセス試行できてしまうという点から、できればディレクトリ名は複雑だったりしたほうがいい。
image
もちろんサーバの中にはホームページ用の画像や記事をしまうディレクトリがあるので、先頭をピリオドにした隠しフォルダにしておけばソート時は上下どっちかに寄るのでサイトの手入れのジャマにはならない。
ちなみにこのスクショにそのディレクトリは載ってない。じゃあこのスクショは何なんだ?

のぞき見防止のためのパスワード設定と権限指定

image
サーバの設定からストレージ化する専用ディレクトリにパスワード認証をつける。
この設定はどこのサーバの設定にもたぶんあるし画面がそれぞれ違うと思うので詳しくは割愛。
個人サイトの閲覧パスワードのようなものではない、いわばBASIC認証なのでそこそこ強固ではあると思うけど、実際にアクセスしてみると下記の権限設定のほうが効果が先にでる。
まあ二重ロックということで。

image
続いて権限設定。これもサーバが用意しているWebFTPやその他アプリによって設定方法が違うので詳しくは割愛。
ディレクトリに対して700(rwx------)(グループ、その他によるアクセスを禁止)にする。
ブラウザでアクセスする人は「その他」、ファイルマネージャ等でFTPアクセスしているあいだは「所有者」として動けるので開いたり編集したりすることに問題はない。
この状態でURLとして入力してみて403 Forbiddenが出れば成功。403エラーが出て嬉しいと感じるレアな瞬間。

ついでに403 Forbidden画面をカスタムして404 Not Foundに擬態させておくと、アクセスに成功してもしなくても404 Not Found画面になるので見かけ上の第三のロックになるかもしれない。これは .htaccessの編集でできる。
こうして見るとレンタルサーバって何でもありだな…

クライアント設定・デスクトップ編

正直デスクトップは何でもできるので使用感だけざっくり説明。
・CurlFTPFSで好きなところにマウントしてハードディスク同様に使う
・FTP接続に対応したファイルマネージャを使う
・ftpコマンドやscpコマンドを羅列したスクリプトを作る

…などがある。

ftpコマンドでログインした後の簡易シェルではgrepなどが使えないので、CurlFTPFSでマウントすればいつものシェルが使えてスクリプトが作りやすくなる。実際サイトの更新はマウントしてからスクリプトを走らせることで運営している。
ただしいざ何かを書こうとしてPCManFMでマウントした場所を開いてみると、ディレクトリ移動したときも含めて読み込みが遅くあまり使いものにならない。遅さ的にはフロッピーディスクとか刺して使ってるみたい。

image
スクリプトなどを運用せずグラフィカルに扱うだけであれば、CurlFTPFSは経由せずにファイルマネージャのFTP接続機能でダイレクトにつなげたほうがいいと思う。

image
PCManFMはF4キーでカレントディレクトリをシェルで開く機能があるのでFTP接続後の状態で使ってみたら一応表示してくれた。
もしかしてCurlFTPFSいらないんじゃない……?

テキストエディタによってはリモートにあるファイルはreadonlyモードで開かれてしまい直接編集できないことがあるので、エディタごとに対応の可否がある。
LeafpadではダメだったがGeditは使えた。ペイントソフトも同様かと思う。

Dropboxみたくリモート・ローカル間で完全同期をとりたい場合はまたなんかメンドッチなことが山積みになるのでやってない。
今は「直接編集さえできれば完全同期してるのと同じ」ということにしておく。

クライアント設定・モバイル編

ファイルマネージャ等でFTPサーバを登録 その際、連携して開くテキストエディタ(組み込みでも別アプリでも)がリモート編集に対応しているかチェックする。
編集して保存ボタンを押した時に保存画面が出るようであればリモート編集に対応していない可能性がある。
x-ploreの組み込みエディタは保存して退出するとサーバにアップロードするかと聞かれるので、「はい」とする。

作ったディレクトリをお気に入り登録やホーム画面ショートカットにするなどしてアクセスしやすくする Android7以上であればLinuxをエミュレートするTermuxが入るのでデスクトップ同様にCurlFTPFSも入るんじゃないかと思う…けどいまのところリモート編集したいだけなのでやってない。