Re: scp и chroot
- From
- Constantin Stefanov (2:5020/400)
- To
- Eugene Grosbein
- Date
- 2005-06-01T14:50:24Z
- Area
- RU.UNIX.BSD
From: Constantin Stefanov <cstef@mail.ru>
Eugene Grosbein wrote:
> SR>> Это, на самом деле, пофиг. Раз в scponly нет вызова umask(2),
> SR>> то ничего не поможет. Только патч. Либо кто-то должен установить
> SR>> umask _до_ вызова scponly. Ещё вариант - патчить scp/sftp, но вот
> SR>> этого мне совсем не хочется делать.
> >> Крайне полезно в scponly добавить хотя бы такое:
> >>
> >> #ifdef LOGIN_CAP
> >> if ((lc = login_getpwclass(pw)) != NULL)
> >> setusercontext(lc, pw, (uid_t)0,
> >> LOGIN_SETLOGIN|LOGIN_SETGROUP|LOGIN_SETPRIORITY|
> >> LOGIN_SETRESOURCES|LOGIN_SETUMASK);
> >> #endif
> CS> А разве это дело шелла такими вещами заниматься? В каких еще шеллах есть
> CS> такое? Вроде как этим login должен заниматься, или sshd.
>
> login'а может и не быть. Как нет его в случае ftpd.
> Да, в случае sshd неплохо бы ему этим заниматься.
А он и занимается, правда не до конца. Вот кусочек из
/usr/src/crypto/openssh/session.c:
#ifdef HAVE_LOGIN_CAP
child_set_env(&env, &envsize, "PATH", _PATH_STDPATH);
child_set_env(&env, &envsize, "TERM", "su");
senv = environ;
environ = xmalloc(sizeof(char *));
*environ = NULL;
(void) setusercontext(lc, pw, pw->pw_uid,
LOGIN_SETENV|LOGIN_SETPATH);
copy_environment(environ, &env, &envsize);
for (var = environ; *var != NULL; ++var)
xfree(*var);
xfree(environ);
environ = senv;
#else /* HAVE_LOGIN_CAP */
Так что, по-моему, править надо именно здесь, а не в шелле.
--
Константин Стефанов
--- 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