/usr/src nicht mehr für Gruppe src?

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

/usr/src nicht mehr für Gruppe src?

Beitrag von hupfdule » 19.09.2011 16:52:19

Hallo,

in der Vergangenheit gehörte das /usr/src Verzeichnis der Gruppe src, so dass jeder, der dieser Gruppe angehörte, darin Schreibrechte hatte. Auf einem frisch installierten Squeeze existiert diese Gruppe auch noch, jedoch gehört /usr/src ausschließlich root:

Code: Alles auswählen

#ls -lhd /usr/src
drwxr-xr-x   2 root root  4,0K 19. Sep 16:42 src
Was ist der Grund hierfür? Wie ist der aktuelle "Debian Way" zum Kompilieren von Kerneln und anderen Quellen? Ein

Code: Alles auswählen

apt-get install linux-source-2.6.32
schreibt die Quellen ja weiterhin nach /usr/src.

Benutzeravatar
CH777
Beiträge: 1466
Registriert: 27.05.2008 16:37:17

Re: /usr/src nicht mehr für Gruppe src?

Beitrag von CH777 » 19.09.2011 17:18:39

Aus Gründen, an die ich mich nicht mehr genau erinnern kann (und die ich persönlich stets ignoriert habe) wird dringend empfohlen, den Kernel nicht in /usr/src zu kompilieren, sondern in ein Verzeichnis des aktuellen Benutzers zu kopieren.

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Re: /usr/src nicht mehr für Gruppe src?

Beitrag von cosmac » 19.09.2011 20:38:02

hi,
/usr/share/doc/base-files/changelog.gz hat geschrieben:base-files (5.2) unstable; urgency=low
(...)
* Changed default /usr/src to be root:root and 755. Closes: #573701.
The old permissions were of little benefit, and the user can still
change this after installing a new system anyway.
(...)
-- Santiago Vila <sanvila@debian.org> Sun, 04 Apr 2010 13:22:04 +0200
In dem Bug geht's zwar genaugenommen um mehr als kompilieren, aber das Fazit passt zum allgemeinen Trend: der /usr-Baum gehört der Distribution, Benutzer raus! ;)
Manoj Srivastava hat geschrieben:Actually, I would say that building packages in the /usr/src hierarchy is not a supported use case.
und dann noch das:
Filesystem Hierarchy Standard hat geschrieben:Chapter 4. The /usr Hierarchy
Purpose
/usr is the second major section of the filesystem. /usr is shareable, read-only data. That means that /usr should be shareable between various FHS-compliant hosts and must not be written to. Any information that is host-specific or varies with time is stored elsewhere.
unter den Umständen bringt es nicht viel, wenn /usr/src der Gruppe src gehört.

Dass Debian die (z.B.) Kernel-Source-Pakete unter /usr/src installiert, ist kein Widerspruch. Es wird ja nur linux-source-xxx.bz2 dorthin kopiert und nicht entpackt -- eine ganz normale Installation. Der Benutzer kann sich die Quellen dann in sein eigenes Verzeichnis entpacken.

Aber du hast schon Recht: früher war alles viel besser (oder wenigstens einfacher)...

Edit: noch'n Link mit einer interessanten Bemerkung zu /usr/src
Beware of programmers who carry screwdrivers.

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Re: /usr/src nicht mehr für Gruppe src?

Beitrag von hupfdule » 20.09.2011 11:30:33

