|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Constantin Stefanov 2:5020/400 01 Jun 2005 14:50:24 To : Eugene Grosbein Subject : Re: scp и chroot -------------------------------------------------------------------------------- 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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/6577b86b08c2.html, оценка из 5, голосов 10
|