ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Q: почему в ALT su ведёт себя не так, как su из coreutils?
@ 2004-04-30 12:49 Andrei Bulava
  2004-04-30 14:20 ` Dmitry V. Levin
  0 siblings, 1 reply; 6+ messages in thread
From: Andrei Bulava @ 2004-04-30 12:49 UTC (permalink / raw)
  To: sisyphus, devel

Hi!

В принципе, я не в претензии. Был. До сегодняшнего дня, пока не
обнаружил, что функционально su из пакета SimplePAMApps (далее
SimplePAMApps::su) отличается от su из coreutils (coreutils::su)
одним, но крайне важным нюансом.

Вот поведение su из coreutils-4.5.3-26 (RHEL3).

Стартовое окружение (TEST=ok):
[root@server1 root]# echo $TERM $HOME $SHELL $USER $LOGNAME $TEST
linux /root /bin/bash root root ok

Test case 1:
[root@server1 root]# su - at
-sh-2.05b$ echo $TERM $HOME $SHELL $USER $LOGNAME $TEST
linux /home/at /bin/sh at at

Test case 2:
[root@server1 root]# su at
sh-2.05b$ echo $TERM $HOME $SHELL $USER $LOGNAME $TEST
linux /home/at /bin/sh at at ok

Test case 3:
[root@server1 root]# su -p at
bash: /root/.bashrc: Permission denied
bash-2.05b$ echo $TERM $HOME $SHELL $USER $LOGNAME $TEST
linux /root /bin/bash root root ok

Вот поведение su из SimplePAMApps.

Стартовое окружение (TEST=ok):
[root@devel root]# echo $TERM $HOME $SHELL $USER $LOGNAME $TEST
linux /root /bin/bash root root ok

Test case 1:
[root@devel root]# su - ab
[ab@devel ab]$ echo $TERM $HOME $SHELL $USER $LOGNAME $TEST
linux /home/ab /bin/bash ab ab

Test case 2:
[root@devel root]# su ab
bash: /root/.bashrc: Permission denied
bash-2.05b$ echo $TERM $HOME $SHELL $USER $LOGNAME $TEST
linux /root /bin/bash root root ok

Задача: мне нужно поведение из coreutils::su::Test case 2, иначе
не удаётся более-менее прямо выполнять запуск демонов tomcat и
cruisecontrol из инитскриптов. Для обоих характерна настройка
переменных окружения из /etc/sysconfig/{%name} с переключением на
непривилегированного пользователя через su. Вот в этот момент и
надо действовать по сценарию coreutils::su::Test case 2, а
именно: изменить $TERM $HOME $SHELL $USER $LOGNAME как при "su
-", но не потерять всех остальных переменных окружения!

Вопрос: будут ли предприняты действия по изменению
фунциональности SimplePAMApps::su? Насколько я понимаю,
coreutils::su вряд ли удастся задействовать в ALT?

P.S. Кстати, поведение coreutils::su "более прямое", что ли. В
затруднении от применения SimplePAMApps::su в виде "su
<username>" оказывалось уже немало людей. С coreutils::su в него
попасть гораздо труднее.

-- 
// AB1002-UANIC


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Q: почему в ALT su ведёт себя не так, как su из coreutils?
  2004-04-30 12:49 [devel] Q: почему в ALT su ведёт себя не так, как su из coreutils? Andrei Bulava
@ 2004-04-30 14:20 ` Dmitry V. Levin
  2004-04-30 15:36   ` Andrei Bulava
  0 siblings, 1 reply; 6+ messages in thread
From: Dmitry V. Levin @ 2004-04-30 14:20 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 2453 bytes --]

Hi,

On Fri, Apr 30, 2004 at 03:49:34PM +0300, Andrei Bulava wrote:
> Hi!

Не надо делать crossposting, пожалуйста.

[...]
> Test case 1:
> [root@server1 root]# su - at
> -sh-2.05b$ echo $TERM $HOME $SHELL $USER $LOGNAME $TEST
> linux /home/at /bin/sh at at
> 
> Test case 2:
> [root@server1 root]# su at
> sh-2.05b$ echo $TERM $HOME $SHELL $USER $LOGNAME $TEST
> linux /home/at /bin/sh at at ok
> 
> Test case 3:
> [root@server1 root]# su -p at
> bash: /root/.bashrc: Permission denied
> bash-2.05b$ echo $TERM $HOME $SHELL $USER $LOGNAME $TEST
> linux /root /bin/bash root root ok
[...]
> Test case 1:
> [root@devel root]# su - ab
> [ab@devel ab]$ echo $TERM $HOME $SHELL $USER $LOGNAME $TEST
> linux /home/ab /bin/bash ab ab
> 
> Test case 2:
> [root@devel root]# su ab
> bash: /root/.bashrc: Permission denied
> bash-2.05b$ echo $TERM $HOME $SHELL $USER $LOGNAME $TEST
> linux /root /bin/bash root root ok
> 
> Задача: мне нужно поведение из coreutils::su::Test case 2, иначе
> не удаётся более-менее прямо выполнять запуск демонов tomcat и
> cruisecontrol из инитскриптов. Для обоих характерна настройка
> переменных окружения из /etc/sysconfig/{%name} с переключением на
> непривилегированного пользователя через su. Вот в этот момент и
> надо действовать по сценарию coreutils::su::Test case 2, а
> именно: изменить $TERM $HOME $SHELL $USER $LOGNAME как при "su
> -", но не потерять всех остальных переменных окружения!

Думаю, что поведение настройщиков не совсем логично.
Более естественным была бы настройка окружения после переключения.

> Вопрос: будут ли предприняты действия по изменению
> фунциональности SimplePAMApps::su?

А надо ли?  Сделав специализированный shell, который будет подправлять
окружение и затем запускать обычный shell, можно в сочетании с "su ab"
добиться ещё большей гибкости, поскольку вы можете сами определить, какие
именно переменные среды вам нужно переустановить.

> Насколько я понимаю,
> coreutils::su вряд ли удастся задействовать в ALT?

С помощью известных средств можно задействовать что угодно.
Но это не самая лучшая идея.

> P.S. Кстати, поведение coreutils::su "более прямое", что ли. В

Нет, оно менее последовательное.

> затруднении от применения SimplePAMApps::su в виде "su
> <username>" оказывалось уже немало людей. С coreutils::su в него
> попасть гораздо труднее.

Однако в случае попадания вылезать дольше.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Q: почему в ALT su ведёт себя не так, как su из coreutils?
  2004-04-30 14:20 ` Dmitry V. Levin
