ふくもく会その95 - macOS の sudo で音声認識をしたかった
土曜日はふくもく会 その95 〜もっく・ざ・もっく〜に参加してきました。そこで調べてたことの話。
macOS の sudo で TouchID を使えるようにする方法があります(MacのTerminalでsudo実行時にタッチIDを使用する方法 | DevelopersIO)。これを応用して、本人の声なら認証するようにできないか?そんな発想で調べ物を始めました。
まず /etc/pam.d/sudo
って何者か?ということで「PAM設定ファイルの意味と書き方メモ - Qiita」を読んで勉強。なるほど完全に理解した。
要はこの PAM モジュールってやつを書けるようになって、そこで音声認識のコードを書けばいいんでしょう。
PAM モジュールを書くために非常に参考になったのがこちらの Stack Overflow の回答。
linux - how to create a pam module? - Stack Overflow
ざっくりまとめると次の通り。
- Write a Linux PAM module という記事が参考になる。
- もうひとつ記事が紹介されてるけど、これは先述した Qiita の記事を読んでいれば十分そう。
- モジュールは、アプリケーションが認証しようとしたときに PAM によって呼び出される共有オブジェクト。
- auth, account, session, password の4つのステージがあって、それぞれで対応する関数が呼び出される。モジュールではその関数を実装することになる。
- pam_sm_authenticate
- pam_sm_acct_mgmt
- pam_sm_setcred
- pam_sm_open_session
- pam_sm_close_session
- pam_sm_chauthtok
そしてサンプルコードまである!
これはなんとかなりそう。と思ったのが15時過ぎ。そこから紆余曲折して、.so ファイルのビルドまでいくものの、それを /usr/lib/pam.d
に設置できずタイムアップというのが、ふくもく会の時間内での出来事でした。
別途、今年学んだ技術のスライドを書いてたりもしてたし。
このあとちょっと調べて、このサンプルの PAM モジュールを使って sudo
が通るところまでいったのですが、それはまた別の記事として書きます。それでは。