2012-05-29 93 views
5

我有一個腳本,我想在用戶登錄認證後立即運行。爲了完成這個,我在/etc/rc5.d/S##rc.local文件中添加了腳本名稱。但後來我才知道,任何在rc.local文件中添加的內容都會在系統啓動時執行,而不是在登錄驗證之後執行。任何人都可以告訴我如何在用戶登錄驗證後運行腳本?如何在linux用戶登錄認證後運行腳本

+1

你是爲了方便還是爲了安全?即你只是想設置你的登錄環境(添加別名,設置變量等),還是你希望腳本在每次登錄後運行,而不允許用戶刪除它? – lanzz

+0

出於安全目的。其實我想在管理員登錄系統時運行腳本。 – user976754

+2

如果以下任何答案對您有幫助,請將其標記爲已接受。謝謝。 – woohoo

回答

3

嘗試添加以下內容到/etc/pam.d/login

session optional pam_exec.so /bin/bash /path/to/your/script.sh 

你需要在你的腳本來檢查當前用戶實際上是管理員(按照無論你爲是管理員的標準是)。

+0

嗨Lanzz,我在/etc/pam.d/login腳本中添加了這個。但無法得到我的腳本...... – user976754

+0

'pam_exec'顯然不會在用戶登錄的終端上顯示其輸出。您是否需要在腳本中顯示任何內容,或者只是在後臺執行某些操作(例如發送通知)?你可以添加一個記錄腳本輸出記錄的日誌文件:'session optional pam_exec.so log =/path/to/logfile/bin/bash/path/to/your/script.sh' – lanzz

+0

我發現這行不是我的'的/ etc/pam.d/login'。我認爲這就是爲什麼uname打印時,我ssh到一個machiine:會議可選pam_exec.so類型= open_session stdout/bin/uname -snrvm' – Nope

13

或者,您可以將腳本添加到/etc/profile.d文件夾。

關於此更多信息herehere

基本上,你應該給你的腳本擴展.sh,因爲所有這些文件都是在用戶登錄後循環執行的。

+0

它真的工作。謝謝:) – user976754

+1

@ user976754:我很高興它幫助你。請將我的答案標記爲您對此問題的接受答案:) – woohoo

+0

看起來您需要具有root權限才能在/etc/profile.d下創建文件 在用戶登錄時如何執行該文件?由於該文件將由root擁有。 – ams

相關問題