Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Logout programs

0 views
Skip to first unread message

Yasushi Shinjo

unread,
Aug 8, 2003, 1:30:53 PM8/8/03
to
新城@筑波大学情報です。こんにちは。

システム環境設定には、「ログイン項目」というのがあって、ログ
イン時に実行されるプログラムが登録できます。同様に、ログアウ
ト時に実行されるプログラムは登録できないでしょうか。

困っているのは、Palm Desktop がいちいちログイン項目に余計な
プログラムを登録するので、それをログアウト項目で消してやろう
と思って。

Palm Desktop ですが、結論としてはそんなに害はなかったみたい
ではあります。最初は、起動時に妙に hdid (ディスクのマウント)
が増殖している時間がかかるようになって、Palm Desktop が怪し
いと思っていました。手動で消しても遅さは変らないので、起動時
の遅さに関しては、Palm Desktop は無罪でした。でも、バックグ
ランドで動いているのは、CPU を食ってバッテリを減らすので、動
かない方がいいのは、確かです。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\

Shinji KONO

unread,
Aug 8, 2003, 7:10:28 PM8/8/03
to
河野真治 @ 琉球大学情報工学です。

In article <YAS.03Au...@kirk.is.tsukuba.ac.jp>, y...@is.tsukuba.ac.jp (Yasushi Shinjo) writes


> システム環境設定には、「ログイン項目」というのがあって、ログ
> イン時に実行されるプログラムが登録できます。同様に、ログアウ
> ト時に実行されるプログラムは登録できないでしょうか。

start/stop が引数ってことはないですか?

(単なる思い付き...)

---
Shinji KONO @ Information Engineering, University of the Ryukyus,
PRESTO, Japan Science and Technology Corporation
河野真治 @ 琉球大学工学部情報工学科,
科学技術振興事業団さきがけ研究21(機能と構成)

Masaya Oda

unread,
Aug 8, 2003, 11:21:00 PM8/8/03
to
In article <3988782...@insigna.ie.u-ryukyu.ac.jp>,
Shinji KONO <ko...@ie.u-ryukyu.ac.jp> wrote:

> 河野真治 @ 琉球大学情報工学です。
>
> In article <YAS.03Au...@kirk.is.tsukuba.ac.jp>, y...@is.tsukuba.ac.jp (Yasushi Shinjo) writes
> > システム環境設定には、「ログイン項目」というのがあって、ログ
> > イン時に実行されるプログラムが登録できます。同様に、ログアウ
> > ト時に実行されるプログラムは登録できないでしょうか。
>
> start/stop が引数ってことはないですか?

それって/Library/StartupItems/の話ですよね?

今現在どうなっているのかは分かりませんが、確かにそうできるような
仕様にはなっているらしいです。ただ、その話を聞いた時点ではまだ
実装されてないということでしたが。(いつの話だったか忘れました(^^;))

で、あれはシステム起動時・終了時の話で、新城さんのお話はユーザ
ログイン・ログアウト時の話なので「ログアウト=システム終了」で
ないのなら使えないのではないかと。

で、OSX-users MLに参考になりそうなのがありました。
<http://www.freeml.com/message/osx-...@freeml.com/0000316>

これはログイン時とログアウト時にボリュームの不可視状態を変更する
方法についてですが、キモの部分は使えるのではないかと。

#「LoginHookとLogoutHookを登録」と「LogoutHookを作成」の所が
#改行されてしまってますがあれはそれぞれ一行です。ブラウズ環境に
#よるのかもしれませんが。

Yasushi Shinjo

unread,
Aug 9, 2003, 4:00:30 PM8/9/03
to
新城@筑波大学情報です。こんにちは。

In article <090820031221008463%ayas...@mac.com>


Masaya Oda <ayas...@mac.com> writes:
> で、OSX-users MLに参考になりそうなのがありました。
> <http://www.freeml.com/message/osx-...@freeml.com/0000316>

この作戦でうまく行きました。そのページから参照されている次の
ページもいいですね。

http://homepage1.nifty.com/alchemy/os_x/psync.html
http://www.tech-arts.co.jp/macosx/macosx-jp/htdocs/11000/11023.html

ちょっとトラブったのは、com.apple.loginwindow は、root のも
のを変更する必要があるということです。そのドキュメントには
sudo と書かれているのでそうかなあとは思ったのですが、
defaults コマンド自体は、個人の
~/Library/Preferences/com.apple.loginwindow.plist を見ている
ので、もしやと思って試したけれど、やはりだめでした。
/var/root/Library/Preferences/com.apple.loginwindow.plist が
正解です。

------------------------------------------------------------
% su
Password:
# defaults write com.apple.loginwindow LogoutHook /usr/local/etc/run-logouthook
# defaults read com.apple.loginwindow LogoutHook
/usr/local/etc/run-logouthook
#
------------------------------------------------------------

もう1つの問題は、LogoutHook で登録したプログラムは、やや恐
ろしいことに root 権限で実行されます。それはそれで便利とも言
えますが、ホーム・ディレクトリおいたプログラムを実行するとい
う作戦の場合は困ります。(その一般ユーザのスクリプトが攻撃さ
れたら root が取られる。) それで、su コマンドで一般ユーザの
権限に落として実行することにしました。

------------------------------------------------------------
% ls -l /usr/local/etc/run-logouthook
-rwxr-xr-x 1 root staff 108 Aug 10 04:26 /usr/local/etc/run-logouthook
% cat /usr/local/etc/run-logouthook
#!/bin/sh
if [ -x "$HOME/.logouthook" ]; then
su "$USER" -c "$HOME/.logouthook"" $1" >/dev/null 2>&1
fi
%
------------------------------------------------------------

LogoutHookで登録されたプログラムが実行される時には、第1引数
にはユーザ名が入ります。UID は root ですが、HOME や USER と
いった環境変数は、そのユーザに変更されています。su コマンド
でUSER環境変数のユーザに UID を変更してから、~/.logouthook
を実行します。

In article <090820031221008463%ayas...@mac.com>


Masaya Oda <ayas...@mac.com> writes:
> > start/stop が引数ってことはないですか?
> それって/Library/StartupItems/の話ですよね?
> 今現在どうなっているのかは分かりませんが、確かにそうできるような
> 仕様にはなっているらしいです。

/System/Library/StartupItems/ ですね。stop はないように見え
ます。たとえば、SSH ならこんな感じです。

------------------------------------------------------------
% pwd
/System/Library/StartupItems/SSH
% ls
Resources SSH StartupParameters.plist
% cat SSH
#!/bin/sh

. /etc/rc.common

##
# Start up secure login server
##

if [ "${SSHSERVER:=-NO-}" = "-YES-" ]; then

中略(鍵の生成など)

/usr/sbin/sshd

fi
%
------------------------------------------------------------

defaults コマンドは、NeXT 由来の流儀なんですか。

これで、ログアウト時に掃除はできるようになったけれど。

0 new messages