Schrift
[thread]244[/thread]

Prüfen auf Zugrifsrechte?



<< >> 6 Einträge, 1 Seite
vougie
 2004-04-24 11:40
#2178 #2178
User since
2004-04-12
8 Artikel
BenutzerIn
[default_avatar]
moin moin,

ich hab da so ein kleines Prob. Ich hab eine Sub welche mir ab einem bestimmten Ordner alle Ordner / Unterordner nach einer bestimmten Datei durchsucht.
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
sub list_files{
my ($begin,$datei,$return) = @_;

opendir(R_DIR,$begin) or die $begin,": ",$!," \n";
my @content = readdir(R_DIR);
closedir R_DIR;

foreach my $con(@content){
next if($con =~ /^\.\.?$/);
my $path = $begin."/".$con;

@files=split(/\//,$path);
my $Anzahl = @files;

if((-f $path) && (@files[($Anzahl-1)] eq $datei)){
$return = $path;
}
elsif(-d $path){
$return = list_files($path,$datei,$return); # hier ist die rekursion
}
}
return $return;
}


Nur nun hab ich das Prob, wenn ich zu weit oben im Verzeichnisbaum anfange zu suchen, bekomm ich ein Permission denied! Kann ich irgendwie abfragen ob ich auf den Ordner Zugreifen darf? Damit ich mit halt sicher sein kann, das ich keine Fehlermeldung bekomme???

Bin für jede Idee dankbar...

thx
- vougie
[E|B]
 2004-04-24 12:29
#2179 #2179
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
HiHo!

"-w file" (w = write):
Ermittelt, ob die UID Schreibrechte besitzt.

"-x file" (x = execute):
Ermittelt, ob die UID Ausführrechte besitzt.

"-r file" (r = read):
Ermittelt, ob die UID Leserechte besitzt.
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
vougie
 2004-04-24 15:40
#2180 #2180
User since
2004-04-12
8 Artikel
BenutzerIn
[default_avatar]
ah das ist ja simpel!

besten dank!

- vougie
lichtkind
 2004-04-25 04:02
#2181 #2181
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
es gibt da noch die variante mit den grossbuchstaben aber das ist eh nur unter UNIX relevant und in seltenst ein thema
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
[E|B]
 2004-04-25 11:38
#2182 #2182
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
@lichtkind

Von welcher Variante sprichst du?
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
lichtkind
 2004-04-25 17:42
#2183 #2183
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
zb
-r -w -x operiert mit der effektiven UID
-R -W -X operiert mit der realen UID
u.s.w.

siehe:

Quote
Die reale UID ist die UID des Benutzers. Führt Benutzer Thomas mit der UID 543 beispielsweise ein SetUID Programm vom Benutzer root aus, so hat das Programm die effektive UID 0 und die reale UID 543. Da für die Zugangsüberprüfung auf Systemobjekte in Unix-Systemen die effektive UID benutzt wird, können die UIDs getauscht oder sogar die effektive UID verworfen werden. Ist die reale UID nicht 0, so kann eine verworfene UID nicht zurückgeholt werden, eine getausche UID hingegen schon.
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
<< >> 6 Einträge, 1 Seite



View all threads created 2004-04-24 11:40.