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.bashrcorの末尾に次のような行を追加します/etc/profile

if [ $USER == 'jsmith' ]; then do-something-interesting; fi
于 2013-01-09T13:38:09.787 に答える
0

無限ループでコマンドを使用して解決でき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 に答える