Apple の脅威の通知と金銭目当てのスパイウェアへの対策について

しばらく返答が寄せられていないようです。 再度ディスカッションを開始するには、新たに質問してください。

LoginHookについて教えてください。

MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)
OSX10.13.3


目的

複数ユーザーが存在するMacでログイン時にSfariで特定のサイトにアクセスしたい。

複数のMacを複数の人間で使用しているのでユーザーの管理が難しい為、LoginHookで対応を検討。


/Library/Scripts/test.shの中身

#!/bin/bash

open -a "/Applications/Safari.app" http://www.yahoo.co.jp/


Test.shは chmod 755にて実行可能済


sudo defaults read com.apple.loginwindow LoginHook /Library/Scripts/test.sh


上記内容にてシェルの作成及び設定は行っていますがログイン時に起動できない状態です。

ターミナルで直接 /Library/Scripts/test.sh  入力では問題なく該当ページの起動は可能です


お手数おかけしますが改善方法をご教授ください。

よろしく願いします。

MacBook Pro, macOS High Sierra (10.13.3)

投稿日 2018/06/03 15:38

返信
スレッドに付いたマーク ベストな回答

投稿日 2018/06/03 18:52

「他のログイン時の動作は、ログインフックが完全に実行されるまで動作しません。」とあるので、ログインフックが終了するまで、WindowServerが使えない状態にあります。

https://support.apple.com/ja-jp/HT2420


従って、ログインフック自体は直ちに終了させる必要があるので、&を付けてバックグラウンドでプログラムを実行すれば良いでしょう。つまり、シェルスクリプトを2つ作ることになります。


LoginHook.shはLauncher.shを起動するのみ、Launcher.shはSpotlightが起動するまでスリープした後、Safariを立ち上げます。(保存するディレクトリーはお好きな場所に)

ユーザがアップロードしたファイル

返信: 13
スレッドに付いたマーク ベストな回答

2018/06/03 18:52 xsuxsu への返信

「他のログイン時の動作は、ログインフックが完全に実行されるまで動作しません。」とあるので、ログインフックが終了するまで、WindowServerが使えない状態にあります。

https://support.apple.com/ja-jp/HT2420


従って、ログインフック自体は直ちに終了させる必要があるので、&を付けてバックグラウンドでプログラムを実行すれば良いでしょう。つまり、シェルスクリプトを2つ作ることになります。


LoginHook.shはLauncher.shを起動するのみ、Launcher.shはSpotlightが起動するまでスリープした後、Safariを立ち上げます。(保存するディレクトリーはお好きな場所に)

ユーザがアップロードしたファイル

2018/06/03 18:58 xsuxsu への返信

こちらのガイドによると、 → Daemons and Services Programming Guide: Customizing Login and Logout

Note: If no plist file exists for com.apple.loginwindow, this method will not work. This file (/var/root/Library/Preferences/com.apple.loginwindow.plist) does not exist on a fresh installation until the user changes a login window setting (such as turning on fast user switching).


となっています。 私自身は検証していないので、申し訳ないのですが、fast user switchingをオンにしてみるとどうでしょう?

2018/06/03 16:59 xsuxsu への返信

シェルスクリプトの保存場所のパスの指定はあっていますか? /Library/Scripts/test.shとのことですが、先頭に~が抜けている可能性はありませんか? ホームディレクトリに保存した方が良いと思うのですが、如何でしょうか?

2018/06/03 17:03 xsuxsu への返信

特定のWebページを開くだけなら、インターネットロケーションファイルを起動項目(システム環境設定>ユーザー&グループ>ログインユーザー>起動項目)に入れておくだけでも可能ですよ。 インターネットロケーションファイルは、Safari.appのアドレスバーが表示しているURLやブックマークをデスクトップにドラッグ&ドロップするだけで作ることができます。

2018/06/03 17:58 ni_ki への返信

ni_kiさん

返信ありがとうございます。


sleep 7を下記の様に追加しましたが自動的に起動はしてこないですね。

sleep 7; open -a "/Applications/Safari.app" http://www.yahoo.co.jp/


他に気づいた点とかありましたらよろしくおねがいします。

2018/06/03 18:02 T22T への返信

T22Tさん

返信ありがとうございます。


ログイン項目も考えましたが‥

新規にユーザー作成などが発生した場合


ログイン項目の設定を都度行う必要があるので

LoginHookでの対応を考えています。


他に気づいた点などありましたらよろしくお願いします。

2018/06/03 18:59 hohokihai への返信

hohokihaiさん

返信ありがとうございました。


シェルスクリプトを2つ作ることで問題なくログイン時にSafariを起動することができました。


これは余り良くない方法なので、/Library/LaunchAgentsにlaunchd.plistを作るのが順当なやり方だと思います

>ご指摘ありがとうございます。動作確認しながらLaunchAgentsに構築していきたいと思います

ありがとうございました。

LoginHookについて教えてください。

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple ID を使ってご参加ください。