2

我想在某个用户登录时执行某个 bash 脚本。我想在该用户的初始化文件中调用该脚本,例如.bashrc,但这不适用,因为在现实生活中其他人不应该被允许写入用户初始化文件。我怎样才能做到这一点?

4

3 回答 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

注意:您可以初始化nn=${finger | awk 'END{print NR}'}避免考虑有人在脚本执行开始时登录,或者任何您想要的。

于 2013-01-15T07:22:58.093 回答