Сценарии инициализации для каждого пользователя

4320
sasuke

Существует скрипт (больше похожий на команду), который я хотел бы выполнить для каждого пользователя. Я слышал о init.dсценариях, но они требуют прав root и не настраиваются для каждого пользователя (AFAIK). Проще говоря, я ищу что-то вроде того, .bashrcчто будет выполнено только один раз для каждого пользователя.

Чтобы подробнее рассказать о сценарии, я в настоящее время использую гостевую ОС Ubuntu на хосте Windows (эмуляция любезно предоставлена ​​VirtualBox). Каждый раз, когда я подключаюсь к моей гостевой ОС, мне нужно mountвыполнить команду, которая смонтирует мои общие папки в общий каталог в домашнем каталоге пользователя.

6
Не требует ли `mount` root или, по крайней мере, изменение конфигурации root, чтобы тома могли монтировать пользователи без полномочий root? Rich Homolka 13 лет назад 0
@Rich: это действительно так; Я не против увидеть запрос пароля при запуске моей оболочки. Просто команда `mount` довольно сложна, и я не хотел прилагать дополнительные усилия для выполнения вспомогательного скрипта. sasuke 13 лет назад 1

4 ответа на вопрос

5
Gilles

Стандартное место для запуска команд при входе в систему ~/.profile. В некоторых средах этот файл пропускается при входе непосредственно в графическом режиме, но в Ubuntu 10.04 ~/.profileон читается сценариями входа в систему gdm, kdm, lxdm и xdm (в дополнение к входу в систему с текстовой консоли или через ssh). ).

Если у вас есть ~/.bash_profile, ваш ~/.profileбудет иногда пропущен. Лучше всего указывать только следующие две строки ~/.bash_profile:

. ~/.profile . ~/.bashrc 

Затем добавьте действия во время входа в систему ~/.profileи настройку оболочки ~/.bashrc.

Вы решили 2-дневное путешествие, чтобы узнать, почему .bashrc и .profile игнорировались при входе в систему. Другой администратор создал .bash_profile за один раз - после его удаления и повторного ведения журнала все снова заработало чудесно! Woot! Dooley_labs 7 лет назад 0
1
celebdor

Может быть, я не понял все тонкости, но я думаю, что вы можете сделать это, если вы используете Ubuntu, я думаю, что вы могли бы просто написать сценарий для каждого пользователя (или сценарий с различными правилами в зависимости от 'whoami') и, если они используют gnome (по умолчанию для Ubuntu), добавьте этот скрипт в автозагрузку приложений.

1
natxo asenjo

Вы можете попробовать различные варианты здесь: http://library.gnome.org/admin/gdm/stable/configuration.html.en, вы, вероятно, хотите вариант PostLogin

Проблема здесь в том, что все эти параметры требуют изменения в файлах / etc / *, которые требуют привилегий root. Нет ли какого-либо файла, который я могу создать / отредактировать, чтобы скрипт выполнялся только при * I * входе в систему? Что-то вроде `.bashrc`, которое вызывается в каждом сеансе bash и является приватным для пользователя? sasuke 13 лет назад 1
хорошо, я пропустил рут права, очевидно. Вы можете попробовать написать файл .xinitrc или .xsession: http://www.acm.uiuc.edu/workshops/cool_unix/xinitrc.html. natxo asenjo 13 лет назад 0
нет, это тоже выиграло работу. Что будет работать, так это добавить ваш скрипт в автозагрузку приложений (при условии, что в Ubuntu есть такая штука). В fedora вы попадаете из системы -> настройки -> запуска приложений. Здесь есть ссылка на Ubuntu: https://help.ubuntu.com/community/AddingProgramToSessionStartup natxo asenjo 13 лет назад 0
Вот и все, я думаю, спасибо. sasuke 13 лет назад 0
Мне кажется странным, что в Linux нет стандарта для этого. Всем нужен другой метод в зависимости от распределения? Или, может быть, есть стандарт? AlikElzin-kilaka 11 лет назад 0
1
Rich Homolka

Linux cron (написанный Полом Викси (Paul Vixie), так называемый Vixie cron) имеет ключевое слово meta @reboot, которое после перезагрузки начинает работать как владелец crontab. См. Http://www.cyberciti.biz/faq/linux-execute-cron-job-after-system-reboot/

Похожие вопросы