
Есть скрипт (скорее команда), который я хотел бы выполнять на основе входа пользователя в систему. Я слышал о init.d
скриптах, но они требуют прав root и не настраиваются для каждого пользователя (AFAIK). Проще говоря, я ищу что-то вроде того, что .bashrc
будет выполняться только один раз для входа пользователя в систему.
Чтобы немного подробнее рассказать о сценарии, я в настоящее время использую гостевую ОС Ubuntu на хосте Windows (эмуляция предоставлена VirtualBox). Каждый раз, когда я вхожу в гостевую ОС, мне нужно mount
выполнить команду, которая смонтирует мои общие папки в общий каталог в домашнем каталоге пользователя.
решение1
Вы можете попробовать различные варианты здесь:http://library.gnome.org/admin/gdm/stable/configuration.html.en, вам, вероятно, нужна опция PostLogin
решение2
Стандартное место для запуска команд при входе в систему —~/.profile
. В некоторых средах этот файл пропускается при входе в систему напрямую в графическом режиме, но в Ubuntu 10.04 ~/.profile
он считывается скриптами входа gdm, kdm, lxdm и xdm (в дополнение к случаям входа в текстовую консоль или через ssh).
Если у вас есть ~/.bash_profile
, ваш ~/.profile
иногда будет пропущен. Лучше всего поместить только следующие две строки в ваш ~/.bash_profile
:
. ~/.profile
. ~/.bashrc
Затем поместите действия при входе в систему ~/.profile
и настройки оболочки в ~/.bashrc
.
решение3
Возможно, я не понял всех тонкостей, но я думаю, что вы можете сделать это, если используете Ubuntu. Думаю, вы могли бы просто написать скрипт для каждого пользователя (или скрипт с разными правилами в зависимости от «whoami») и, если они используют gnome (по умолчанию в Ubuntu), добавить этот скрипт в автозагрузку приложений.
решение4
Linux cron (написанный Полом Викси, так называемый Vixie cron) имеет ключевое слово meta @reboot
, которое запускает все как владелец crontab после перезагрузки. Смотритеhttp://www.cyberciti.biz/faq/linux-execute-cron-job-after-system-reboot/