В любой нормальной системе, если вы не настроили chroot с их собственным / dev
, все файлы устройств находятся в папке / dev
. Только root может создавать файлы устройств, поэтому вам не нужно беспокоиться о том, что злоумышленники создают файлы устройств где-либо еще.
Итак, все, что вам нужно сделать, это найти файлы в папке / dev
, которые относятся к тому же устройству, что и интересующее вас.
ls -lR /dev |awk '/^c/ && $5 == "81," && $6 == "0"'
Вероятно, это покажет только / dev / video0
. Обычно для каждого устройства существует отдельный файл устройства и, возможно, есть дополнительные символические ссылки на него.
Таким образом, практический ответ на ваш вопрос является простым. Просто проверьте, в каких процессах открыт файл устройства.
fuser /dev/video0
Если вы хотите отслеживать доступы (т. Е. Перехватывать процессы, которые могут открывать файл устройства в любое время), используйте один из методов мониторинга доступа к файлам Linux для файла (ов) устройства: настройте наблюдение (и проверьте, какие процессы уже открыли файл (ы) устройства)
inotifywait -m -e open,close /dev/video0 &
sleep 1; fuser /dev/video0 # check for processes that have already opened the device
или настройте правило аудита, которое будет регистрировать доступы в системных журналах (обычно /var/log/audit/audit.log
)
auditctl -w path=/dev/video0 &
sleep 1; fuser /dev/video0 # check for processes that have already opened the device
Это не контролируется компоновщиком, это контролируется ядром. Вы можете отключить ASLR, используяrandomize_va_space
:
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
Чтобы повторно включить его:
echo 2 | sudo tee /proc/sys/kernel/randomize_va_space
Вы также можете отключить его для одного процесса, используя setarch
, чтобы применить соответствующую личность:
setarch $(uname -m) -R command
запустит команду без ASLR.