Marc Santhoff wrote:
> ich möchte auf einem Rechner den Benutzern erlauben, eigene Bibliotheken
> zu laden, also nicht nur Programme zu übersetzen und laufen zu lassen
> sondern auch lib's.
Das ist per Default jedem Benutzer erlaubt, und er kann es
auf verschiedene Weise tun:
1. Bereits beim Compilieren + Linken eines Programms kann
ein Benutzer einen (oder mehrere) Library-Pfade fest-
legen. Dies geht mit der Option -rpath des Linkers
ld(1), z.B.:
ld -rpath /home/marc/lib -lmeinelib -o foo foo.o
Verwendet man cc(1) bzw. gcc(1) zum Linken, kann man
die ld(1)-Option mit der Option -Xlinker übergeben,
siehe die Manpage.
2. Man kann das Binary einfach statisch linken (was aller-
dings zu Portabilitäts- und Effizienzproblemen führen
kann, wenn man nicht aufpaßt).
3. Wenn man bereits ein fertiges Binary hat und es nicht
neu linken will, kann man mit der Umgebungsvariable
LD_LIBRARY_PATH einen Pfad festlegen, wo Libraries
gesucht werden sollen.
4. Wenn man eine bestimmte Library mit einem Binary laden
möchte, kann man das per LD_PRELOAD. (Vorsicht: Damit
werden Symbole in anderen Libraries -- inkl. libc --
überschrieben. Das kann man zu seinem Vorteil nutzen,
es kann aber auch unbeabsichtigte Effekte haben.)
> Die sollen dann aber nur für diesen Benutzer
> installiert werden können (unter $HOME/local/ oder so).
Üblicher wäre wohl $HOME/lib.
Du kannst allerdings nicht so ohne weiteres verhindern,
daß dann auch andere Benutzer diese Libraries verwenden
können, es sei denn, der Besitzer macht sie nicht lesbar
für andere (per chmod oder umask). Du kannst auch nicht
verhindern, daß ein Benutzer Libraries nach /tmp oder
/var/tmp installiert, um sie anderen Benutzern zugänglich
zu machen (es sei denn, Du richtest ein Per-User-/tmp
ein).
Gruß
Olli
-- Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd Any opinions expressed in this message may be personal to the author and may not necessarily reflect the opinions of secnetix in any way. I suggested holding a "Python Object Oriented Programming Seminar", but the acronym was unpopular. -- Joseph Strout To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Fri 11 Aug 2006 - 13:18:58 CEST