Não é possível gravar para outros usuários "você tem permissão de gravação desativada"

5

Por algum motivo, não consigo escrever para outros usuários no meu sistema.

[root@hostname ~]# write
write: you have write permission turned off.
[root@hostname ~]# mesg y
[root@hostname ~]# mesg
is y
[root@hostname ~]# write
write: you have write permission turned off.

O que mais precisa ser ativado / corrigido para que isso funcione?

    
por Steve Robbins 01.10.2013 / 18:38

2 respostas

1

O teste de strace write e strace mesg revela uma pequena diferença em como eles identificam seu tty.

write primeiro fará readlink("/proc/self/fd/0", ...) para encontrar o nome do tty e, em seguida, fará uma chamada stat no caminho resultante.

mesg , por outro lado, chamará fstat(1, ...) , que pula a etapa de usar readlink e não depende do sistema de arquivos /proc .

Observe que eles também analisam diferentes descritores de arquivos 0 vs 1 . Normalmente, um shell interativo terá descritores de arquivo 0 , 1 e 2 todos referenciando o mesmo tty. Se, de alguma forma, você tiver executado o shell com 0 e 1 referenciando algo diferente, por exemplo, se você redirecionou um deles, isso poderia explicar a discrepância entre a saída de mesg e write .

Se os descritores de arquivo referenciam o mesmo tty, outro motivo possível para a discrepância pode ser que seu /proc mount não está se comportando como esperado ou o inode do dispositivo de caractere para o seu tty foi substituído.

    
por 26.11.2017 / 01:29
0

Quando executado como root com mesg desativado (retornando n ), recebo o mesmo erro que você. Executar o comando mesg y me permite executar a gravação. Sendo executado como root , posso escrever para usuários que têm mesg desativado, o que não posso fazer como não raiz.

Existem vários utilitários que fornecem a funcionalidade write . Todos eles precisarão ser capazes de gravar nos terminais. No entanto, como você está executando como root , as permissões não devem ser um problema.

    
por 07.09.2016 / 06:04