Mac業界の最新動向はもちろん、読者の皆様にいち早くお伝えしたい重要な情報、
日々の取材活動や編集作業を通して感じた雑感などを読みやすいスタイルで提供します。

Mac Fan メールマガジン

掲載日:

「sudo」をTouch ID対応にする – Mac活用“ワンランクアップ”講座 第17回

著者: 海上忍

「sudo」をTouch ID対応にする – Mac活用“ワンランクアップ”講座 第17回

「sudo」をもっと合理的に

Macには重要な機能を備えるコマンドが多数収録されていますが、なかでも「sudo」は最重要といえるかもしれません。sudoは簡潔にいうと「管理者の権限でコマンドラインを実行するためのコマンド」で、本連載第3回で取り上げたスリープモードの変更など、「ターミナル」上で処理するシステムレベルの設定変更では必要不可欠な存在ですから、ぜひ理解しておきましょう。

とはいえ、利用のハードルが高いのは事実。ターミナルでsudoから始まるコマンドラインを実行すると、「Password:」と表示されパスワードの入力待ち状態となりますが、MacにはTouch IDという生体認証機構があるのにパスワード?という気にもさせられます。実行するつど「”ターミナル”からコンピュータの管理を求められています」と確認を求められるのも、ちょっと面倒ですよね。

そこで今回は、sudoコマンドで必須のパスワード入力をTouch IDで代用する方法を紹介します。認証がスピードアップするだけでなく、より安全な指紋認証に置き換えることでセキュリティも向上するお勧めの内容ですよ。

「ターミナル」で「sudo」を実行すると現れるダイアログ。




「sudo」の役割

Finderでファイル操作したとき、管理者の名前とパスワードを訊ねられたことはありますか? 「システム設定」アプリで変更操作をしたときにも、重大な影響を及ぼす項目については管理者の名前とパスワードを訊ねられるはずです。自分だけのMacなのにどうして?と思うかもしれませんが、これは管理者としての権限が与えられたユーザ以外にはシステム上重大な変更を許さない、というmacOSのセキュリティポリシーによるものです。

この「管理者」という概念は、macOSの源流といえるUNIXから引き継がれてきました。コンピュータが高価だった時代は1人1台など無理な話、何人もで1台のコンピュータを共有していましたから、「root」という特別なユーザが管理者としてシステム全体に影響を与える設定変更を担っていたのです。

だからUNIX系OSで重大な設定変更を行うときには、「su」コマンドを利用し「root」に昇格してから作業するものでしたが、この方法はパスワードの二重管理が必要なうえ、rootのパスワードが漏えいすると一大事になるなどセキュリティ上の脆弱性から、「sudo」が考案されました。

sudoは、引数として与えられたターミナル上で実行する命令(コマンドライン)を管理者/rootの権限で実行します。macOSの場合、sudoの設定ファイル(/etc/sudoers)にはパスワードが設定済の管理者アカウントのみ実行を許可する内容が記述されているため、「システム設定」の[ユーザとグループ]パネルで管理者権限を与えられたユーザでなければ実行を拒否されるしくみです。

ところで、macOSに収められているsudoの初期設定では、実行から5分が経過すると再認証が必要になります。実行するつど5分繰り延べされますが、他の作業と平行して「ターミナル」を利用するときの5分はあっという間、毎回パスワードの入力を求められる感覚になるため、ストレスになるかもしれません。

「システム設定」の[ユーザとグループ]パネルで管理者権限を与えられたユーザでなければ、sudoを実行できません。

コピペでsudoをTouch ID対応に

sudoが登場した経緯と役割は理解できたとしても、正当な権利者として認証される方法はパスワード認証のみという状況は、いささか古色蒼然としています。作業のスピードアップを図るためにも、パスワードを盗み見られる可能性を少しでも減らすためにも、Touch IDで認証できるようにすることが合理的です。

その手順ですが、以下のコマンドラインを実行すればOK(この時点ではパスワード認証が必要)。これで、sudoを実行するとダイアログが出現し、そこでパスワードを入力する代わりにTouch IDで認証できるようになります。ダイアログ上の「パスワードを使用…」ボタンをクリックすれば、従来どおりパスワードで認証することも可能です。

なお、インターネット上を検索すると、sudoでTouch IDを有効にする方法として「visudo」を使う方法や、テンプレートファイル(/etc/pam.d/sudo_local.template)をコピーする方法がヒットするかもしれません。いずれも有効な方法ですが、「vi」というターミナル上で動作するテキストエディタを操作する必要があるため、ハードルはやや高めです。今回筆者が用意した方法はコピー&ペーストで完了するので、かんたんですよ。

コピーしたコマンドラインをターミナル上にペーストし、実行します。
次回以降sudoを使うときには、このように指紋認証を求めるなダイアログが現れます。




おすすめの記事

著者プロフィール

海上忍

海上忍

IT/AVコラムニスト。UNIX系OSやスマートフォンに関する連載・著作多数。テクニカルな記事を手がける一方、エントリ層向けの柔らかいコラムも好み執筆する。執筆以外では、オーディオ特化型Raspberry Pi向けLinuxディストリビューションの開発に情熱を注いでいる。2012年よりAV機器アワード「VGP」審査員。

この著者の記事一覧

×
×