我想在某个用户登录时执行某个bash脚本。
我想到在该用户的初始化文件中调用脚本,例如.bashrc
,但这不适用,因为在现实生活中,不应允许其他人在用户初始化文件中写入。
我怎样才能做到这一点?
答案 0 :(得分:2)
使用户的.bashrc由root拥有并具有644权限。看起来如下:
run_specific_command_that_the_user_cannot_bypass
[ -r ~/.bashrc.user] && . ~/.bashrc.user
或者使用系统范围的/ etc / profile(或者在你的盒子上调用它)。没有其他选择。
答案 1 :(得分:0)
将这样的行添加到/etc/bash.bashrc
或/etc/profile
的尾部:
if [ $USER == 'jsmith' ]; then do-something-interesting; fi
答案 2 :(得分:0)
我可以在无限循环中使用comman finger
来解决它,并且当命令的行输出增加意味着有人登录然后我可以通过对此用户执行任何我想要的操作来处理它,这里是代码:
#! /bin/bash
n=0;
while(true)
do
if [ $n -gt `finger | awk 'END{print NR}'` ]
then
mailx -s "hey you" `awk 'END{print $1}'` < mailBody
fi
n=`finger | awk 'END{print NR}'`;
done
注意:您可以使用n
初始化n=${finger | awk 'END{print NR}'}
,以避免考虑在脚本执行开始时登录某人,或者您想要的任何内容。