Я следил за этимучебное руководствона тему «Как создать файлы Linux Proc в программе C с использованием LKM».
Я успешно создал свой модуль и загрузил его. Теперь я хочу обратиться к своему файлу proc, чтобы убедиться, что вызывается тот метод, который должен быть вызван.
Я пытался:
$ echo "hello" > /proc/procEntry123 # But it says permission is denied!
$ sudo echo "hello" > /proc/procEntry123 # Same error message.
Как мне повысить привилегии для echo к этому файлу? Я единственный пользователь и администратор в этой системе.
решение1
Но там написано, что в разрешении отказано!
Вероятно, так написано, потому что вы установили ограничительные разрешения при вызове create_proc_entry()
. (0644 переводится как «u=rw,go=r», что дает права на запись только владельцу, который по умолчанию является root.)
Я поставил перед ним «sudo» — то же самое сообщение.
Перенаправления, такие как >
или |
выполняются запущенной оболочкой,доон вызывает sudo
.
Вам придется либо использовать sudo sh -c "echo blah > /proc/blah"
, либо запустить оболочку root с sudo -s
.
Я единственный пользователь - это моя личная машина!
В Linux это не имеет значения. Разрешения на доступ к файлам будут применяться независимо от того, кто использует компьютер.
Если вы этого не хотите, войдите в систему как пользователь root или используйте , pam_cap
чтобы предоставить себе такую cap_dac_override
возможность – но любой методволярано или поздно приведут к проблемам.