それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

SpotLight検索からコマンドを実行する。

Alfred みたいにコマンドを実行できたら良いなと思ってた

多機能過ぎるものはあまり好きじゃないし、ぱっと作ってぱっと使えるものでいいかなと思っています

SpotLight の検索対象フォルダに入れるだけ

つまり、 SpotLight が検索しインデックス化出来るところに、コマンドを置いておけばいい。

たとえば、次のような場所

~/Document/bin/

ここはSpotlightが検索してくれないので実行できない。

/usr/local/bin

実行権限をつける

chmod a+x MyTesting

+x して実行権限をつければ準備完了。

あとは選べば実行される。

f:id:takuya_1st:20171209212147p:plain

ほんとコレだけ。

コレだけだけど、Document以下に置くという発送がなくて盲点だった。

Alfredを自慢されたけど

ぜんぜん羨ましくないんだからね。

Spotlightで出来ること

Appleさんは、アプリの機能をパクるので有名だからな。Alfred 出来たような、計算や辞書サーチは簡単にできる

WorkFlowを作るにはAutomator

Automator でワークフローを作っておけば、Spotlightからぱぱっと実行できて便利ですよね。

SSHをSFTPに制限して、ディレクトリを制限(chroot)した専用アカウントを作る

なぜSFTP専用アカウントなのか

SSHを解放するのはちょっと・・・ね

ssh でなんでも出来てしまうし、なんでも見れてしまうんで。chroot したSFTP専用アカウントを作ってみようと思った。

chroot 脱出は、、、まぁ出来るんだろうけど、不用意にファイルを見せない的な意味でSFTPに限定したアカウントがあれば便利だねって。

前提条件

SFTPのアカウントをChrootさせるには、いくつか前提条件があって。

  • ssh が起動している
  • アカウントがある。
  • sftp がサブシステムで有効になってる
  • chroot ディレクトリが root:root 755 になってる

SSHを起動してログインできるようにする

これは最初から付属して有効になってるだろうから割愛。

ufw などファイアウォールがあれば、それを使ってログインできるようにしておく

ユーザーの作成

SSHができるユーザーを作成しておく、これも adduser コマンドでなどで十分

複数ユーザーを作るときは、ファイルが共有できるように umask 0002 にして useradd -aG groupname でグループを整えておく

ユーザー名の保護

もし、ユーザー名をよくあるものにして、パスワードログインを許可するのであれば、ユーザー名に難解な文字列を付与しておくのがベターだと思います。

Mac の場合は、 sf-pwgen を使って読みやすいアルファベットの羅列を生成できます。

takuya@Desktop$ sf-pwgen -a memorable -a letters -l  15
itwitichyozcyic
tecelyuprakamui
nivoujicloipher
eweogozadgeerho
ausholdubiishai

www-adminwebuser などわかりやすい文字列の後ろに追記しておくと良いでしょう。

SFTPを使う人相手に公開鍵認証を説明するのも面倒な話だし。

SFTPの設定

SFTP の設定をしたいユーザー名に次のような設定を書きます。

/etc/ssh/sshd_config

## currently only sftp user
Subsystem sftp /usr/lib/openssh/sftp-server
match user webuser-ausholdubiishai
  PasswordAuthentication yes
  X11Forwarding no
  AllowTcpForwarding no
  ForceCommand internal-sftp
  ChrootDirectory /var/www/

一つずつ見ておきます。

Subsystem sftp /usr/lib/openssh/sftp-server

これは、SSHの内部SFTPサーバーを有効にします。標準で入っています

match user

match user webuser-ausholdubiishai ユーザー名がマッチした時にそれ以降の設定を上書きします。

match group or match user name*

複数ユーザーがいるときは、Match Groupワイルドカードが便利です。

PasswordAuthentication yes

パスワードログインを許可します。

X11Forwarding ForceCommand AllowTcpForwarding

  X11Forwarding no
  AllowTcpForwarding no
  ForceCommand internal-sftp

ここでは、通常のSSHで出来るようなシェル機能を無効にしておきます。ログインしたら シェルとして sftp サーバーを起動するようにしておきます。

ChrootDirectory /var/www/

SFTPでアクセスしたときに Chroot を掛けて、指定のフォルダ以降のアクセスに限定します。

ディレクトリのアクセス制限

chroot したいディレクトリのパーミッションを root:root で 755 にします。

 ll -d /var/www
drwxr-xr-x 5 root root 4096 Dec  7 18:46 /var/www/

もしコレを忘れると、切断されて broken pipe などとエラーになったりします。

最後に再起動

ssh をリロード(再起動)して終わりです。

systemctl reload ssh 

これで完了

まとめ

パーミッションにハマるとしんどい。最初に知っておけばよかった。

SFTPは各種ソフトが対応していてファイルの転送だけを考えれば、使いやすい。

ユーザー名とパスワードを考えるのが面倒なのでユーザー名自動生成でアルファベット的に読めるものを自動生成はうれしいですね。

あと、chroot は便宜的なもので過信してはいけない。

今時なら、SFTPを使わずCIまわして自動デプロイか自動docker なんだろうけどさ。

Macのワイヤレス診断の使い方

Wireless diagnostics(ワイヤレス診断)にはメニューがある

いつも忘れるので、メモをしておく

Wireless diagnosticsを起動したら、ウインドウメニューを開く

f:id:takuya_1st:20171208182650p:plain

すると、各種メニューが出てくる

写真は、チャンネルごとにSSIDを閲覧する方法。

f:id:takuya_1st:20171208182822p:plain

他にも色々見られる

ノイズとRSSIの変化を見たり

f:id:takuya_1st:20171208183029p:plain

WiFIをスニッファモードにしたり

f:id:takuya_1st:20171208183131p:plain

いつも存在を忘れる。