现在我知道我可以编辑bash_logout以在用户键入exit时执行命令,但仅针对特定用户通过编辑其主目录中的bash_logout来执行命令。但是,如何为所有用户编辑此内容?
答案 0 :(得分:2)
bash
无法识别系统范围的注销脚本。您可以做的最好的事情是创建一个世界可读的文件,例如/etc/bash_logout
,推荐,用户将. /etc/bash_logout
添加到他们的个人~/.bash_logout
文件中。
对于登录shell,唯一的系统范围配置文件bash
识别为/etc/profile
。你可以添加
trap 'on_logout' EXIT
(其中on_logout
是您定义的包含所需注销代码的函数的名称)并希望用户不重置处理程序。 (从技术上讲,/etc/profile
在所有与POSIX兼容的shell中共享,因此不要在这样的处理程序中放置任何bash
特定的代码。)
答案 1 :(得分:0)
chepner上面说的是什么....如果你想成为BOFH,你可以很容易地为每个用户创建一个.bash_logout ......
基于您的操作系统/发行版的变化可能(会?)适用...假设所有普通用户都在本地存在(您没有提及LDAP)并且UID在[1000 ... 50000]范围内...... < / p>
# iterate over all user accounts that are likely to be people with awk,
# print their home, loop over those homes and copy the logout file into place.
awk -F: '$3 >999 && $3 < 50000 { print $6}' /etc/passwd | while read home
do
cp /path/to/your/logout-script $home/.bash_logout
# if you want to be **reallY** nasty uncomment the next two lines.
# that will stop users from deleting the file.
# chown root $home/.bash_logout
# chattr +i $home/.bash_logout
done
如果您以root身份运行系统上的每个人(请注意,请参阅上面的假设,确保没有系统用户被命中...)将获得所需的注销文件。