Re: выполнение с правами суперюзера
- From
- Constantin Stefanov (2:5020/400)
- To
- Eugene Grosbein
- Date
- 2005-06-03T10:48:08Z
- Area
- RU.UNIX.BSD
From: Constantin Stefanov <cstef@mail.ru>
Eugene Grosbein wrote:
> >> порекомендовали же отличный способ - sudo,
> VS> Кстати, раз заговорили, давно хотел спросить.
> VS> Как устроен sudoedit, что из вызванного им редактора вызываешь
> VS> /bin/sh, к примеру - а он не рутовый, а того пользователя, который
> VS> sudoedit вызывал. Это очень правильно и хорошо, но как это сделано?
>
> The getuid() function returns the real user ID of the calling process.
> The geteuid() function returns the effective user ID of the calling process.
>
> Видимо, sudoedit запускается с повышенным EUID, но с исходным RUID
> (так запускаются все suid-бинари), запоминает RUID и между
> fork() и exec() делает setuid().
А это не факт. Например, /bin/sh имеет ключик -p. Если его вызвать без
этого ключа, то он сам при старте сбросит EUID и EGID в значения из real
UIG и GID.
--
Константин Стефанов
--- ifmail v.2.15dev5.3
* Origin: Demos online service (2:5020/400)
SEEN-BY: 46/50 50/203 520 400/814 450/159 186 247 1024 451/30 461/43 132 640
SEEN-BY: 469/999 550/196 4616/3 4625/8 4627/10 4635/4 4652/15 5000/76 5000
SEEN-BY: 5006/1 5007/1 5010/70 5011/13 5015/10 5019/31 5020/52 118 154 175 194
SEEN-BY: 5020/400 545 549 604 715 758 830 937 1057 1523 1604 1630 1922 2020
SEEN-BY: 5020/2142 2238 2450 2590 4441 5021/29 5022/128 5025/3 750 5026/45
SEEN-BY: 5027/16 5029/32 5030/49 115 473 500 556 966 1063 1900 5031/70 72
SEEN-BY: 5034/13 5035/3 38 5036/1 34 5042/13 5049/1 50 97 5051/15 5054/1 4 8 9
SEEN-BY: 5054/28 35 36 37 63 66 67 70 75 81 84 85 5055/95 5057/1 5060/88
SEEN-BY: 5061/15 120 5062/1 10 5063/3 5066/18 5067/2 5069/7 5070/1222 5074/9
SEEN-BY: 5075/5 35 5079/23 5080/80 1003 5081/2 5082/6 5083/21 5085/13 5090/108
SEEN-BY: 5095/20 5096/18 6000/12 254 6001/3 10
PATH: 5020/400 4441 545 5054/1 37