2011-10-27 3 views
2

私はログイン履歴(utmpx.h)を表示するためにwtmpを読む小さなプログラムを書いていますが、ユーザーが管理ユーザーの場合にのみ問題があります。Mac OS Xの標準ユーザーは単にレコードを見ることができません。Mac標準/非管理者ログイン履歴を読み取るユーザーですか?

wmtpは管理者だけが読むことができるので、私の質問は:ログイン履歴を取得するためにwtmpを読むのではなく、選択肢がありますか?あるいは、標準ユーザーがwtmpを読むことができますか(または単にユーザー自身の履歴を読むことができますか)?

私の悪い英語をありがとうと申し訳ありません。

+0

あなたはこれを理解するために 'utmpx.h'であなたが使っている関数(または使用している構造体)などの詳細を追加できますか?ファイルから直接読もうとしているのですか、またはAPIを使用していますか?あなたは 'man utmpx'を読んだのですか?どのOS Xのバージョンを使用していますか?どの特定のファイル(フルパス)を読み込もうとしていますか、そのパーミッションは何ですか? ( 'ls -la 'を実行してください;マニュアルページを読んでから '/ var/run/utmpx'にあるはずです) – mpontillo

+0

ありがとうマイク。私はutmpxのマニュアルページを読んでいますが、/ var/run/utmpxにはutmpレコードしか入っていませんが、wtmpは含まれていないようです。そして私は最後のソースと同じように、utmpx.hのvoid \t setutxent_wtmp(int)、getutxent_wtmp(void)、endutxent_wtmp(void)を使用しました。私はライオン10.7.2を走っています。 – acala

+0

リンゴがwtmpレコードをASLに移動したようです。コンソールのwtmpログをAdmin Userとして見ることができますが、標準ユーザーはそれを読むことができません。 – acala

答えて

2

私はOS X上にあり、デフォルトではwtmpまたはutmpはありません。私は最後のことがありますが、これは管理者以外のユーザーとして実行できるようです。

[email protected]:~$ last 
uncreative ttys004     Wed Oct 26 21:57 still logged in 
uncreative ttys003     Wed Oct 26 20:55 still logged in 
.... 

[email protected]:~$ groups 
staff com.apple.sharepoint.group.3 localaccounts everyone com.apple.sharepoint.group.1 com.apple.sharepoint.group.2 com.apple.sharepoint.group.4 
+0

私は最後にソースを読みました。それはwtmp(getutxent_wtmp)を使います。奇妙なことは、標準ユーザーとして最後のコマンドを実行したときにログが表示されないことです。「wtmpが[現在時刻]に始まります」というメッセージが表示され、その理由がわかりません。 – acala

+0

OS Xのバージョンはありますか?また、管理者以外のアカウントをどのように追加しましたか? – uncreative

+0

私は10.7.2 Lionになりました。システム環境設定でユーザーを作成しました。 – acala

関連する問題