On Wednesday 02 April 2003 23:45, Oswald Buddenhagen wrote: > On Wed, Apr 02, 2003 at 08:29:16PM +0000, David Pye wrote: > > However, I'm not sure how you > > can find out which one is currently being displayed. > > > oh, right, i forgot that part. fgconsole. but this works only as root, > so you need to define a sudo rule if a regular user should be able to > execute it. alternatively you can make it suid root, but somehow i doubt > that this is a good idea.
Great one peace more of the puzzle. Here fgconsole works also for normal user: [EMAIL PROTECTED](0) ~ $ fgconsole 7 [EMAIL PROTECTED](2) ~ $ whoami ach fgconsole return error code 2. Strange but it does the same for root. Looks like Xserver does not change the tty<n>: (vt7,8 are kdm managed displays, vt12 is used by X -query ...): [EMAIL PROTECTED](0) ~ $ l -L /dev/tty{[1-9],1{0,1,2}} crw------- 1 root root 4, 1 Mar 31 10:51 /dev/tty1 crw-rw-rw- 1 root tty 4, 10 Jan 1 1970 /dev/tty10 crw-rw-rw- 1 root tty 4, 11 Jan 1 1970 /dev/tty11 crw-rw-rw- 1 root root 4, 12 Jan 1 1970 /dev/tty12 crw------- 1 root root 4, 2 Mar 17 17:20 /dev/tty2 crw------- 1 root root 4, 3 Mar 17 17:20 /dev/tty3 crw------- 1 root root 4, 4 Mar 17 17:20 /dev/tty4 crw------- 1 root root 4, 5 Mar 17 17:20 /dev/tty5 crw------- 1 root root 4, 6 Mar 17 17:20 /dev/tty6 crw-rw-rw- 1 root root 4, 7 Jan 1 1970 /dev/tty7 crw-rw-rw- 1 root root 4, 8 Jan 1 1970 /dev/tty8 crw-rw-rw- 1 root root 4, 9 Jan 1 1970 /dev/tty9 It this a (security) bug? I've tried echo some garbage > /dev/tty8 but :1 (on vt8) is still working. Back on topic ;) Missing is now vt# -> display#. I hacked this little script. Anyone care to test? Works here(tm). (Better methods that work with {k,g,w,x}dm etc welcome.) #!/bin/bash vtnum=`fgconsole` match=`grep -l " using VT number $vtnum$" /var/log/XFree86.*.log` if [ "$match" ]; then display="${match#/var/log/XFree86.}" display="${display%.log}" user="`who | grep " :$display " | awk '{print $1}'`" echo display=:$display echo user=$user # groups $user | grep -q camera && exec su - $user "DISPLAY="$display" exec digikam exit 0 else exit 1 fi Thx for all the help, Achim > > greetings > > > -- > Hi! I'm a .signature virus! Copy me into your ~/.signature, please! > -- > Chaos, panic, and disorder - my work here is done. -- To me vi is Anti-Virus software: Signature not copied ;)