我寫了一個閱讀wtmp的小程序來顯示登錄歷史記錄(utmpx.h),問題是隻有當用戶是管理員用戶時,Mac OS X的標準用戶根本看不到任何記錄。Mac Standard/Non-Admin用戶閱讀登錄記錄?
我知道wmtp只能被管理員讀取,所以我的問題是:有沒有其他選擇,而不是閱讀wtmp來獲取登錄歷史?或者,標準用戶是否可以讀取wtmp(或只是閱讀用戶自己的歷史記錄)?
感謝和抱歉我的英語不好。
我寫了一個閱讀wtmp的小程序來顯示登錄歷史記錄(utmpx.h),問題是隻有當用戶是管理員用戶時,Mac OS X的標準用戶根本看不到任何記錄。Mac Standard/Non-Admin用戶閱讀登錄記錄?
我知道wmtp只能被管理員讀取,所以我的問題是:有沒有其他選擇,而不是閱讀wtmp來獲取登錄歷史?或者,標準用戶是否可以讀取wtmp(或只是閱讀用戶自己的歷史記錄)?
感謝和抱歉我的英語不好。
我在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
我已閱讀過最後一個源代碼,它使用wtmp(getutxent_wtmp)。奇怪的是,當我以標準用戶身份運行最後一條命令時,我看不到任何日誌,它只是顯示「wtmp開始[當前時間]」,我不知道爲什麼。 – acala
你在哪個版本的OS X上?另外,您是如何添加非管理員帳戶的? – uncreative
我在10.7.2 Lion上,並且我在系統偏好設置中創建了該用戶。 – acala
你能在'utmpx.h'添加更多的細節,比如哪些功能您呼叫(或者你正在使用的結構)算出這個?你是想直接從文件中讀取還是正在使用API?你讀過「man utmpx」嗎?你使用的是哪個版本的OS X?您試圖閱讀哪個特定文件(完整路徑),以及它的權限是什麼? (運行'ls -la';從我閱讀手冊頁時,它應該在'/ var/run/utmpx'中) –
mpontillo
Thanks Mike。我已經閱讀了utmpx的手冊頁,但是似乎/ var/run/utmpx只包含utmp記錄,但不包含wtmp。我在utmpx.h中使用了無效的\t setutxent_wtmp(int),getutxent_wtmp(void),endutxent_wtmp(void),與上一個源相同。我正在運行Lion 10.7.2。 – acala
看來,蘋果已經把wtmp記錄移到了ASL。我可以作爲管理員用戶查看控制檯中的wtmp日誌,但標準用戶無法讀取該日誌。 – acala