@ 2004-04-30 15:36   ` Andrei Bulava
  2004-05-01 10:54     ` Dmitry V. Levin
  0 siblings, 1 reply; 6+ messages in thread
From: Andrei Bulava @ 2004-04-30 15:36 UTC (permalink / raw)
  To: ALT Devel discussion list

On Fri, 30 Apr 2004, Dmitry V. Levin wrote:

> Hi,
>
> On Fri, Apr 30, 2004 at 03:49:34PM +0300, Andrei Bulava wrote:
> > Hi!
>
> Не надо делать crossposting, пожалуйста.

Больше не буду.

<skip/>

> Думаю, что поведение настройщиков не совсем логично.
> Более естественным была бы настройка окружения после
> переключения.

Как скажете. В решении задачи запуска tomcat / cruisecontrol в
точности следовать поведению su из coreutils для меня не
принципиально. Главное - настроить окружение.

<skip/>

> А надо ли?  Сделав специализированный shell, который будет
> подправлять окружение и затем запускать обычный shell, можно в
> сочетании с "su ab" добиться ещё большей гибкости, поскольку вы
> можете сами определить, какие именно переменные среды вам нужно
> переустановить.

Всё вышесказанное понял, за исключением "сделав
специализированный shell". Раскройте, пожалуйста, чуть подробнее.
Тогда я смогу направить свою энергию в правильном направлении и
помочь по мере сил ;-)

Спасибо.

<skip/>

-- 
// AB1002-UANIC


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Q: почему в ALT su ведёт себя не так, как su из coreutils?
  2004-04-30 15:36   ` Andrei Bulava
@ 2004-05-01 10:54     ` Dmitry V. Levin
  2004-05-03 17:01       ` Andrei Bulava
  0 siblings, 1 reply; 6+ messages in thread
From: Dmitry V. Levin @ 2004-05-01 10:54 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1297 bytes --]

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

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Q: почему в ALT su ведёт себя не так, как su из coreutils?
  2004-05-01 10:54     ` Dmitry V. Levin
@ 2004-05-03 17:01       ` Andrei Bulava
  2004-05-03 18:53         ` Dmitry V. Levin
  0 siblings, 1 reply; 6+ messages in thread
From: Andrei Bulava @ 2004-05-03 17:01 UTC (permalink / raw)
  To: ALT Devel discussion list

On Sat, 1 May 2004, Dmitry V. Levin wrote:

