Может ли issetuid () быть очищен для дочернего процесса? [закрыто]

Мой рецепт для Ubuntu 16.04 Xenial, протестированный на недавно установленной 32-разрядной виртуальной машине Ubuntu со стандартным системным и SSH-сервером, но без GUI:

sudo -s
dpkg --get-selections > pkg1
dpkg --add-architecture amd64
apt update
apt install linux-image-generic:amd64 thermald 

(иначе он установит heatd: amd64 и не будет перезагрузить его под 32-разрядным ядром)

reboot

после перезагрузки с 64-битным ядром:

sudo -s
unset LANG
apt install apt:amd64 apt-utils:amd64

type «Да, делайте, как я говорю!» когда его спросят, он будет безопасным

mkdir /tmp/upgrade 
cd /tmp/upgrade
pkgs() { dpkg -l | awk '$4=="'$1'"{print $2}' | awk -F: '{print $1}' | sort -u
}
apt download $(comm -23 <(pkgs i386) <(pkgs amd64))
while ls *amd64*deb
do dpkg -i *amd64*deb
   dpkg -l | awk '$1=="ii" && $4=="amd64" {print $2}' | awk -F: '{print $1}' |
   while read a
   do [ -f ${a}_*amd64*deb ] && rm ${a}_*amd64*deb
   done
done

в цикле выше, мы удалим файлы .deb, которые были успешно установлены и получили статус «ii» в списке dpkg.

нам нужно повторить пробеги dpkg -i, так как это не удается с самой первой попытки

reboot

теперь, как с 64-битным ядром, так и с пользовательским пространством, оставшиеся пакеты i386 можно удалить:

dpkg --purge $(dpkg -l | awk '$4=="i386"{print $2}')

список, который вы сохранили в файле pkgs1, который вы можете использовать для любых ваших дальнейших потребностей.

3
задан 19 January 2012 в 13:06

0 ответов

Другие вопросы по тегам:

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