Hi All!
Есть такая задачка - запустить скрипт под chroot и с привилегиями обычного
юзера. Блин. И как? сначала перейти в юзера а потом chroot делать - нельзя.
сначала chroot а потом su - user; su ругается incorrect password.
Все нужные библиотеки в chroot jail есть, /etc/passwd и /etc/shadow есть.
если перехожу в chroot root-ом и запускаю скрипт то все нормально, а su
делать, зараза не дает incorrect password.
На что еще su проверяет прежде чем переключить пользователя?Заранее спасибо!
/SergeyK
>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 тебе нужен или ты просто так это написал?
>>делать, зараза не дает incorrect password.
>>На что еще su проверяет прежде чем переключить пользователя?
>>
>>Заранее спасибо!>зачем тебе su если не секрет? пишешь маленькую прогу, которая делает chroot
>под суперюзером, затем возвращается к обычному юзверю. и все.
>а jail тебе нужен или ты просто так это написал?Jail-ом я катаолги назвал, где прога крутится... ;)
Зачем su? в общем надо из стартового скрипта /etc/rc3.d/S* запустить софтину в под chroot и юзером который не root.../SergeyK
>
>>>делать, зараза не дает 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("");
}
}