<skip/>

> Что касается совместимости с coreutils, то я намерен добавить
> параметр -p.

Насколько я понял из своих сравнений coreutils::su и
SimplePAMApps::su, то на данный момент:

1) coreutils::"su - user" <=> SimplePAMApps::"su - user";

2) coreutils::"su -p user" <=> SimplePAMApps::"su user";

3) аналога coreutils::"su user" в SimplePAMApps::su нет.

Что вы имеете в виду под "добавить параметр -p"? Я правильно
предполагаю, что вышеупомянутые соответствия между coreutils::su
и SimplePAMApps::su после добавления параметра -p примут вид 1:1
вместо имеющегося сейчас непоследовательного и противоречивого
отображения?

> Поведение "su user" всегда будет вызывать споры, поскольку нет
> единой практики, а разные реализации противоречивы.
>
> Мне, например, время от времени предлагают приравнять "su user"
> к "su -l user".  После добавления параметра -p этот вопрос
> возникнет снова.

Если вдруг приравнять "su user" к "su - user", то соответствие
coreutils и SimplePAMApps примет удручающие формы :-(

P.S. env LC_ALL=ru_RU.KOI8-R man su и env LC_ALL=C man su
показывают совершенно не соответствующие друг другу страницы man
при установленном man-pages-ru-0.94-alt1 :-\ Ошибка, тянущаяся со
времён ALM22 (а скорее, со дня появления SimplePAMApps::su). На
что вешать баг?

-- 
// AB1002-UANIC


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Q: почему в ALT su ведёт себя не так, как su из coreutils?
  2004-05-03 17:01       ` Andrei Bulava
@ 2004-05-03 18:53         ` Dmitry V. Levin
  0 siblings, 0 replies; 6+ messages in thread
From: Dmitry V. Levin @ 2004-05-03 18:53 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1889 bytes --]

On Mon, May 03, 2004 at 08:01:41PM +0300, Andrei Bulava wrote:
> On Sat, 1 May 2004, Dmitry V. Levin wrote:
[...]
> > Что касается совместимости с coreutils, то я намерен добавить
> > параметр -p.
> 
> Насколько я понял из своих сравнений coreutils::su и
> SimplePAMApps::su, то на данный момент:
> 
> 1) coreutils::"su - user" <=> SimplePAMApps::"su - user";
> 
> 2) coreutils::"su -p user" <=> SimplePAMApps::"su user";
> 
> 3) аналога coreutils::"su user" в SimplePAMApps::su нет.
> 
> Что вы имеете в виду под "добавить параметр -p"? Я правильно
> предполагаю, что вышеупомянутые соответствия между coreutils::su
> и SimplePAMApps::su после добавления параметра -p примут вид 1:1
> вместо имеющегося сейчас непоследовательного и противоречивого
> отображения?

Нет, я всего-навсего имел в виду, что появится соответствие
coreutils::"su -p user" <=> SimplePAMApps::"su -p user"

> > Поведение "su user" всегда будет вызывать споры, поскольку нет
> > единой практики, а разные реализации противоречивы.
> >
> > Мне, например, время от времени предлагают приравнять "su user"
> > к "su -l user".  После добавления параметра -p этот вопрос
> > возникнет снова.
> 
> Если вдруг приравнять "su user" к "su - user", то соответствие
> coreutils и SimplePAMApps примет удручающие формы :-(

Дело в том, что coreutils::"su user" - это нечто между
coreutils::"su - user" и coreutils::"su -p user", с очень спорной
логикой, о чём я уже говорил.  Пожалуй, надо будет посоветоваться
с upstream.

> P.S. env LC_ALL=ru_RU.KOI8-R man su и env LC_ALL=C man su
> показывают совершенно не соответствующие друг другу страницы man
> при установленном man-pages-ru-0.94-alt1 :-\ Ошибка, тянущаяся со
> времён ALM22 (а скорее, со дня появления SimplePAMApps::su). На
> что вешать баг?

Повесьте баг на то, что меньше соответствует действительности.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2004-05-03 18:53 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-04-30 12:49 [devel] Q: почему в ALT su ведёт себя не так, как su из coreutils? Andrei Bulava
2004-04-30 14:20 ` Dmitry V. Levin
2004-04-30 15:36   ` Andrei Bulava
2004-05-01 10:54     ` Dmitry V. Levin
2004-05-03 17:01       ` Andrei Bulava
2004-05-03 18:53         ` Dmitry V. Levin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git