thats because cat tries to open the noteid file of your rc shell (running as none). and not the noteid file of its own process (cat).
static void
nonone(Proc *p)
{
if(p == up)
return;
if(strcmp(up->user, "none") != 0)
return;
if(iseve())
return;
error(Eperm);
}
nonone() is always ok for p == up. in your case, p != up
so it fails (as expected).
--
cinap