cosmac hat geschrieben:In dem Bug geht's zwar genaugenommen um mehr als kompilieren, aber das Fazit passt zum allgemeinen Trend: der /usr-Baum gehört der Distribution, Benutzer raus! ;)
Manoj Srivastava hat geschrieben:Actually, I would say that building packages in the /usr/src hierarchy is not a supported use case.
und dann noch das:
Filesystem Hierarchy Standard hat geschrieben:Chapter 4. The /usr Hierarchy
Purpose
/usr is the second major section of the filesystem. /usr is shareable, read-only data. That means that /usr should be shareable between various FHS-compliant hosts and must not be written to. Any information that is host-specific or varies with time is stored elsewhere.
unter den Umständen bringt es nicht viel, wenn /usr/src der Gruppe src gehört.
Das klingt doch schon nach einer etwas klareren Aussage. Eine Suche im Internet hat mich nämlich nicht zu klaren Aussagen geführt. :-) Dann werd ich mir hierfür ein Verzeichnis in meinem Home einrichten.
Edit: noch'n Link mit einer interessanten Bemerkung zu /usr/src
Dort steht es ja wieder genau gegenteilig. :-)
Trotzdem, die Begründung, dass /usr ausschließlich für von der Distribution verwaltete Dateien verwendet werden soll, finde ich sehr vernünftig.

Vielen Dank für die Infos!

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Re: /usr/src nicht mehr für Gruppe src?

Beitrag von hupfdule » 25.09.2011 11:34:09

So ganz durchdacht scheint das ganze jedoch nicht zu sein.
In /lib/modules/<kernel-version> befinden sich zwei Links auf die Kernel-Quellen.
$ ls -lh /lib/modules/2.6.32-mykernel
total 2,5M
lrwxrwxrwx 1 root root 35 23. Sep 17:34 build -> /home/myuser/src/linux-source-2.6.32
drwxr-xr-x 10 root root 4,0K 23. Sep 17:34 kernel
-rw-r--r-- 1 root root 577K 23. Sep 17:34 modules.alias
-rw-r--r-- 1 root root 559K 23. Sep 17:34 modules.alias.bin
-rw-r--r-- 1 root root 277K 23. Sep 17:34 modules.dep
-rw-r--r-- 1 root root 388K 23. Sep 17:34 modules.dep.bin
-rw-r--r-- 1 root root 52 23. Sep 17:34 modules.devname
-rw-r--r-- 1 root root 92K 23. Sep 17:26 modules.order
-rw-r--r-- 1 root root 131 23. Sep 17:34 modules.softdep
-rw-r--r-- 1 root root 229K 23. Sep 17:34 modules.symbols
-rw-r--r-- 1 root root 296K 23. Sep 17:34 modules.symbols.bin
lrwxrwxrwx 1 root root 35 23. Sep 17:34 source -> /home/myuser/src/linux-source-2.6.32
Und diese zeigen nun in das Homeverzeichnis meines Benutzers. So ganz ideal finde ich diese Lösung nicht...
Zumal auch Debianmodule-assistant als User ausgeführt werden kann, wenn der User in der Gruppe src ist. Und auch da rummst es natürlich wieder, weil /usr/src standardmäßig keine Schreibrechte für diese Gruppe hat.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: /usr/src nicht mehr für Gruppe src?

Beitrag von rendegast » 25.09.2011 14:26:05

$ ls -lh /lib/modules/2.6.32-mykernel
rwxrwxrwx 1 root root 35 23. Sep 17:34 build -> /home/myuser/src/linux-source-2.6.32
lrwxrwxrwx 1 root root 35 23. Sep 17:34 source -> /home/myuser/src/linux-source-2.6.32
Und diese zeigen nun in das Homeverzeichnis meines Benutzers.
Das ist natürlich blöd, aber Du könntest dann auch direkt ein zusätzliches Modul bauen.
Oder machst das mit einem dedizierten Benutzer /home/kernelbauer.

Wenn Du beim Bauen auch das headers-Paket erstellt hast,
müssen eventuell auch nach dessen Installation die beiden Links dennoch manuell angepaßt werden.

Weder kernel-package noch das neue deb-Target des Kernels haben das richtig hinbekommen.
Ich habe mir dafür ein hinreichendes /etc/kernel/(headers-)postinst.d/-Skript geschrieben
("Modele eigene Kernel, lasse debian-Kernel (-686|-686-bigmem|-686-pae) in Ruhe").
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten