私はログイン履歴(utmpx.h)を表示するためにwtmpを読む小さなプログラムを書いていますが、ユーザーが管理ユーザーの場合にのみ問題があります。Mac OS Xの標準ユーザーは単にレコードを見ることができません。Mac標準/非管理者ログイン履歴を読み取るユーザーですか?
wmtpは管理者だけが読むことができるので、私の質問は:ログイン履歴を取得するためにwtmpを読むのではなく、選択肢がありますか?あるいは、標準ユーザーがwtmpを読むことができますか(または単にユーザー自身の履歴を読むことができますか)?
私の悪い英語をありがとうと申し訳ありません。
あなたはこれを理解するために 'utmpx.h'であなたが使っている関数(または使用している構造体)などの詳細を追加できますか?ファイルから直接読もうとしているのですか、またはAPIを使用していますか?あなたは 'man utmpx'を読んだのですか?どのOS Xのバージョンを使用していますか?どの特定のファイル(フルパス)を読み込もうとしていますか、そのパーミッションは何ですか? ( 'ls -la'を実行してください;マニュアルページを読んでから '/ var/run/utmpx'にあるはずです) –
mpontillo
ありがとうマイク。私はutmpxのマニュアルページを読んでいますが、/ var/run/utmpxにはutmpレコードしか入っていませんが、wtmpは含まれていないようです。そして私は最後のソースと同じように、utmpx.hのvoid \t setutxent_wtmp(int)、getutxent_wtmp(void)、endutxent_wtmp(void)を使用しました。私はライオン10.7.2を走っています。 – acala
リンゴがwtmpレコードをASLに移動したようです。コンソールのwtmpログをAdmin Userとして見ることができますが、標準ユーザーはそれを読むことができません。 – acala