出于某种原因,我无法写入我系统上的其他用户.
[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.
还需要启用/纠正其他什么工作?
解决方法
测试strace write和strace mesg显示他们识别你的tty的方式略有不同.
write将首先执行readlink(“/ proc / self / fd / 0”,…)以查找tty的名称,然后在生成的路径上执行stat调用.
另一方面,mesg将调用fstat(1,…),它会跳过使用readlink的步骤而不依赖于/ proc文件系统.
请注意,它们还会查看不同的文件描述符0 vs 1.通常,交互式shell将具有引用相同tty的文件描述符0,1和2.如果你以某种方式使你的shell运行0和1引用不同的东西,例如,如果你重定向其中一个,这可以解释mesg和write的输出之间的差异.
如果文件描述符都引用相同的tty,则差异的另一个可能原因可能是您的/ proc安装程序没有按预期运行或者您的tty的字符设备inode已被替换.