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

Beitrag lesen

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?

mfg, JB