[buug-l] TeXLive 7 und Debian Woody

Alexander Stielau aleks@buug.de
Mon, 14 Oct 2002 21:00:42 +0200


Am Mon, Oct 14, 2002 at 07:19:59PM +0200 schrieb Michael Wiedmann:

> Das ganze hat eigentlich nichts mit TeXLive zu tun, sondern mit der Tatsache,
> dass ein in den PATH aufgenommenes Verzeichnis (via /etc/profile) zwar
> für 'Normalbenutzer' wirksam wird, jedoch _nicht_ für den gleichen Benutzer,
> sofern er via 'sudo' agiert.
> 
> > In der man-page zu sudo finde ich immerhin den Satz:
> > "Note, however, that the actual PATH environment
> > variable is _not_ modified and is passed unchanged
> > to the program that sudo executes."
> 
> Das habe ich durchaus auch gelesen und bin umso erstaunter das beschriebene 
> Verhalten zu beobachten!

Hmm. 

panic:~$ id
uid=2023(aleks) gid=2023(aleks)
Gruppen=2023(aleks),6(disk),20(dialout),24(cdrom),25(floppy),29(audio),40(src),44(video),50(staff)
panic:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
panic:~$ PATH=$PATH:/usr/local/games
panic:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/local/games
panic:~$ sudo echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/local/games

Das entspricht dem oben, aaaber:

panic:~$ sudo route -n
Kernel IP Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use
Iface
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0
eth0
172.16.45.0     0.0.0.0         255.255.255.0   U     0      0        0
vmnet1
172.16.88.0     0.0.0.0         255.255.255.0   U     0      0        0
vmnet8
0.0.0.0         192.168.2.1     0.0.0.0         UG    0      0        0
eth0
panic:~$ which route
panic:~$ sudo which route
/sbin/route

Also wird da doch irgendwie am Pfad gedreht, weil /sbin eben nicht im
Pfad des normalen Users ist, und er das nach den obigen Versuchen auch
nicht per sudo sehen dürfte, weil sich PATH *nicht* ändert.

Aus man sudoers:

path_info   
Normally, sudo will tell the user when a command could not be found 
in their PATH environment variable.  Some sites may wish to disable 
this as it could be used to gather information on the location of 
executables that the normal user does not have access to.  The 
disadvantage is that if the executable is simply not in the user's 
PATH, sudo will tell the user that they are not allowed to run it, 
which can be confusing.  This flag is off by default. 

Argl. :-)

Witzig ist auch das folgende:

panic:~$ env > /tmp/test
panic:~$ ls -la /tmp/test 
-rw-r--r--    1 aleks    aleks        1123 14. Okt 20:54 /tmp/test
panic:~$ sudo env > /tmp/test1
panic:~$ ls -la /tmp/test1
-rw-r--r--    1 aleks    aleks        1198 14. Okt 20:54 /tmp/test1
panic:~$ diff /tmp/test /tmp/test1 | wc -l
     20

Und das ist unteranderem:

-PATH=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/local/games
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

Ich habe nicht genau verstanden, was Du willst. Aber eventuell ist es
für deinen Zweck ausreichend, dem User, der ein bestimmtes Programm
ausführen können soll, eine entsprechende Gruppe in sudoers anzulegen,
und diese mit exakt einem Kommando zu versehen.

Oder einen User dafür anlegen, der das gewünschte Programm als Shell 
eingetragen bekommt, und auf diesen sudo-en.

Öhm, eigentlich wollte ich sagen: Ich verstehe es nicht, auch wenn Dir
das nicht weiterhilft - trotzdem interessant genug, um zu antworten,
sorry.

Aleks