[devel] udevless информация о блочных устройствах

Leonid Krivoshein klark.devel на gmail.com
Вс Июн 16 00:40:46 MSK 2019


Сам же себе и отвечу:


15.06.2019 19:53, Leonid Krivoshein пишет:
> [...] Раньше я так и делал, получая часть информации через sysfs, а 
> другую часть -- через blkid, blockdev, итп, на что требуется root. 
> Поэтому и озадачился сабжем. Хотелось бы написать основной код, 
> работающий без рутовых привилегий. Но вопрос в том, возможно ли это на 
> системах без udev.
>

Никто эти файлы напрямую не парсит. В сишном коде используются:

1) libudev (при HAVE_LIBUDEV), в основном:
udev_device_new_from_subsystem_sysname() и udev_device_get_property_value(),

2) а в качестве fallback -- libblkid, в основном:
blkid_new_probe_from_filename() и blkid_probe_lookup_value().

При этом, для второго варианта сначала проверяется: getuid() == 0.

Для меня это значит два варианта решения: забить на тех, "кто ходит без 
костылей" (не использует udev), ибо их единицы, либо написать для них 
такой код, который будет выполняться с привилегиями root.


-- 
Best regards,
Leonid Krivoshein.



Подробная информация о списке рассылки Devel