system management
1753913 メンバー
8950 オンライン
108810 解決策
新規ポスト

ログイン中のコマンド履歴を残す方法

 
Y_Ya
時折のコントリビューター

ログイン中のコマンド履歴を残す方法

.loginファイルに

exec script -a /tmp/log

exit

を追加して、あるユーザでログインしたときには、コマンドの履歴を残すように設定しました。

ログアウト時に.logoutファイルにてこのファイルを他のファイルにコピーするように設定しましたが、

scriptコマンドを実行するとcshのプロセスIDが変更されるため(だと思いますが)

.logoutの内容が実行されません。

うまく.logoutも実行される方法はあるでしょうか?
2件の返信2
hazelwood
信頼あるコントリビューター

ログイン中のコマンド履歴を残す方法

これは、exec script -a /tmp/log により、ログインしたときに作られるcshがscriptでオーバーライドされるためと思います。cshプロセスが、scriptプロセスに置き換わってしまうので、.logoutが実行されないのだと思います。

残念ながら対象方法は思いつきません。

(execを削ってみましたが、script終了時にcshに戻ってしまいます。これは多分、希望している動作ではないでしょう。)

hazelwood
信頼あるコントリビューター

ログイン中のコマンド履歴を残す方法

posix-shなら、execを削ることで、うまく行きます。(.logoutではなく、.profileに trap "cmd" 0で設定することになりますが。)

どうしてもcshでなければならないなら、最初からファイル名を個別につけるなどの方法で逃げられませんか?

いずれにしても、(普通).loginや、.profileはユーザが書き換えることができるという落とし穴がありそうですが。