オルトプラスエンジニアの日常をお伝えします!

僕はファイルを隠したい

※この記事は「AltPlus Advent Calendar 2016」の9日目の記事です。

こんにちは。id:xshimadaです。

普段はオルトプラスでエンジニアさんの身の回りのお世話をさせていただいております。

本日はライトなネタをひとつ。

ちょっとだけ人に見られたくないファイルってありますよね。

職務上本当に致し方なくやむ得ない事情で保存してある怪しげなファイルとか。

そんな時ふとファイルを隠したくなりますよね。

暗号化されたパスワード付きのイメージ作ったりとかの方法もありますが、今回は簡単にMacでさくっとファイルを隠していきたいと思います。

例えば、

f:id:xshimada:20161207200416p:plain

なんと中身を覗いてみたくなるフォルダ名でしょう。

これでは見てくださいと言っているもので、違うフォルダ作りましょう。

$ mdkir .Himitsu

はい、Himitsuフォルダはみえません。

f:id:xshimada:20161207200855p:plain

もちろん、コマンドラインでは確認できるんですが。

$ ls -la
total 16
drwxr-xr-x   5 kshimada  staff   170 12  7 19:32 .
drwxr-xr-x+ 29 kshimada  staff   986 12  7 14:56 ..
drwxr-xr-x   2 kshimada  staff    68 12  7 19:32 .Himitsu
drwxr-xr-x   2 kshimada  staff    68 12  7 19:32 Secrets

せっかくなので、わかりづらいフォルダ名にしてしまいたいですね。

POSIX準拠のファイルシステムだと、Pathnameあたりの記述をみるに<slash><NUL>以外の文字列はサポートするロケール次第のようです。

(参考)The Open Group Base Specifications Issue 7, 2016 Edition (http://pubs.opengroup.org/onlinepubs/9699919799/)

Macでもやってみましょう。

$ mkdir \
$ mkdir .\
$ mkdir ...
$ ls -la
total 16
drwxr-xr-x   2 kshimada  staff    68 12  7 19:29
drwxr-xr-x   6 kshimada  staff   204 12  7 19:29 .
drwxr-xr-x   2 kshimada  staff    68 12  7 19:29 .
drwxr-xr-x+ 29 kshimada  staff   986 12  7 14:56 ..
drwxr-xr-x   2 kshimada  staff    68 12  7 19:29 ...

みたいなことが可能なようです。

仕事で使われると腹が立つくらいわかりづらいですね。

「.」で始まるファイルなので、初期設定ではFinderからもみえないので安心です。

ところで、<NUL> 以外は使えると言うことで、

$ ruby -r fileutils -e 'FileUtils.mkdir("./\x01")'
$ ls -la
total 16
drwxr-xr-x   2 kshimada  staff    68 12  7 19:34 ?
drwxr-xr-x   4 kshimada  staff   136 12  7 19:34 .
drwxr-xr-x+ 29 kshimada  staff   986 12  7 14:56 ..

みたいなフォルダを作ることも可能です。

(「.」で始まらないからFinderで見えてしまうので、見られたくない場合、「.」を先頭につけましょう。)

ところで、こういうフォルダの作り方は、Linux系のワームやクラックされたサーバに不正プログラムを埋め込まれる時に使われることがあります。

こういった特殊文字やわかりづらい名前のファイルやフォルダを恐ろしく深いpathに隠されたりすることがあります。

そういった時にPOSIX準拠について少し知っておくと、調査時に役にたつかもしれませんね。

それでは、また。