[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: