Hi, > The "current" permissions of /var/run/screen would be useless, because I > have changed it manually to the correct permissions already; otherwise I > can't run screen at all, and I use it every day and I only reboot this > machine for equipment upgrades or kernel upgrades. > > The current permissions of /usr/bin/screen is as follows: > > -rwxr-sr-x 1 root utmp 303808 2007-09-26 17:57 /usr/bin/screen
this is the code in question: [screen.c:1014] n = (eff_uid == 0 && (real_uid || (st.st_mode & 0775) != 0775)) ? 0755 : (eff_gid == (int)st.st_gid && eff_gid != real_gid) ? 0775 : 0777; if (((int)st.st_mode & 0777) != n) Panic(0, "Directory '%s' must have mode %03o.", SockDir, n); If screen insists on mode 0777 for the fifo socket directory, we only have two possibilities: 1) eff_gid != st.st_gid Could mean that either /var/run/screen is not group utmp, or the setgid bit of the binary is being ignored (is the underlying filesystem mounted 'nosuid'?). 2) eff_gid == real_gid Again setgid not working, or the calling user actually has utmp as his primary group. Could you check these? If all looks ok, could you send me an strace of a screen invocation? The last 100 lines before the error message should be enough if you don't want to append the whole thing. (Note that you'll have to do that as root using 'strace -u', otherwise setgid won't work.) Regards, Jan
signature.asc
Description: Digital signature