/tmpのパーミッションが原因だった(?)
2日間くらい以下の事象に悩まされていました。とても時間を浪費した気がするので、また同じ事象が生じたとき用に備忘録を残しておきます。
いずれもいつの間にかできなくなっていました。ちなみに、使っているPCはMacBook Air (Retina, 13-inch, 2018)でOSバージョンはmacOS 10.15.2です。
結論から言うと
タイトルにもあるように、/tmpのパーミッションが原因だったようです。
曖昧な表現なのは、色々やっていて、いつの間にか治った感があり、結局、/tmpのパーミッションが原因だったか確認できていないためです。けっこう焦っていたのでBefore/Afterの状態遷移を確認していなかったです…
事象
VPN接続できない!
これは非常に焦りました。VPN接続できないと仕事に支障をきたすためです。
最初は接続先の設定が変わったのかな、と疑いましたが、他の人は接続できているのと、iOS版のCisco AnyConnectアプリを使えば自分のアカウントでも接続できたため、これは自分のMacBookに原因があるのだなと切り分けはできました。
App StoreにiOSアプリをアップロードできない!
このiOSアプリは個人開発しているアプリなので、緊急性は低かったのですが、早くリリースしたいという思いもあり、アップロードできないことにイライラしていました。
ERROR ITMS-90725は、iOS12.1以上をターゲットにビルドされたアプリでないとアップロードできないというエラーなのですが、いや、Deployment Target=iOS12.1でやっているし…
Xcodeの再起動、クリーンビルド、Provisioning Profileの更新など思いつくことは一通りやってみたのですが、いずれもダメでした。
Photoshopが起動できない!
起動しようとすると、100%応答なしになる。何故だ…
やってダメだったこと
- アプリの再起動
- MacBookの再起動
- ディスクユーティリティのFirst Aid
- セーフモードでの起動からの再起動
- SMCリセット
Macがおかしいかな、というときに試すことはやってみましたが、いずれも効果なしでした。
突然、光が見えてくる
事象が解消されず悶々としていましたが、他の仕事も進めないといけないため、その作業をしているとき、偶々、以下のMySQLが起動できないとうエラーに遭遇しました。
ERROR: for mysql Cannot start service mysql: failed to create OCI runtime console socket: mkdir /tmp/pty250188720: permission denied: unknown Encountered errors while bringing up the project.
mkdir /tmp/pty250188720 の権限が無いというエラーなので、以下のコマンドで権限を与えてやりました。
sudo chmod 1777 /private/tmp # /tmpが無いときは作ればいいみたい sudo mkdir /private/tmp sudo chown root:wheel /private/tmp sudo chmod 1777 /private/tmp sudo ln -s /private/tmp /tmp
これでMySQLは無事起動できました。
この時、ふと思ったのです。/tmpって上記の事象のときにも使ったりするんじゃないかと。そこで試してみたところ、全事象がキレイに解消されているではないですか! (これか、これが原因なのか!?)
/tmpのパーミッションなんて自分で変更することはまず無いので、いったいいつ誰が変更したのか…
結局、何かよくわからないですが、もしまた同じような事象が発生したとき、チェックポイントの一つとして覚えておこうと思います。