LINUX.ORG.RU

Странное поведение bash & su ...

 


0

1

Собственно выполз из криокамеры и вдруг..

Сабж : находясь в «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 .

всё, разобрался. Стоило перечитать маны, оказалось дело в login.defs от PAM. Он по умолчанию переопределяет переменные окружения если их явно не оговаривать, в общем решил проблему. Закрыто.

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