[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