← Back to team overview

sslug-teknik team mailing list archive

Re: FW: Re: [TEKNIK] Problemer med rettigheder på system filer.

 

UPS - ramte lige send knappen lidt for tidligt...

Lasse Taul Bjerre wrote:
#!/usr/bin/perl -n

my ($symbolic_mode, $name) = /^(.{10})[^/]*(.*)/;

$_ = $symbolic_mode;

my $numeric_mode = 0;
$numeric_mode |= 04000 if /^...[sS]......$/;
$numeric_mode |= 02000 if /^......[sS]...$/;
$numeric_mode |= 01000 if /^.........[tT]$/;
$numeric_mode |= 00400 if /^.r........$/;
$numeric_mode |= 00200 if /^..w.......$/;
$numeric_mode |= 00100 if /^...[xs]......$/;
$numeric_mode |= 00040 if /^....r.....$/;
$numeric_mode |= 00020 if /^.....w....$/;
$numeric_mode |= 00010 if /^......[xs]...$/;
$numeric_mode |= 00004 if /^.......r..$/;
$numeric_mode |= 00002 if /^........w.$/;
$numeric_mode |= 00001 if /^.........[xt]$/;

chmod $numeric_mode, $name
__END__

Burde umidelbart gøre tricket, antaget at alle inddatalinjer giver
absolutte filnavne og der ikke gives noget spøjst inddata.


Nu har jeg haft lejlighed til at sætte en test maskine op hvor jeg kan lege lidt med det script du lavede til mig. Umiddelbart giver det dog følgende "fejlmeddelelse":

Unmatched [ before HERE mark in regex m/^(.{10})[ << HERE ^/ at /root/fixPerm.sh line 3.

Jeg kinder desværre ikke til perl overhovedet så jeg er lidt på herrensmark her - alle forslag er meget velkomne.

/Lasse
Du kan hente et fuldt fungerende perl script til genoprettelse af permissions ud fra en "ls -lR liste" på http://www.cs.utexas.edu/users/yschoe/src/fixmog


--
Jon Svejgaard
====================================================================
                               | ACE - UNIX/Linux Consultancy
                               | Hjorthoejvej 2 / DK-4291 Ruds Vedby
mail: jon@xxxxxx               | DENMARK
http://www.ace.dk              | +45 5826 1799 / +45 4052 0799
====================================================================



Follow ups

References