Собственно выполз из криокамеры и вдруг..
Сабж : находясь в «bash -l» под юзером user1 с PATH=«/somedir1:/somedir2:/somedirN». Делаю :
~/user1: su - user2
~/user2: unset PATH
~/user2: export PATH="/somedir1A:/somedir2A:/somedirNA"
~/user2: echo $PATH
/somedir1A:/somedir2A:/somedirNA
всё вроде бы как положено...
Запускаю скрипт сборки glibc(кросскомпиляция, в PATH уже собранный кросскомпилятор с обвесом) вот с таким содержанием:
BUILD_CC="gcc" \
CC="${TARGET}-gcc" \
BUILD_CXX="g++" \
CXX="${TARGET}-g++" \
AR="${TARGET}-ar" \
RANLIB="${TARGET}-ranlib" \
../configure \
--prefix=/somedir1A \
--host=${TARGET} \
--build=${HOST} \
--enable-kernel=3.2 \
--with-binutils=/somedir1A/bin \
--with-headers=/somedir2A/include
......
....
${TARGET} находится в /somedir1A:/somedir2A:/somedirNA, если просто в оболочке его вызвать он нормально видится и работает, можно «hello world» скомпилить без проблем но ...
Собственно зачем и создан топик: ... но из скрипта PATH=«/somedir1A:/somedir2A:/somedirNA» просто не находится! В configure.log видна PATH=«/somedir1:/somedir2:/somedirN» user1! Даже если в самом скрипте гвоздями прибить экспорт нужной PATH она просто игнорируется, если просто интерактивно запустить configure то она так же игнорируется и в configure.log та же лапша от юзера 1...
WTF!!?? это последние секьюрные правки shadow так чудят или я что-то не догоняю? Ткните пальцем кто в курсе.(ещё пол-года назад этот финт прекрасно работал без всяких проблем)
Версии : bash-5.0 , shadow-4.8 , ну и возможный подозреваемый Linux-PAM-1.3.1 .