Bug#292441: #292441: Non-root startx cannot move log file
Incidently, I got a similar behaviour with current etch (Xorg
6.9.0.dfsg.1-6), but the problem is not so simple:
"X :3" does work (1st file in below diff)
"X :3 xorg.conf.dri" exhibits the problem (2nd file)
When running under "strace -u" and sed'ing the log to get rid of PID
diffs, here is what I get. It looks like "X" is dropping root privs
before exec'ing Xorg.
Could it be possible that the X wrapper does not recognize -config as
a "safe flag" of some sort, and decide to wrop privs because of this ?
Unfortuantely, there does not appear to be enough doc about the
wrapper, that would document such a behaviour.
@@ -43,94 +43,102 @@
14748 mkdir("/tmp/.X11-unix", 01777) = -1 EEXIST (File exists)
14748 umask(022) = 0
14748 lstat64("/tmp/.X11-unix", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=1024, ...}) = 0
-14748 stat64("/dev/dri", 0xbfd7fc5c) = -1 ENOENT (No such file or directory)
-14748 setresuid32(-1, 0, -1) = 0
+14748 stat64("/dev/dri", 0xbfcc940c) = -1 ENOENT (No such file or directory)
+14748 getuid32() = 1000
+14748 setuid32(1000) = 0
+14748 setresuid32(-1, 0, -1) = -1 EPERM (Operation not permitted)
14748 getpriority(PRIO_PROCESS, 0) = 20
-14748 setpriority(PRIO_PROCESS, 0, -10) = 0
-14748 getpriority(PRIO_PROCESS, 0) = 30
+14748 setpriority(PRIO_PROCESS, 0, -10) = -1 EACCES (Permission denied)
+14748 dup(2) = 3
+14748 fcntl64(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
+14748 fstat64(3, {st_mode=S_IFCHR|0600, st_rdev=makedev(4, 1), ...}) = 0
+14748 ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
+14748 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fb4000
+14748 _llseek(3, 0, 0xbfcc8f08, SEEK_CUR) = -1 ESPIPE (Illegal seek)
+14748 write(3, "X: warning; nice() of process fa"..., 56) = 56
+14748 close(3) = 0
+14748 munmap(0xb7fb4000, 4096) = 0
+14748 write(2, "X: warning; process set to prior"..., 73) = 73
14748 chdir("/etc/X11") = 0
-14748 execve("/usr/bin/X11/Xorg", ["X", ":3"], [/* 14 vars */]) = 0
+14748 execve("/usr/bin/X11/Xorg", ["X", ":3", "-config", "xorg.conf.dri"], [/* 14 vars */]) = 0
14748 uname({sys="Linux", node="gandelf", ...}) = 0
14748 brk(0) = 0x8226000
--
Yann Dirson <ydirson@altern.org> |
Debian-related: <dirson@debian.org> | Support Debian GNU/Linux:
| Freedom, Power, Stability, Gratis
http://ydirson.free.fr/ | Check <http://www.debian.org/>
Reply to: