Thread perl auf Mac OS zerschossen, permissions (6 answers)
Opened by Stefan at 2019-12-13 18:14

Linuxer
 2019-12-13 19:44
#190982 #190982
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Hi,

vorab ich habe keine Erfahrungen mit Mac OS; das was ich schreibe, bezieht sich primär auf ein Linux System.
Aber das lässt sich evtl. übertragen.

Mir scheinen die Berechtigungen da restriktiver zu sein. Ich kenne es eher so, dass die System-Perl-Installation dem root-Benutzer gehört und nur dieser dort schreiben darf; aber alle anderen dürfen das aber lesen und ausführen.

Das scheint bei Dir ja so nicht der Fall zu sein.
Da drängt es sich auf, dass es explizit daran hängt, wem die Datei wirklich gehört.


Das folgende ist blind ins Blaue fabuliert; ich kenne Mac OS und Dein System nicht; von daher ist nur ein Gedankenspiel und keine Handlungsanweisung. Aber es gibt Dir vielleicht Ideen, wo Du hinlangen könntest.

Alle Versuche auf eigene Gefahr!

Schau Dir an, wo Deine Perl-Installation liegt. Ich tippe mal auf /usr/lib/perl5 .
Ich gehe weiter davon aus, dass Dein SuperUser "root" heisst. Ggfs. musst Du das auf Deine Umgebung anpassen.
Auch was die Kommandos angeht, musst Du das evtl. anpassen.

Gedanke:

Schau die Berechtigung der Datei /usr/lib/perl5/Config.pm an

Code: (dl )
1
2
$ ls /usr/lib/perl5/Config.pm
-rw-r--r--. 1 root root 2.7K Mar 22 2017 /usr/lib/perl5/Config.pm


Wenn das funktioniert, lass Dir anzeigen, wem die Dateien eigentlich gehören würden:

Code: (dl )
$ find /usr/lib/perl5 ! -user root


Damit solltest Du alle Dateien in dem Verzeichnis sehen, die nicht root gehören. Das dürften die sein, die mit deinem "sudo cpan" Aufruf verändert wurden. Ich habe hier keine Ausgabe bekommen; es gehört alles root; was hier korrekt ist

Dann suche alle Dateien, die jetzt root gehören:
Code: (dl )
$ find /usr/lib/perl5 -user root

Ausgabe ist hier eine lange Liste, weil alles korrekterweise root gehört.


Wenn es bei Dir nur wenige Dateien sind, kannst Du sie per Hand dem korrekten Benutzer zuweisen:
Code: (dl )
$ chown $username:$groupname /path/to/directory/or/file


Oder Du lässt es automatisiert machen:
Code: (dl )
find /usr/lib/perl5 -user root -exec chown $username:$groupname {} +


Bei den letzten beiden sind $username und $groupname durch die Werte zu ersetzen, die Du zuvor gesehen hast, für alle Dateien, die nicht root gehören.


Wie schon geschrieben, keine Ahnung, ob die Syntax so für Dich passend ist.

Viel Glück. Ich übernehme keinerlei Gewähr. ;-)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread perl auf Mac OS zerschossen, permissions