The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Не работает top в chroot"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Не работает top в chroot"
Сообщение от Keeper emailИскать по авторуВ закладки(??) on 10-Ноя-04, 10:52  (MSK)
Создал на FreeBSD 4.10 chroot-окружения для юзверей ssh. Туда вошли /bin, /dev, кое-что из /etc, /var/run, /usr/bin, прочие необходимые библиотеки, в том числе perl, gcc, make. И несколько портов - mc, архиваторы. Все работает здорово, в том числе и ps, не работает top:

kvm_open: /dev/mem: Permission denied

Прочитал man top. Проверяем из-под chroot-енного юзверя:

$ ls -l /etc/passwd
-rw-r--r--  1 root  wheel  4606 Nov  9 10:51 /etc/passwd

$ ls -l /dev/*mem
crw-r-----  1 root  kmem    2,   1 Nov 10 07:26 /dev/kmem
crw-r-----  1 root  kmem    2,   0 Nov 10 07:26 /dev/mem

$ ls -l /kernel
-r-xr-xr-x  1 root  wheel  2447436 Sep  3 07:29 /kernel

Если сделать от root'а
# chmod o+r /usr/chroot/dev/mem /usr/chroot/dev/kmem
тогда top под юзверем начинает работать, но это же не несекьюрно!
Обращаем внимание на оригинальную установку пермишнов:
# ls -l /dev/*mem
crw-r-----  1 root  kmem    2,   1  3  11:07 /dev/kmem
crw-r-----  1 root  kmem    2,   0  3  11:07 /dev/mem
Флаги те же - 640, но ведь работает же подо всеми юзверями, блин.

В чем тут может быть дело?

P.S. ps работает и под chroot-енным юзверем.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Не работает top в chroot"
Сообщение от Дима emailИскать по авторуВ закладки(??) on 10-Ноя-04, 13:42  (MSK)
>Создал на FreeBSD 4.10 chroot-окружения для юзверей ssh. Туда вошли /bin, /dev,
>кое-что из /etc, /var/run, /usr/bin, прочие необходимые библиотеки, в том числе
>perl, gcc, make. И несколько портов - mc, архиваторы. Все работает
>здорово, в том числе и ps, не работает top:
>
>kvm_open: /dev/mem: Permission denied
>
>Прочитал man top. Проверяем из-под chroot-енного юзверя:
>
>$ ls -l /etc/passwd
>-rw-r--r--  1 root  wheel  4606 Nov  9 10:51
>/etc/passwd
>
>$ ls -l /dev/*mem
>crw-r-----  1 root  kmem    2,  
>1 Nov 10 07:26 /dev/kmem
>crw-r-----  1 root  kmem    2,  
>0 Nov 10 07:26 /dev/mem
>
>$ ls -l /kernel
>-r-xr-xr-x  1 root  wheel  2447436 Sep  3 07:29
>/kernel
>
>Если сделать от root'а
># chmod o+r /usr/chroot/dev/mem /usr/chroot/dev/kmem
>тогда top под юзверем начинает работать, но это же не несекьюрно!
>Обращаем внимание на оригинальную установку пермишнов:
># ls -l /dev/*mem
>crw-r-----  1 root  kmem    2,  
>1  3  11:07 /dev/kmem
>crw-r-----  1 root  kmem    2,  
>0  3  11:07 /dev/mem
>Флаги те же - 640, но ведь работает же подо всеми юзверями,
>блин.
>
>В чем тут может быть дело?
>
>P.S. ps работает и под chroot-енным юзверем.


Насколько я знаю, top использует proc. Ты его подмонтировал в chroot'е?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Не работает top в chroot"
Сообщение от Keeper emailИскать по авторуВ закладки(??) on 10-Ноя-04, 13:48  (MSK)
>Насколько я знаю, top использует proc. Ты его подмонтировал в chroot'е?

Пробовал. Результат тот же. Делал так. От root'а:

# mount_procfs procfs /usr/chroot/proc

От юзверя:

$ top
kvm_open: /dev/mem: Permission denied

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Не работает top в chroot"
Сообщение от lavr emailИскать по авторуВ закладки on 10-Ноя-04, 14:16  (MSK)
>>Насколько я знаю, top использует proc. Ты его подмонтировал в chroot'е?
>
>Пробовал. Результат тот же. Делал так. От root'а:
>
># mount_procfs procfs /usr/chroot/proc
>
>От юзверя:
>
>$ top
>kvm_open: /dev/mem: Permission denied

truss -o /tmp/top top -n

по идее, такая команда должна ответить на вопрос

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Не работает top в chroot"
Сообщение от Keeper emailИскать по авторуВ закладки(??) on 10-Ноя-04, 15:05  (MSK)
>truss -o /tmp/top top -n
>
>по идее, такая команда должна ответить на вопрос

Должна. Но не ответила. ^_^

mmap(0x0,2048,0x3,0x1000,-1,0x0)                 = 671506432 (0x28066000)            
munmap(0x28066000,0x800)                         = 0 (0x0)                            
__sysctl(0xbfbffa90,0x2,0x28064f88,0xbfbffa8c,0x0,0x0) = 0 (0x0)                      
mmap(0x0,32768,0x3,0x1002,-1,0x0)                = 671506432 (0x28066000)            
geteuid()                                        = 2020 (0x7e4)                      
getuid()                                         = 2020 (0x7e4)                      
getegid()                                        = 999 (0x3e7)                        
getgid()                                         = 999 (0x3e7)                        
open("/etc/libmap.conf",0x0,0666)                ERR#2 'No such file or directory'    
open("/var/run/ld-elf.so.hints",0x0,00)          = 4 (0x4)                            
read(0x4,0xbfbffa70,0x80)                        = 128 (0x80)                        
lseek(4,0x80,0)                                  = 128 (0x80)                        
read(0x4,0x28068100,0x8f)                        = 143 (0x8f)                        
close(4)                                         = 0 (0x0)                            
access("/usr/lib/libncurses.so.5",0)             = 0 (0x0)                            
open("/usr/lib/libncurses.so.5",0x0,05001262053) = 4 (0x4)                            
fstat(4,0xbfbffab8)                              = 0 (0x0)                            
read(0x4,0xbfbfea88,0x1000)                      = 4096 (0x1000)                      
mmap(0x0,266240,0x5,0x20002,4,0x0)               = 671539200 (0x2806e000)            
mprotect(0x280a2000,0x1000,0x7)                  = 0 (0x0)                            
mprotect(0x280a2000,0x1000,0x5)                  = 0 (0x0)                            
mmap(0x280a3000,36864,0x3,0x12,4,0x34000)        = 671756288 (0x280a3000)            
mmap(0x280ac000,12288,0x3,0x1012,-1,0x0)         = 671793152 (0x280ac000)            
close(4)                                         = 0 (0x0)                            
access("/usr/lib/libm.so.2",0)                   = 0 (0x0)                            
open("/usr/lib/libm.so.2",0x0,05001262053)       = 4 (0x4)                            
fstat(4,0xbfbffab8)                              = 0 (0x0)                            
read(0x4,0xbfbfea88,0x1000)                      = 4096 (0x1000)                      
mmap(0x0,110592,0x5,0x20002,4,0x0)               = 671805440 (0x280af000)            
mprotect(0x280c5000,0x1000,0x7)                  = 0 (0x0)                            
mprotect(0x280c5000,0x1000,0x5)                  = 0 (0x0)                            
mmap(0x280c6000,16384,0x3,0x12,4,0x16000)        = 671899648 (0x280c6000)            
close(4)                                         = 0 (0x0)                        
access("/usr/lib/libkvm.so.2",0)                 = 0 (0x0)                            
open("/usr/lib/libkvm.so.2",0x0,05001262053)     = 4 (0x4)                            
fstat(4,0xbfbffab8)                              = 0 (0x0)                            
read(0x4,0xbfbfea88,0x1000)                      = 4096 (0x1000)                      
mmap(0x0,24576,0x5,0x20002,4,0x0)                = 671916032 (0x280ca000)            
mprotect(0x280ce000,0x1000,0x7)                  = 0 (0x0)                            
mprotect(0x280ce000,0x1000,0x5)                  = 0 (0x0)                            
mmap(0x280cf000,4096,0x3,0x12,4,0x4000)          = 671936512 (0x280cf000)            
close(4)                                         = 0 (0x0)                            
access("/usr/lib/libc.so.4",0)                   = 0 (0x0)                            
open("/usr/lib/libc.so.4",0x0,05001262053)       = 4 (0x4)                            
fstat(4,0xbfbffab8)                              = 0 (0x0)                            
read(0x4,0xbfbfea88,0x1000)                      = 4096 (0x1000)                      
mmap(0x0,626688,0x5,0x20002,4,0x0)               = 671940608 (0x280d0000)            
mprotect(0x28151000,0x1000,0x7)                  = 0 (0x0)                            
mprotect(0x28151000,0x1000,0x5)                  = 0 (0x0)                            
mmap(0x28152000,20480,0x3,0x12,4,0x81000)        = 672473088 (0x28152000)            
mmap(0x28157000,73728,0x3,0x1012,-1,0x0)         = 672493568 (0x28157000)            
close(4)                                         = 0 (0x0)                            
mmap(0x0,736,0x3,0x1000,-1,0x0)                  = 672567296 (0x28169000)            
munmap(0x28169000,0x2e0)                         = 0 (0x0)                            
mmap(0x0,4576,0x3,0x1000,-1,0x0)                 = 672567296 (0x28169000)            
munmap(0x28169000,0x11e0)                        = 0 (0x0)                            
mmap(0x0,2208,0x3,0x1000,-1,0x0)                 = 672567296 (0x28169000)            
munmap(0x28169000,0x8a0)                         = 0 (0x0)                            
mmap(0x0,688,0x3,0x1000,-1,0x0)                  = 672567296 (0x28169000)            
munmap(0x28169000,0x2b0)                         = 0 (0x0)                            
mmap(0x0,13360,0x3,0x1000,-1,0x0)                = 672567296 (0x28169000)            
munmap(0x28169000,0x3430)                        = 0 (0x0)                            
sigaction(SIGILL,0xbfbffb10,0xbfbffaf8)          = 0 (0x0)                            
sigprocmask(0x1,0x0,0x28064ebc)                  = 0 (0x0)                            
sigaction(SIGILL,0xbfbffaf8,0x0)                 = 0 (0x0)                            
sigprocmask(0x1,0x28064e80,0xbfbffb38)           = 0 (0x0)                            
sigprocmask(0x3,0x28064e90,0x0)                  = 0 (0x0)              
fstat(1,0xbfbff9a0)                              = 0 (0x0)                            
__sysctl(0xbfbff9b0,0x2,0xbfbff9b8,0xbfbff9ac,0x804e82b,0x12) ERR#2 'No such file
__sysctl(0xbfbff9b0,0x2,0xbfbff9b8,0xbfbff9ac,0x804e83e,0xe) ERR#2 'No such file
geteuid()                                        = 2020 (0x7e4)                      
readlink("/etc/malloc.conf",0xbfbff820,63)       ERR#2 'No such file or directory'    
mmap(0x0,4096,0x3,0x1002,-1,0x0)                 = 672567296 (0x28169000)            
break(0x80ca000)                                 = 0 (0x0)                            
break(0x80cb000)                                 = 0 (0x0)                            
stat("/etc/pwd.db",0xbfbff8f0)                   = 0 (0x0)                            
open("/etc/pwd.db",0x0,00)                       = 4 (0x4)                            
fcntl(0x4,0x2,0x1)                               = 0 (0x0)                            
read(0x4,0x80ca000,0x104)                        = 260 (0x104)                        
break(0x80cc000)                                 = 0 (0x0)                            
break(0x80cd000)                                 = 0 (0x0)                            
break(0x80ce000)                                 = 0 (0x0)                            
lseek(4,0x4000,0)                                = 16384 (0x4000)                    
read(0x4,0x80cd000,0x1000)                       = 4096 (0x1000)                      
break(0x80cf000)                                 = 0 (0x0)                            
break(0x80d0000)                                 = 0 (0x0)                            
lseek(4,0x5000,0)                                = 20480 (0x5000)                    
read(0x4,0x80cf000,0x1000)                       = 4096 (0x1000)                      
break(0x80d1000)                                 = 0 (0x0)                            
lseek(4,0x6000,0)                                = 24576 (0x6000)                    
read(0x4,0x80d0000,0x1000)                       = 4096 (0x1000)                      
break(0x80d2000)                                 = 0 (0x0)                            
lseek(4,0x7000,0)                                = 28672 (0x7000)                    
read(0x4,0x80d1000,0x1000)                       = 4096 (0x1000)                      
break(0x80d3000)                                 = 0 (0x0)                            
lseek(4,0x8000,0)                                = 32768 (0x8000)                    
read(0x4,0x80d2000,0x1000)                       = 4096 (0x1000)                      
break(0x80d4000)                                 = 0 (0x0)                            
lseek(4,0x1000,0)                                = 4096 (0x1000)                      
read(0x4,0x80d3000,0x1000)                       = 4096 (0x1000)                      
break(0x80d5000)                                 = 0 (0x0)                
lseek(4,0x2000,0)                                = 8192 (0x2000)                      
read(0x4,0x80d4000,0x1000)                       = 4096 (0x1000)                      
break(0x80d6000)                                 = 0 (0x0)                            
lseek(4,0x3000,0)                                = 12288 (0x3000)                    
read(0x4,0x80d5000,0x1000)                       = 4096 (0x1000)                      
break(0x80d7000)                                 = 0 (0x0)                            
__sysctl(0xbfbff928,0x2,0x281598e0,0xbfbff924,0x0,0x0) = 0 (0x0)                      
open("/dev/mem",0x0,00)                          ERR#13 'Permission denied'          
write(2,0xbfbff1e8,10)                           = 10 (0xa)                          
write(2,0xbfbff208,8)                            = 8 (0x8)                            
write(2,0xbfbff1d8,20)                           = 20 (0x14)                          
exit(0x1)                                       process exit, rval = 256            


open("/dev/mem",0x0,00) = Permission denied  -- это я знал и раньше.
Все остальные открываемые top'ом файлы или присутствуют и в chroot-окружении, или отсутствовали в исходной системе.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Не работает top в chroot"
Сообщение от Keeper emailИскать по авторуВ закладки(??) on 11-Ноя-04, 09:26  (MSK)
Проблема решена. При копировании /usr/bin/top в chroot-окружение терялся флаг SGID (как раз для группы kmem).
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру