2012-05-29 56 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

相关问题