2016-12-02 12 views
-1

現在、SSH経由でサーバーにログインするときに管理ユーザーを使用するユーザーが複数います。彼らはすべて自分のユーザーを持っていますが、残念なことに彼らは時折管理者を使用します。私たちはこれをもちろん止めて、ユーザーが一度も使用されていないことを確認するための行動を取ることができますが、ログインする前に各ユーザーがそのユーザーを使用している理由を入力する方法があるかどうかを調べたいと考えています管理者ユーザーを使用するたびにサーバーにアクセスします。SSHユーザーの応答のプロンプト

このようにすれば、アクセスログファイルと従業員の名前とそのユーザーを使用している理由を簡単に比較できます。

どのような考えですか?

+1

[Unix&Linux](http://unix.stackexchange.com/)に属しているため、この質問を議論の対象外としています。 –

+0

管理者パスワードをランダムにします。 2つのオプションがあります。オプション1: 'sudo'を使います。これにより、ユーザーの 'sudo'ingをadminとして記録します。オプション2:管理ユーザーにsshキーベースの認証を使用する誰もが自分のssh-keyをこの管理者ユーザに登録する必要があります。 – alvits

答えて

0

はここ

  • get_real_user.sh〜ADMIN_USER/binに/として/etc/shells
  • に/full/path/to/admin_user/bin/get_real_user.shを追加することを考え

    #!/bin/bash 
    
    # if the user tries Ctrl+C to avoid this check 
    trap INT no_shell_for_you 
    
    no_shell_for_you() { exec /bin/false; } 
    
    read -p "Your username please: " username 
    
    if getent password "$username" >/dev/null 2>&1; then 
        echo "Welcome, $username" 
        # log $username somewhere 
        exec /bin/bash -l 
    else 
        no_shell_for_you 
    fi 
    
    1. 保存ですDo sudo chsh -s /full/path/to/admin_user/bin/get_real_user.sh admin_user

    これはテストされていません。テスト完全にを手順3の前に実行してください。

  • +0

    ありがとうございました!それは答えを見つける正しい方向に私を助けました。 –

    +0

    これは偽の表現に開放されています。どんなユーザーも別のふりをすることができます。 – alvits

    1

    ここでは何をしますか。

    誰のssh公開鍵も管理者のauthorized_keysに登録してください。各エントリで、環境EMPLOYEEemployeenameに設定します。これにはPermitUserEnviromentyesに設定し、/etc/ssh/sshd_configに設定する必要があります。サンプルのエントリは以下のようになります。

    environment="EMPLOYEE=employee1" ssh-rsa AAAAB3NzaC1y.....EU88ovYKg4GfclWGCFYTuw8== 
    

    は、今、私たちはEMPLOYEEという名前の環境変数を持っていることを、我々は理由を尋ねるために簡単なスクリプトを書くことができます。

    /etc/profile.d/reason.shを作成します。ファイルはソースとして実行される必要はありません。

    if [[ $(whoami) = "admin" ]]; then 
        read -p "Please specify the reason for logging in as $USER user: " reason 
        if [ -z "$reason" ]; then 
         logout 
        fi 
    fi 
    

    今、あなたは、ログインする$EMPLOYEE$reasonを持っています。

    関連する問題