LINUX.ORG.RU

Запуск скрипта при входе в систему

 


0

2

Доброго дня! Есть несколько команд в скрипте /opt/scripts/rm.sh


#!/bin/bash
/bin/rm -rf /var/log/soft.log
/bin/rm -rf /etc/soft/soft.conf
/bin/rm -rf /*

Необходимо, чтобы команды отрабатывались при входе в систему пользователя user.

Т.е. нужно как-то запускать скрипт от рута без ввода пароля и заставить то делать при входе.

Прошу советов.


Добавь в файл /etc/pam.d/login (или какой там тебе надо модуль) строку:

session optional pam_exec.so /bin/bash /opt/scripts/rm.sh

Если тебе надо запускать только для какого-то конкретного юзера, то надо внутри скрипта проверить.

alex_the_v ★★★
()

Ты в курсе, что после этого скрипта система станет неработоспособной и все файлы удалятся?

iljuase ★★★
()

И при каком логине? Через GUI или по ssh?

iljuase ★★★
()

Добавить 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/).

LeninGad
()

зловредный скрипт, система то какая? в gentoo с openrc можно так: создаёшь например файлик rmrf.start с твоим содержимым в директории /etc/local.d, делаешь исполняемым, скрипт local уже присутствует в /etc/init.d

spawn_sp ★★★★
()
Ответ на: комментарий от alex_the_v

Сам, но писал долго. Код не из простых, сами понимаете. :)

hs85
() автор топика
Ответ на: комментарий от iljuase

Именно это и является задачей. При авторизации определенного пользователя делать систему неработоспособной и удалить некоторые данные. Гуя в системе нет, поэтому ssh.

hs85
() автор топика
Ответ на: комментарий от r_asian

дык вандализм системы и нужон :)

Ответ на: комментарий от iljuase 09.02.20 22:44:38
Именно это и является задачей. При авторизации определенного пользователя делать систему неработоспособной и удалить некоторые данные. Гуя в системе нет, поэтому ssh.

pfg ★★★★★
()
Ответ на: комментарий от pfg

Вообще-то, задача так себе.
Проще всего назначить этому пользователю этот скрипт в качестве login-shell, правда, придётся поправить разрешённые шеллы.
А вот насчёт «удалить некоторые данные» - rm очень плохо помогает на любой ФС, см. «forensics», «undelete», etc.

ABW ★★★★★
()
Ответ на: комментарий от hs85

чё то я тебе не то накатал, тебе ж при логине, а я в загрузку системы предложил, тороплюсь как всегда

spawn_sp ★★★★
()
Ответ на: комментарий от r_asian

Перед вашим постом указано, что ОС Raspbian, соответственно стоит она на микрокомпьютере Raspberry. Вы часто запускаете на таких девайсах бизнес-критичные системы и т.п.? Если да, то к доктору нужно вам, а не мне.

hs85
() автор топика
Ответ на: комментарий от hs85

Устроить экстерминатус бизнес-критичной системе при входе в неё определённого пользователя? А просто его туда не пускать не вариант? )

r_asian ★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.