Eu segui issoguia tutorialem "Como criar arquivos Linux Proc em programa C usando LKM".
Eu criei meu módulo com sucesso e carreguei-o. Agora quero fazer eco em meu arquivo proc para ter certeza de que o método que deveria ser chamado será chamado.
Eu tentei:
$ echo "hello" > /proc/procEntry123 # But it says permission is denied!
$ sudo echo "hello" > /proc/procEntry123 # Same error message.
Como posso elevar privilégios para ecoar neste arquivo? Eu sou o único usuário e administrador deste sistema.
Responder1
Mas diz que a permissão foi negada!
Provavelmente é assim porque você define permissões restritivas ao chamar create_proc_entry()
. (0644 se traduz em "u=rw,go=r", que concede apenas permissões de gravação ao proprietário, cujo padrão é root.)
Coloquei "sudo" na frente dele - mesma mensagem.
Redirecionamentos como >
ou |
são executados pelo shell em execução,antesele invoca sudo
.
Você deve usar sudo sh -c "echo blah > /proc/blah"
ou executar um shell root com sudo -s
.
Eu sou o único usuário - esta é minha máquina pessoal!
Isso não importa no Linux. As permissões de arquivo serão aplicadas independentemente de quem usa o computador.
Se você não quiser isso, faça login como root ou use pam_cap
para obter a cap_dac_override
capacidade - mas qualquer um dos métodosvaicausar problemas mais cedo ou mais tarde.