On Fri, Apr 30, 2004 at 06:36:15PM +0300, Andrei Bulava wrote: > > А надо ли? Сделав специализированный shell, который будет > > подправлять окружение и затем запускать обычный shell, можно в > > сочетании с "su ab" добиться ещё большей гибкости, поскольку вы > > можете сами определить, какие именно переменные среды вам нужно > > переустановить. > > Всё вышесказанное понял, за исключением "сделав > специализированный shell". Раскройте, пожалуйста, чуть подробнее. > Тогда я смогу направить свою энергию в правильном направлении и > помочь по мере сил ;-) При переключении в непривилегированного пользователя "su user" из coreutils устанавливает следующие переменные среды: HOME, SHELL, USER, LOGNAME. При этом другие переменные среды, содержащие настройки rootа, сохраняются (см. printenv |fgrep "$USER"). Эмулировать su из coreutils можно, например, с помощью env HOME=/home/user USER=user LOGNAME=user su user Что касается совместимости с coreutils, то я намерен добавить параметр -p. Поведение "su user" всегда будет вызывать споры, поскольку нет единой практики, а разные реализации противоречивы. Мне, например, время от времени предлагают приравнять "su user" к "su -l user". После добавления параметра -p этот вопрос возникнет снова. -- ldv