bash在特定用户登录上执行某些操作

时间:2013-01-09 13:25:39

标签: bash ubuntu

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

3 个答案:

答案 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}'},以避免考虑在脚本执行开始时登录某人,或者您想要的任何内容。

相关问题