URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 25741
[ Назад ]

Исходное сообщение
"chroot + su"

Отправлено watcher , 29-Янв-03 21:59 
Hi All!
Есть такая задачка - запустить скрипт под chroot и с привилегиями обычного
юзера. Блин. И как? сначала перейти в юзера а потом chroot делать - нельзя.
сначала chroot а потом su - user; su ругается incorrect password.
Все нужные библиотеки в chroot jail есть, /etc/passwd и /etc/shadow есть.
если перехожу в chroot root-ом и запускаю скрипт то все нормально, а su
делать, зараза не дает incorrect password.
На что еще su проверяет прежде чем переключить пользователя?

Заранее спасибо!

/SergeyK


Содержание

Сообщения в этом обсуждении
"RE: chroot + su"
Отправлено Den , 30-Янв-03 10:39 
>Hi All!
>Есть такая задачка - запустить скрипт под chroot и с привилегиями обычного
>
>юзера. Блин. И как? сначала перейти в юзера а потом chroot делать
>- нельзя.
>сначала chroot а потом su - user; su ругается incorrect password.
>Все нужные библиотеки в chroot jail есть, /etc/passwd и /etc/shadow есть.
>если перехожу в chroot root-ом и запускаю скрипт то все нормально, а
>su
>делать, зараза не дает incorrect password.
>На что еще su проверяет прежде чем переключить пользователя?
>
>Заранее спасибо!
>
>/SergeyK

зачем тебе su если не секрет? пишешь маленькую прогу, которая делает chroot под суперюзером, затем возвращается к обычному юзверю. и все.
а jail тебе нужен или ты просто так это написал?


"RE: chroot + su"
Отправлено watcher , 31-Янв-03 01:13 

>>делать, зараза не дает incorrect password.
>>На что еще su проверяет прежде чем переключить пользователя?
>>
>>Заранее спасибо!

>зачем тебе su если не секрет? пишешь маленькую прогу, которая делает chroot
>под суперюзером, затем возвращается к обычному юзверю. и все.
>а jail тебе нужен или ты просто так это написал?

Jail-ом я катаолги назвал, где прога крутится... ;)
Зачем su? в общем надо из стартового скрипта /etc/rc3.d/S* запустить софтину в под chroot  и юзером который не root...

/SergeyK



"RE: chroot + su"
Отправлено Den , 31-Янв-03 10:31 
>
>>>делать, зараза не дает incorrect password.
>>>На что еще su проверяет прежде чем переключить пользователя?
>>>
>>>Заранее спасибо!
>
>>зачем тебе su если не секрет? пишешь маленькую прогу, которая делает chroot
>>под суперюзером, затем возвращается к обычному юзверю. и все.
>>а jail тебе нужен или ты просто так это написал?
>
>Jail-ом я катаолги назвал, где прога крутится... ;)
>Зачем su? в общем надо из стартового скрипта /etc/rc3.d/S* запустить софтину в
>под chroot  и юзером который не root...
>
>/SergeyK

в порядке идеи, которую нужно слегка творчески переработать:
программка запускается вместо оболочки пользователя, на нее выставлен суидный бит. затем делается chroot в HOME пользователя, вычисляются его реальные ID юзера и группы, а затем эффективные устанавливаются в соответствии реальным и запускается оболочка.
примерно то же самое нужно сделать тебе. будут проблемы - пиши.
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/types.h>

#define SHELL "/bin/sh"

main (int argc, char **argv, char **envp) {
        char *home;
        gid_t uid, gid;

        home = getenv("HOME");
        if (chroot(home)) {
                perror("");
                exit(1);
        }

        gid = getgid();
        uid = getuid();
        setegid(gid); seteuid(uid);

        if (execvp(SHELL, argv/*, envp*/)) {
                perror("");
        }
}