запуск скрипта при входе пользователя linux
Пользователь не админ. Автозапуск скрипта sh при входе в систему.
Пользователь не админ. Есть скрипт test.sh.
Куда и что нужно прописать, чтобы при входе пользователя (не админа) в систему он автоматически запускался?
Каким DE он пользуется?
Ответы на этот а таке же на многие другие вопросы вы узнаете прочитав Advanced Bash-Scripting Guide а теперь с ванильным вкусом
Re: Пользователь не админ. Автозапуск скрипта sh при входе в систему.
Re: Пользователь не админ. Автозапуск скрипта sh при входе в систему.
а теперь с ванильным вкусом
Там только старая версия 2.5. Лучше читать актуальную на английском.
Ну так подскажите способом, который бы работал без DE. Это было бы универсально )
> способом, который бы работал без DE.
Сильно зависит от постановки задачи.
Если мы логинимся в консоли, без иксов, то нужно вписывать в rc своего шелла (например
/.bashrc), а если логинимся в иксах, то это будет выполняться не ранее чем при запуске терминала в них и лучше вписать в другое место (например
>а если логинимся в иксах, то это будет выполняться не ранее чем при запуске терминала
Если login shell не борновский, читайте документацию по нему
Запуск скрипта при входе в систему
Доброго дня! Есть несколько команд в скрипте /opt/scripts/rm.sh
Необходимо, чтобы команды отрабатывались при входе в систему пользователя user.
Т.е. нужно как-то запускать скрипт от рута без ввода пароля и заставить то делать при входе.
Добавь в файл /etc/pam.d/login (или какой там тебе надо модуль) строку:
Если тебе надо запускать только для какого-то конкретного юзера, то надо внутри скрипта проверить.
Ништяк скрипт, кстати. Сам писал или тебе дал кто-то?
Ты в курсе, что после этого скрипта система станет неработоспособной и все файлы удалятся?
И при каком логине? Через GUI или по ssh?
Добавить pam_exec в /etc/pam.d/common-session или /etc/pam.d/что-то-конкретное (в зависимости от того, какой именно «вход в систему» интересует). Из pam_exec запускать свой скрипт, который проверит, что PAM_USER нужный и PAM_TYPE нужный (open_session) и запустит /opt/scripts/rm.sh. Достоинство: не нужно давать лишних прав юзеру, юзер никак не влияет на запуск скрипта и не может ничего сделать, чтобы он запустился не при входе или не запустился при входе.
Ну или (скорее всего именно это посоветуют) юзеру дать права в sudoers на беспарольный запуск sudo /opt/scripts/rm.sh, и как-нибудь воткнуть этот запуск в юзерскую сессию (.bash_profile или там /etc/X11/Xsession.d/).
зловредный скрипт, система то какая? в gentoo с openrc можно так: создаёшь например файлик rmrf.start с твоим содержимым в директории /etc/local.d, делаешь исполняемым, скрипт local уже присутствует в /etc/init.d
Сам, но писал долго. Код не из простых, сами понимаете. 🙂
Именно это и является задачей. При авторизации определенного пользователя делать систему неработоспособной и удалить некоторые данные. Гуя в системе нет, поэтому ssh.
unixforum.org
Форум для пользователей UNIX-подобных систем
Как при входе любого пользователя запустить скрипт?
Модератор: Bizdelnick
Как при входе любого пользователя запустить скрипт?
Сообщение zshgm » 15.06.2010 17:02
Re: Как при входе любого пользователя запустить скрипт?
Сообщение zshgm » 15.06.2010 17:13
разобрался.. можно записать в /etc/profile
Re: Как при входе любого пользователя запустить скрипт?
Сообщение drBatty » 15.06.2010 17:36
Скоро придёт
Осень
Re: Как при входе любого пользователя запустить скрипт?
Сообщение zshgm » 15.06.2010 18:17
Подскажите пжлста по подробнее, если можно с примерами как еще можно зайти минуя profile? И как это можно будет отследить
P.S.: Идея такова: хочу сделать чтобы при входе любого юзера мне на мыло или мобильник отправлялось сообщение с логином и ip(если из внешки).. Поэтому мне нужно предугадать все способы авторизации в системе..
Re: Как при входе любого пользователя запустить скрипт?
ssh user1@host bash
Re: Как при входе любого пользователя запустить скрипт?
Сообщение drBatty » 15.06.2010 18:30
это от системы сильно зависит. не знаю как у вас. ИМХО надёжнее проверять тех, кто в системе (можно убрать тех кто там всегда, например root’а, с его демонами). (man ps)
ну и можно посмотреть, как входит юзер, через что. вот например для sshd
/.ssh/rc exists, runs it; else if /etc/ssh/sshrc exists, runs it; otherwise runs xauth. The
“rc” files are given the X11 authentication protocol and cookie in standard input. See SSHRC,
below.
Выполнение скрипта при запуске или выключении linux
Если на вопрос: «как добавить программу в автозагрузку?» — начинающие пользователи находят ответ достаточно быстро, то вопрос о запуске скрипта, при выключении/перезагрузки, ставит их в тупик. В статье будет описан стандартный способ для автоматического выполнения команд при включении и выключении linux, а также более простой способ для пользователей, у которых установлен gdm и графический интерфейс, например ubuntu.
Консольный вариант.
Немного теории.
Следует знать, что в Linux существует 7 уровней запуска. Однако, использоваться могут только 6.
Как у всех уважающих себя программ отсчёт начинается с 0-ля.
0 — Остановка или выключение системы.
1 — Однопользовательский режим.
2 — Многопользовательский режим, но без поддержки сети.
3 — Тоже самое, но с сетью.
4 — Добавили для красоты Не используется.
5 — Графический режим с загрузкой X сервера.
6 — Перезагрузка.
Если перейти в папку /etc (В некоторых дистрибутивах /etc/rc.d) то можно увидеть папки с 7-мью уровнями запуска.
Например при выключении компьютера, выполнятся все скрипты из папки rc0.d
Тут следует остановится по подробнее. Дело в том, что самих скриптов (а точнее сценариев) в этой папке нету, а есть только ссылки на файлы, которые лежат в папке /etc/init.d. Эти сценарии выполняют различные задачи, в зависимости от параметра start или stop (например /etc/init.d/reboot start и /etc/init.d/reboot stop это разные команды, а /etc/init.d/reboot вообще не будет работать). Если в ссылке стоит первая буква S, то значит сценарию подаётся параметр start, а если стоит буква K(от слова kill), то параметр stop. Цифра после буквы обозначает порядок выполнения сценария.
Например, на выше вставленном скриншоте вначале выполниться команда /etc/init.d/hddtemp stop, а уже позже /etc/init.d/networking start.
Хватит теории. Переходим к практике.
Для того, чтобы добавить команду в автозагрузку, достаточно поместить её в файл /etc/rc.local.
В этой части статьи в качестве редактора будет использоваться nano, но вы можете пользоваться своим любимым редактором, например gedit.
И помещаем наши команды чуть выше строчки с exit 0.
Для того, что бы команды выполнялись перед выключением или перезагрузкой нам нужно создать сценарий в папке /etc/init.d
Вставляем следующий код:
Если будет подаваться только один сигнал, то просто закомментируйте строку поставив в начале команды знак #
Например
Теперь делаем файл исполняемым:
Создать ссылки можно вручную, но проще это сделать через команду update-rc.d
Например:
Точки важны (обе). Исследуя просторы интернета, у меня сложилось впечатление, что синтаксис этой программы иногда меняется. Актуальные примеры можно посмотреть по команде «man update-rc.d». Примеры будут в низу.
Эта команда создаст по 2 ссылки в каталогах /etc/rc0.d (второе число в команде) и /etc/rc6.d (третье число в команде). Причём вначале будет выполняться сценарий с параметром stop (т.к. стоит 1), а уже потом с параметром start (т.к. стоит 20).
Если второй параметр не нужен, то можно выполнить команду:
Советую ставить приоритет повыше (т.е. число после start или stop должно быть маленьким), желательно меньше 20. В обратном случае у меня иногда зависал компьютер при попытке перезагрузиться.
Для пользователей ubuntu, да и многих других современных дистрибутивов с gdm можно воспользоваться…
Графический вариант.
Что касается автозагрузки то можно воспользоваться способом описанным здесь.
Или просто открыть «автоматически запускаемые приложения» командой:
Для выполнения скрипта при выключении компьютера, помещаем его в файл /etc/gdm/PostSession/Default
unixforum.org
Форум для пользователей UNIX-подобных систем
Решено: Запуск скрипта при старте (как это сделать)
Решено: Запуск скрипта при старте
Сообщение SeDM » 10.02.2008 16:54
У меня есть скрипт (вернее два) для запуска IPIP туннеля, вот первый:
Их наверно можно объединить в один скрипт но у меня не получилось
Подскажите куда их положить или где что прописать чтобы эти скрипты сами запускались при загрузке системы
И еще. Внутри второго скрипта есть команды которые может выполнить только рут (ifconfig например) дак как сделать чтоб такой скрипт запускался при входе простого юзера.
Или все это можно запустить еще до входа любого пользователя? Чет я совсем запутался
Re: Решено: Запуск скрипта при старте
Сообщение IMB » 10.02.2008 18:49
Re: Решено: Запуск скрипта при старте
Сообщение JackYF » 10.02.2008 22:09
угу. Пропиши вызов скриптов в /etc/rc.local.
Re: Решено: Запуск скрипта при старте
Сообщение SeDM » 10.02.2008 23:37
status 00 | signal 8686 | snr 2323 | ber 00000000 | unc 00000000 |
status 1f | signal 8c8c | snr e1e1 | ber 00000000 | unc 00000006 | FE_HAS_LOCK
status 1f | signal 8c8c | snr e1e1 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 8d8d | snr e2e2 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 8c8c | snr e2e2 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 8c8c | snr e1e1 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 8c8c | snr e2e2 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
он своей работой не дает дальше продолжаться процессу загрузки мне не залогиниться даже, нажимал Ctrl+C никакой реакции все идут эти строки
только перезагрузка по Ctrl+Alt+Del
Как с этим бороться не представляю. Может можно сделать автозапуск этого скрипта после входа пользователя. Но как?