2

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

Я пытаюсь разрешить пользователям устанавливать различные параметры оболочки через ~/.bash_profile зависимости от того, кто на самом деле вошел в систему. Например, когда Джонатан входит в систему, я хочу, чтобы оболочка дополнительно выполнила ~/.Jonathan_profile , а для Боба я хочу, чтобы оболочка была источником ~/.Bob профиль.

Однако я не уверен, есть ли способ сообщить имя учетной записи на удаленном компьютере пользователя, вошедшего в систему с использованием SSH.

Любые советы приветствуются.

1 ответ1

2

Вы не можете сказать, какую учетную запись использует клиент, потому что клиент не сообщает вам. Но есть следующие вещи, которые вы можете сделать:

  1. Создайте отдельные учетные записи и предоставьте пользователям доступ к общей учетной записи с помощью sudo. Это действительно предпочтительный вариант, который дает вам лучший аудит (всегда регистрируется, кто что делает), и пользователи могут добавлять в свои учетные записи любые утилиты, которые они хотят. Это, однако, также большая часть работы.

  2. Используйте только аутентификацию с открытым ключом и установите переменную среды с использованием синтаксиса:

    environment="END_USER=whoever" ssh-rsa asdfasdfr...
    

    в .ssh/authorized_keys . Чем вы смотрите на $END_USER в .profile . Очевидно, вы должны установить его для каждого открытого ключа, используемого для входа в систему.

  3. Скажите всем, чтобы установить переменную среды от клиента, используя опцию SendEnv (сервер должен иметь соответствующий набор AcceptEnv ). Снова вы проверяете переменную в .profile .

  4. Получите исходный IP-адрес и порт из переменной SSH_CONNECTION и используйте ident чтобы получить фактического исходного пользователя; но identd придется работать на клиентах и редко в эти дни, потому что это не очень полезно, но полезно потенциальному злоумышленнику получить некоторую информацию о вашей системе.

  5. Для более сложной настройки в пределах одной учетной записи всегда можно написать собственную оболочку оболочки и использовать ее с атрибутом command в авторизованных ключах. Это также довольно трудоемкая работа, но ее можно использовать для реализации практически любых ограничений и аудита без необходимости создания отдельных учетных записей.

Примечание: я бы определенно рекомендовал использовать только открытые ключи и отключать пароль. Таким образом, если вы хотите отменить чей-то доступ, вы просто удалите его ключ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .