Понадобилось мне использовать run-parts и для уточнения деталей вызвал "run-parts --help". Раз вызвал, два вызвал. Молчит и всё тут. Запустил strace на run-parts и стало ясно почему он молчал. Это оказался не бинарник/симлинк, а
скрипт run-parts
Код: Выделить всё
#!/bin/sh
#
# runparts.sh by macsat@macsat.com
# intended for use with cron
#
# based on rc.unslung by unslung guys :-)
#
if [ -z "$1" ]
then
echo "Usage : $0 "
fi
RUNDIR=$1"/*"
for i in $RUNDIR ;do
# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue
case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set start
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i start
;;
esac
из entware (/opt/bin у меня прописан вначале PATH, т.к. я ему доверял) который на исполнение начал запускать файлы из корня (сам я был в home-директории, глубоко в /data). А в корне c правами +x лежали файлы init* (и в частности /init) которые скрипт отправил на выполнение. Учитывая, что /system у меня был смонтирован в rw для настройки скриптов init.d, которые должен был инициализировать НОРМАЛЬНЫЙ run-parts, лишних седых волос и отложенных кирпичей у меня прибавилось. Пока неизвестно, каковы последствия выполнеия этих скриптов (я процесс остановил на выполнении скрипта /remount.sh, когда на нём strace подвис т.к. судя по всему скрипта не существовало), но после выполнения того, что выполнилось, на экране нарисовался приветственный стартовый экран обнулённого ведра, в /data/data была чистота девственной системы (никаких лишниих приложений). Окончательно потеряв надежду и решив, что всё навернулось я ребутнул смарт (ssh что интересно, продолжал работать, хоть и сыпал ошибками, что не может писать историю туда, куда он ранее её спокойно писал). К счастью, всё осталось на месте (видать на место текущей системы тогда замонтировался блок с чистой версией ведра или типа того). Тем не менее, хотелось бы разобраться, что произошло при выполнении init скриптов и каковы последствия. Для этого я приаттачил /init* файлы и тот strace-лог. Знаю что этого маловато, но у меня самого сейчас плохо получается что-то анализировать после произошедшего. Тем более после произошедшего не по моей вине. Такой подставы я не ожидал. Честно. Я не ожидал, что вместо run-parts будет скрипт. Который вытворит ТАКОЕ.
И сколько там ещё таких скрипто-подарочков вместо бинарей ?
upd: Судя по всему на выполнение из имевшихся в корне +x файлов пошёл только /init. Хотя неизвестно, отработали ли в фоне запущенные ранее до конца копии run-parts или так же залипли при попытке выполнить /remount.sh)
У вас нет необходимых прав для просмотра вложений в этом сообщении.