Если все, что Вы хотите сделать, определяют переменные среды, можно вставить их ~/.environment
в корневом каталоге пользователей. Можно вставить более сложные отрывки оболочки ~/.profile
.
Все учетные записи пользователей действительно имеют корневой каталог, даже если он не принадлежит им. В то время как у Вас могут быть учетные записи, корневой каталог которых не существует, нет большого количества точки к выполнению этого. Можно использовать единственный каталог, принадлежавший корню как корневой каталог этих пользователей, если Вам нравится.
Другая возможность выполнить команду во время входа в систему состояла бы в том, чтобы добавить pam_exec
к стеку PAM. Но остерегайтесь этого, это довольно хитро для использования правильно, потому что прогоны программы как исходный пользователь, или как корень, и не как целевой пользователь, и это работает в среде, выбранной исходным пользователем, таким образом, трудно заставить его защитить, если это работает как корень.
] Существует утилита под названием [] sshpass[
], которая позволяет вводить пароль в качестве опции в командной строке. Эта утилита может быть скриптованной так, что она работает на нескольких хостах, даже параллельно. Установите []sshpass[
] на ваш jumpbox, затем возьмите что-нибудь вроде этого:[
sshpass -p password ssh root@host 'hostname;date;id'
]
[] и вставьте его в цикл оболочки или другой метод (например, параллельный ssh или clusterssh), который позволит вам запустить его на нескольких хостах. [
] []Люди могут подумать, что это небезопасно, но если Вы запустите его из командной строки, то после этого просто сотрете историю оболочки, очистите экран, и не будет никаких следов пароля из чистого текста.[
] sshpass -f[имя файла]
анализирует файл с паролем внутри - тогда не нужно очищать историю транзакций bash
Из справочной страницы:
-ffilename
Пароль - это первая строка имени файла.