MacOSX 無線LAN 自動接続禁止を sleepwatcher で実現
新城@筑波大学情報です。こんにちは。
MacOSXの無線LANは、以前に接続したことがある無線LANを記憶していて、自動
的に接続してしまいます。自動接続を禁止するには、「使ったことがあるネッ
トワーク」から削除すれば良いのですが、接続した時にまたパスワード等を打
つ必要があります。禁止したいのは、自動接続だけで、パスワードはまた打ち
たくはありません。
無線LAN 自動接続を禁止するのに、sleepwatcher でスリープする時に無線LAN
の電源を落とすという方法を試した所、うまくいきました。スクリプトとして
はこんな感じ。
----------------------------------------------------------------------
$ cat ~/.sleep
#!/bin/bash
. ~/.bashrc
airport-power-off
$ cat ~/bin/airport-power-off
#!/bin/sh
networksetup -setairportpower en0 off
$
----------------------------------------------------------------------
sleepwatcher は、MacPorts で入れるのが簡単です。
port info sleepwatcher
launchctl load -w /Library/LaunchDaemons/org.macports.sleepwatcher.plist
この org.macports.sleepwatcher.plist は、
/opt/local/etc/rc.{sleep,wakeup} を実行します。これらは、それぞれホーム
ディレクトリの ~/.{sleep,wakeup} を実行します。
su - $user -c "$home/.sleep"
上の ~/.sleep は、bash スクリプトで、. ~/.bashrc を明示的に読み込んでい
ます。interactive ではないので、~/.bashrc の PATH の設定が効きません。
(標準の PATH では /usr/sbin にあるプログラムが動かないです。) 1回は、端
末で実行した方がいいですね。
$ /opt/local/etc/rc.sleep
あと、システム全体の
/Library/LaunchDaemons/org.macports.sleepwatcher.plist は使わなくても、
個人で launchctl 用の .plist を作ってもいいのでしょう。
上のスクリプトで、en0 というのが出てきますが、これは無線LANのインタフェー
スです。ifconfig -a だと無線も有線もよくわからないのですが、次のコマン
ドでは無線ということがわかります。
networksetup -listallhardwareports
ここに書いてありました。airport コマンドの scan も面白いですね。
http://blog.mattcrampton.com/post/64144666914/managing-wifi-connections-using-the-mac-osx-terminal
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 情報工学 \\
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735