Zum Inhalt springen

(PERL) Alte Berechtigung auslesen, ändern und wieder setzen (chmod)


Gast JulianB

Empfohlene Beiträge

Hi,

ich möchte von bestimmten Dateien die Berechtigungen:

1. Auslesen & in Variable speichern

2. Berechtigung auf Schreibbar ändern

3. Alte gespeicherte Berechtigung wieder zurücksetzen

Das gehe ich bisher so an:


# Dateiattribute auslesen

my $stat = (stat($filename))[2];


# Als Oktalzahl interpretieren

my $oldstat = sprintf("%04o", $stat & 07777);


# Vollzugriff auf Datei setzen

chmod(0666, $filename);


&do_something();


# Alte Rechte zurücksetzen

chmod($oldstat, $filename);

Funktioniert soweit bestens _außer_ das Zurücksetzen der Berechtigungen am Ende. Die Dateien bleiben bei jedem Durchgang schreibbar, was sie nicht sollen. Da ich aber nie genau weiß welche Berechtigungen welche Datei hat, wollte ich es so lösen das ich die alten Berechtigungen oktal in $oldstat speichere und diese am Ende wieder "zurücksetze". Wo ist mein Fehler?

Vielen Dank für eure Hilfe,

LG JulianB

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

chmod mit oct als Parameter. Siehe hier.


my $perm="0666";


# Dateiattribute auslesen

my $stat = (stat($filename))[2];


# Als Oktalzahl interpretieren

my $oldstat = sprintf("%04o", $stat & 07777);


# Vollzugriff auf Datei setzen

chmod oct($perm), $filename;


&do_something();


# Alte Rechte zurücksetzen

chmod oct($oldstat), $filename;

Kurz zur Erklärung:

# Alte Rechte zurücksetzen

chmod($oldstat, $filename);

Da wird $oldstat nicht als Oktalzahl interpretiert.

# Vollzugriff auf Datei setzen

chmod(0666, $filename);

Hier schon, deshalb klappts.

ciao,

vic

Bearbeitet von bigvic
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...