LINUX.ORG.RU

dmidecode без root


0

1

ls -l `which dmidecode`
-rwxr-sr-x 1 root kmem 78576 Янв 25 2011 /usr/sbin/dmidecode

ls -l /dev/mem
crw-r----- 1 root kmem 1, 1 Мар 24 12:41 /dev/mem

dmidecode
# dmidecode 2.11
/dev/mem: Operation not permitted


Что с ним не так?

★★★

Ответ на: комментарий от anonymous

strace dmidecode

execve(«/usr/sbin/dmidecode», [«dmidecode»], [/* 54 vars */]) = 0
brk(0) = 0x613000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbd13911000
access(«/etc/ld.so.preload», R_OK) = -1 ENOENT (No such file or directory)
open(«/etc/ld.so.cache», O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=165521, ...}) = 0
mmap(NULL, 165521, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fbd138e8000
close(3) = 0
open(«/lib64/libc.so.6», O_RDONLY) = 3
read(3, «\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\355\241\2460\0\0\0»..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1467048, ...}) = 0
mmap(0x30a6a00000, 3571304, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x30a6a00000
fadvise64(3, 0, 3571304, POSIX_FADV_WILLNEED) = 0
mprotect(0x30a6b5f000, 2093056, PROT_NONE) = 0
mmap(0x30a6d5e000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15e000) = 0x30a6d5e000
mmap(0x30a6d63000, 20072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x30a6d63000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbd138e7000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbd138e6000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbd138e5000
arch_prctl(ARCH_SET_FS, 0x7fbd138e6700) = 0
mprotect(0x611000, 4096, PROT_READ) = 0
mprotect(0x30a6d5e000, 16384, PROT_READ) = 0
mprotect(0x30a681e000, 4096, PROT_READ) = 0
munmap(0x7fbd138e8000, 165521) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbd13910000
write(1, «# dmidecode 2.11\n», 17# dmidecode 2.11
) = 17
brk(0) = 0x613000
brk(0x634000) = 0x634000
open(«/sys/firmware/efi/systab», O_RDONLY) = -1 ENOENT (No such file or directory)
open(«/proc/efi/systab», O_RDONLY) = -1 ENOENT (No such file or directory)
open(«/dev/mem», O_RDONLY) = -1 EPERM (Operation not permitted)
dup(2) = 3
fcntl(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbd1390f000
lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(3, «/dev/mem: Operation not permitte»..., 34/dev/mem: Operation not permitted
) = 34
close(3) = 0
munmap(0x7fbd1390f000, 4096) = 0
exit_group(1) = ?
+++ exited with 1 +++

onon ★★★
() автор топика
Ответ на: комментарий от onon

Как бы предполагалось, что ты сам разберёшься с элементарными вещами.

write(3, «/dev/mem: Operation not permitte»..., 34/dev/mem: Operation not permitted
write

Что-то ещё не понятно?

anonymous
()
Ответ на: комментарий от anonymous

Что-то ещё не понятно?

Мне непонятно, можно объяснить? dmidecode - SGID-бинарь, группе разрешено чтение из /dev/mem. Почему permission denied?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Дык оно же write не может, разве нет? Только я не знаю, зачем ему запись туда.

anonymous
()
Ответ на: комментарий от anonymous

Нет, вряд ли дело в MAC, потому что у меня тоже так же не срабатывает.

anonymous
()
Ответ на: комментарий от tailgunner

А, и это, если есть sgid на бинарнике, то operation not permitted, а если нету — access denied. То есть препятствие где-то дальше прав доступа.

anonymous
()
Ответ на: комментарий от tailgunner

Попробовал перезагрузиться с выключенным apparmor — то же самое. Скорее какой-нибудь патч на ядро. Более разумных предположений у меня нет. Наугад потыкал опции ядра, вроде ничего похожего, разве что CONFIG_STRICT_DEVMEM делает не только или не совсем то, что пишут в интернетах. Но скорее патч.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.