2016-12-02 3 views
-1

В настоящее время у нас есть несколько пользователей, которые используют пользователя admin при входе на сервер через SSH. У всех есть свои собственные пользователи, но, к сожалению, они все же иногда используют администратор. Мы можем заблокировать это, конечно, и предпринять меры, чтобы убедиться, что пользователь никогда не используется, но я смотрю, есть ли способ заставить каждый логин вводить причину, по которой они используют этого пользователя, прежде чем они смогут войти в систему и доступ к серверу всякий раз, когда он использует пользователя admin.Запрос ответа пользователя SSH

Таким образом, у нас может быть простой способ сравнить файлы журнала доступа с именами сотрудников и причинами, по которым они используют этого пользователя.

Любые мысли?

+1

Я голосующий, чтобы закрыть этот вопрос не по теме, потому что он принадлежит [Unix & Linux] (http://unix.stackexchange.com/). –

+0

Сделайте пароль администратора случайным. После этого у вас будет 2 варианта. Вариант 1: используйте 'sudo'. Это приведет к регистрации пользователей 'sudo'ing как admin. Вариант 2: используйте аутентификацию на основе ключа ssh для пользователя admin. Каждому нужно будет зарегистрировать свой ssh-ключ для этого пользователя. – alvits

ответ

0

Вот мысленный

#!/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. исключением того, что в ~ admin_user/бен/get_real_user.sh
  2. Добавить /full/path/to/admin_user/bin/get_real_user.sh в /etc/shells
  3. Do sudo chsh -s /full/path/to/admin_user/bin/get_real_user.sh admin_user

Не проверено. Тест полностью до этапа 3.

+0

Спасибо! Это помогло мне найти правильный ответ. –

+0

Открывается ложное представление. Любой пользователь может притворяться другим. – alvits

1

Вот что я хотел бы сделать.

Зарегистрировать открытый ssh ​​открытый ключ в authorized_keys пользователя администратора. В каждой записи установите среду EMPLOYEE на номер employeename. Это потребует, чтобы PermitUserEnviroment был установлен в yes в /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 войти.

Смежные вопросы