为 Linux 创建注销脚本/任务

war*_*ren 15 linux script

与我针对WindowsMac OS X 的问题类似,如何为 Linux 创建注销脚本?

任何发行版都可以,因为我确信它可以扩展到其他发行版。不过,我最熟悉 RHEL/CentOS/Fedora 和 Ubuntu。

另外,
如果这对于图形登录(即在 lcoal 工作站)和远程登录(例如 via ssh)都存在,那将是理想的 - 但如果两者都不可能,我会选择其中之一。

qua*_*ote 13

对于远程 SSH 会话,处理任何注销时脚本是您的 shell 的工作。Bash shell 通常运行~/.bash_logout.

对于 X 会话,登录管理器控制注销时脚本。文件位置取决于正在使用的登录管理器。执行注销时脚本时 Xserver 未运行,因此不要在脚本中包含任何尝试访问显示的程序。

  • 对于 Gnome/etc/gdm/PostSession/Default用于系统范围的默认注销脚本(无论谁注销都会运行)。与 Bash 的注销脚本不同,我认为 GDM PostSession 脚本没有特定于用户的版本。

  • XDM 使用重置脚本安装到/etc/X11/xdm/Xreset.

  • 对于KDE(使用KDM) ,你想要Reset脚本。KDE3 使用/etc/kde3/kdm/Xreset. 该位置可以在 KDM 的配置文件中/etc/kde3/kdm/kdmrc使用Reset密钥指定。

  • WDM显然使用了一对重置脚本:位于/etc/X11/wdm/Xreset_0(用于 display :0)的每个显示脚本和位于 的全局脚本/etc/X11/wdm/Xreset。WDM 配置文件位于/etc/X11/wdm/wdm-config.

此答案中的文件位置来自 Debian 软件包。Ubuntu 软件包通常会使用相同的文件,但其他发行版可能会使用其他位置。


小智 6

如果发行版使用 PAM 对用户进行身份验证,您可以安装pam_script以提供功能onsessionopen/onsessionclose

我在基于 Debian 的发行版中使用它来检查用户修改scp的文件并调整文件的权限。

您可以从 freecode下载pam_script


Sha*_*son 5

C-shell,又名 csh,具有 .logout 功能,而 Bash(更当前的默认值)具有 .bash_logout,但我不记得任何其他具有类似概念的 shell(ksh、sh 等)。