Bash: permissão negada para gravação de arquivo

6

Eu segui este guia tutorial em "Como criar arquivos Proc Linux no programa C usando LKM ".

Eu fiz o meu módulo com sucesso e o carreguei. Agora eu quero fazer um eco no meu arquivo proc para ter certeza de que o método seja chamado e que deveria 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.

    
por Sam 29.09.2012 / 00:13

1 resposta

13

But it says permission is denied!

Ele provavelmente diz isso porque você definiu permissões restritivas ao chamar create_proc_entry() . (0644 se traduz em "u = rw, go = r", que apenas dá permissões de gravação ao proprietário, cujo padrão é root.)

I put "sudo" in front of it - same message.

Redirecionamentos como > ou | são executados pelo shell em execução, antes ele invoca sudo .

Você tem que usar sudo sh -c "echo blah > /proc/blah" ou executar um shell de root com sudo -s .

I am the only user - this is my own personal machine!

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 o recurso cap_dac_override - mas o método irá causar problemas mais cedo ou mais tarde.

    
por 29.09.2012 / 00:19