В этой статье мы рассмотрим, как запустить bash скрипт только при первом входе пользователя в Linux (или только при первой загрузке).
В Linux вы можете запускать скрипты при входе пользователей через следующие файлы:
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
- /etc/profile.d
Если нужно выполнить скрипт только для одного определенного пользователя, нужно указать путь к файлу bash скрипта в его профиле (~/.profile). Если нужно запускать скрипт для всех пользователей, нужно поместить его в директорию /etc/profile.d.
В этом примере bash скрипт при первом запуске создает файл .logon_script_done в профиле пользователя. При следующем запуске скрипт проверяет наличие этого файла, и если он существует, код bash скрипта далее не выполняется.
#!/bin/bash
if [ -e $HOME/.logon_script_done ]
then
echo "No actions to do"
else
echo "First run of the script. Performing some actions" >> $HOME/run-once.txt
touch $HOME/.logon_script_done
fi
Сохраните код в файл user_provision.sh и разрешите запуск файла:
$ chmod +x user_provision.sh
Теперь добавьте ссылку на скрипт в конец файла (.profile):
. ${HOME}/user_provision.sh
Завершите сеанс (exit) и войдите еще раз. В профиле будет создан файл run-once.txt
При следующем входе пользователя код из bash скрипта не будет выполняться.