新潟の空は今日も灰色

技術ネタ中心にいきたいけど、そんなにネタは持ってません。

【追記あり】(JIS配列のキーボードの場合)macOSのパスワードに、"|"を使ってはいけない(訳ではないが、注意が必要な話)

macOS のパスワード変更画面では、記号の|(縦棒。よくプログラムの論理演算子で or を表現するときに使うあいつ)を入力することが出来る。また、管理者権限を求められる場合などのパスワード入力画面でも|を入力することが出来るし、コンソール上でも入力可能だ。*1

しかし、再起動後のログイン画面では、|を入力することが出来ないのである。*2 Shift+\ を押下しても無反応。それがなにを意味するか。すなわち「OSにログイン出来なくなる」ということなのである。

たとえば、パスワード作成のちょっとしたテクニックで、「aの代わりに@を使う」「l(小文字のL)の代わりに1(西洋数字の一)を使う」など、形の似た別の文字に置き換えて推測されにくくするというものがある。

なにも考えずにこれを適用し、「l(小文字のL)の代わりに|(記号の縦棒)」をmacOSのパスワードで採用すると、次OSを再起動したあとからはログイン出来なくなってしまうのだ。最悪の場合初期化を余儀なくされたり、それに伴いデータの消失を招く可能性がありうるのである。まさに恐怖だ。

人によっては、「そんな文字使うなよ」という向きもあるかも知れない。だが、パスワード変更画面では入力出来てしまうのだ。なんという非フェールセーフであるか。俺はびっくりだよ。

今回は、iCloud のアカウントを紐付けていたため復旧出来たが、もしそういった設定をしていなかったらと考えると冷や汗しか出てこない。

もしかしたら、他にも同様の文字はあるのかも知れないが、今回は検証していない。なにせ恐怖なのだ。極力危ないことはしたくない。

みなさんもぜひお気を付けください。

2017/07/19 19:36追記

ブコメid:moritata さんが、

macOSのパスワードに、"|"を使ってはいけない - 新潟の空は今日も灰色

起動直後は英語キーボード設定だからなぁ・・・ちなみに、「Shift+]」で入力可能。MacはJIS配列キーボードで使うもんじゃないなぁと実感した

2017/07/19 18:40
b.hatena.ne.jp また、Twitterでかつどんさんが言及されているとおり、 Shift + ]| を入力が出来るようです。

また関連して、US配列であれば、キートップ記載の文字と同じ文字が入力できるので、問題が顕在化しないということもあるようです。 私がUS配列には疎いものでわからなかった部分ではありますが、これで回避が出来るのであれば問題なさそうですね。

また、id:kitaj さんが言うようにシングルユーザモードという対応策もありますね。おそらく iCloud で復旧したときの挙動と似ているのでは無いかと思います(キーチェーンのパスワードが古いままになる)。

macOSのパスワードに、"|"を使ってはいけない - 新潟の空は今日も灰色

シングルユーザーモードで起動してパスワード変更したらいいんじゃね?

2017/07/19 18:59
b.hatena.ne.jp

macOSのログイン画面、いろいろと制限掛けられているのはわかるのですが、初見でこれは本当につらいので、なんとかしてもらえないものでしょうかね。。。

2017/07/19 22:08追記

起動直後はUS配列というのも実は疑問で、というのも、@を含むパスワードはきちんとJIS配列の通りに入力できるのです(Shift+2ではない)。

なんだか、ログイン画面のキー配列はよくわかりません。

*1:なお、この記事の内容は MacBook Pro (Retina, 13-inch, Early 2015)、macOS Sierra 10.12.5、JIS配列キーボードのモデルで確認している。また、MacBook Pro (Retina, 13-inch, Mid 2014)、macOS Sierra 10.12.5、JIS配列キーボードのモデルでも確認した。

*2:スタンバイからの復帰時のパスワード入力では入力できる。