我想在某个用户登录时执行某个 bash 脚本。我想在该用户的初始化文件中调用该脚本,例如.bashrc
,但这不适用,因为在现实生活中其他人不应该被允许写入用户初始化文件。我怎样才能做到这一点?
问问题
293 次
3 回答
2
使用户的 .bashrc 为 root 拥有并拥有 644 权限。使其如下所示:
run_specific_command_that_the_user_cannot_bypass
[ -r ~/.bashrc.user] && . ~/.bashrc.user
或使用系统范围的 /etc/profile (或在您的机器上调用的任何内容)。没有其他选择。
于 2013-01-09T13:31:07.317 回答
0
/etc/bash.bashrc
在or的尾部添加这样一行/etc/profile
:
if [ $USER == 'jsmith' ]; then do-something-interesting; fi
于 2013-01-09T13:38:09.787 回答
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}'}
避免考虑有人在脚本执行开始时登录,或者任何您想要的。
于 2013-01-15T07:22:58.093 回答