Thread Ablagestruktur via Perlskript erzeugen: Wie sieht das mit den UNIX-Rechten aus? (3 answers)
Opened by Ronnie at 2003-09-29 12:04

Ronnie
 2003-09-29 12:04
#58196 #58196
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich möchte eine Ablagestruktur mit einem Perlskript erzeugen das via CGI und sudo aufgerufen wird. Es soll ab einem Basisverzeichniss eine Unterstruktur erstellen. Gibt es etwas wie das Sticky-bit(?!) für das Skript, so dass alle erzeugten Verzeichnisse mit dieser Gruppe versehen werden? Ich kann es im Moment leider nicht ausprobieren da ich auf 'nem Windows entwickle.

Für Interessierte, das Skript:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/perl -w

use strict;

my $folder = shift @ARGV;
exit unless ($folder);
my $base_dir = 'C:\\testdir\\';
my @dirs = qw ( schrift.A_B_F_P pl.G_R_V daten.T_S_X cad.Z );

&two_level($folder) if ($folder =~ m/^\w{2}-\d{4}$/);
&three_level($folder) if ($folder =~ m/^\w{2}-\d{4}-\w$/);

print "Sorry Freunde, so geht es nicht!\n";
exit;

sub two_level {
my $folder = shift @_;
chdir $base_dir or die "$!\n";
die "Verzeichniss existiert bereits!\n" if (-e $folder);
mkdir $folder,0755 or die "$!\n";
chdir $folder or die "$!\n";
&structure();
exit;
}

sub three_level {
my $folder = shift @_;
chdir $base_dir or die "$!\n";
$folder =~ m/^(\w{2}-\d{4})-(\w)$/;
my ($lv1, $lv2) = ($1, $2);
die "Verzeichnisse existieren bereits!\n" if (-e "$lv1\\$lv2");
mkdir $lv1,0755 or die "$!\n" unless (-e $lv1);
chdir $lv1 or die "$!\n";
mkdir $lv2,0755 or die "$!\n";
chdir $lv2 or die "$!\n";
&structure();
exit;
}

sub structure {
for (@dirs) { mkdir $_,0775 or die "$!\n"; }
}


Gruss,
Ronnie

View full thread Ablagestruktur via Perlskript erzeugen: Wie sieht das mit den UNIX-Rechten aus?