答案1
对于远程 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 使用。可以在 KDM 的配置文件中用键/etc/kde3/kdm/Xreset
指定位置。/etc/kde3/kdm/kdmrc
Reset
波分复用显然使用了一对 Reset 脚本:一个针对每个显示器的脚本
/etc/X11/wdm/Xreset_0
(用于显示:0
),以及一个全局脚本/etc/X11/wdm/Xreset
。WDM 配置文件位于/etc/X11/wdm/wdm-config
。
此答案中的文件位置来自 Debian 软件包。Ubuntu 软件包通常会使用相同的文件,但其他发行版可能会使用其他位置。
答案2
如果发行版使用 PAM 来验证用户身份,你可以安装pam_script
以提供onsessionopen/onsessionclose
功能。
我在基于 Debian 的发行版中使用它来检查用户修改的文件scp
并调整文件的权限。
答案3
C-shell(又名 csh)具有 .logout 功能,而 Bash(当前默认设置)具有 .bash_logout,但我不记得有任何其他 shell(ksh、sh 等)具有类似概念。