Zum Inhalt springen

Berechtigungsproblem beim Verzeichniss öffnen


Empfohlene Beiträge

Hallo,

opendir (DIR0 , "M:") || die "Kann Verzeichnis nicht lesen!!" ; 


foreach $dat (readdir(DIR0))  {

	if (-d "M:\\$dat") {

		if (-e "M:\\$dat\\.") {

			opendir (VERZ , "M:\\$dat") || die "Kann Unterverzeichnis nicht laden!!";

			foreach $tmp (readdir(VERZ)) {

				if (-d "M:\\$dat\\$tmp") {

					if ($tmp eq $USERNAME1) {

						print "Verzeichnis gefunden!\nM:\\$dat\\$tmp gehört zu User $USERNAME\n";

						# $VERZ = "M:\\$dat\\$tmp";

					}

				}

			}

			closedir(VERZ);

		}

	}

}

closedir(DIR0) ;

Ich habe eine Variable $USERNAME1.

Nun soll er in der Unterverzeichnissen von M:\ nach dieser Variable suchen.

Problem:

Solange ich Admin bin, kein Problem. Ich komme ja überall ran.

Nur wenn ich eben normal User bin, der in manchen Verzeichnissen keine Berechtigung hat, bricht er ab, sobald ich versuche das Verzeichniss per opendir zuöffnen.

Auch die Abfrage mit if (-e M:\verz\.) bringt nichts.

-w genausowenig.

Wie kann ich prüfen ob ich in dem Verzeichnis in das ich reinwill überhaupt lesen darf.

Danke

Gruß

Enno

Link zu diesem Kommentar
Auf anderen Seiten teilen

http://www.infos24.de/phpe/handbuch/11_php_funktionen_zum_testen.htm

hab bei google mal eingegeben 'php rechte testen', weil bei php.net zwar toller Code usw. steht, aber eh ich die richtige Seite dazu weiss ...

und dann stand da was, dass man das gut ueber ein filehandle machen kann, gleich mit Code und so

(guck Dir noch mal bitte die Verschachtelungen Deiner Schleifen an, vielleicht geht da was zu optimieren)

Liebe Gruesse,

sissy66.

Link zu diesem Kommentar
Auf anderen Seiten teilen

auf anhieb würde ich es mal mit is_readable() o.ä. versuchen....musst du mal in der PHP Doku nachsehen.

cool, es gibt so was wie is_readable fuer files, wieder was dazu gelernt

... weiter lesend ...

es gibt aber komischer Weise kein dir_is_readable oder so aehnlich und bei readdir im ex2 unt. steht, wie man das mit dem handle generell so machen kann:

while (false !== ($file = readdir($handle))) {

if ($file != ".") {

... dann brauchst Du es Dir nur noch fuer Deine Zwecke umkopieren, sodass,

wenn false eintrifft, dann gehe zum naechsten dir (durch zaehlvariable von Anweisung/Schleife hochsetzen) und ins log-file printen, wie '$handle'-dir not usable

und dann mache weiter mit Dateimanipulationen

Liebe Gruesse,

sissy66.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jungs

a das ist perl! daher der bash-style :D

und ja man kann meinen Editor umstellen auf 2 Space anstatt Tab. Dann ist aber immer Tab = 2 Spaces und das mag ich garnicht.

b das mit readebale kuck ich mir mal an.

c hab ichs anders gelöst und zwar so:

opendir (DIR0 , "M:") || die "Kann Verzeichnis nicht lesen!!" ; 


foreach $dat (readdir(DIR0))  {

	if (-d "M:\\$dat") {

		if (-d "M:\\$dat\\$USERNAME1") {

			print "Verzeichnis gefunden!\nM:\\$dat\\$USERNAME1 gehört zu User $USERNAME\n\n";

			$VERZ = "M:\\$dat\\$USERNAME1";

		}

	}

}

closedir(DIR0) ;

Ich kann hier abkürzen, da ich eben weis, das die gesuchten Verzeichniss direkt darin liegen müssen. Und da er hier nicht versucht das Verzeichniss zu öffnen bekommt er auch keine Probs wenns lesegeschützt ist.

Trotzdem Danke für die Hilfe.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ui, na dann eben Perl. (Hab mich schon gewundert, warum da so viele Optionen drin stehen.)

Das sieht irgendwie trotzdem sehr aehnlich aus. Und die ganzen Funktionen, wie opendir, etcpp gibts auch bei PHP und das hab ich schon mal benutzt, deswegen hab ich da nicht an Perl gedacht.

Ich kann das nur bei wenig Code auf den ersten Blick erkennen, wenn da stehen wuerden '<?php ?>' oder '#!/usr/local/bin/perl' oder irgendeine fette regular expression zu sehen ist. Dann faellt es mir auch auf, wenn ich das nicht jeden Tag benutze. ;)

Aehm, und warum machst Du es nicht gleich als shellscript?

... Ne bash? ist doch immer irgendwie installiert und das Perl will immer neue Module haben, die nachinstalliert werden muessen, sodass man irgendwie nie die Version hat, die man gerade moechte. Ausserdem kann es sein, dass die Module sich untereinander nicht vertragen. Und die Perlheader koennen mitunter ganz schoen fett werden ... hab ich zumindest gehoert.

(Ich mache mein Zeugs nur mit shellscripten, weil ich unter public oder in meinem home schon viele sind, wo ich dann ein bisschen abgucken kann)

Mal ne andere Frage, gibts so was wie php.net auch fuer perl? (Ich lese immer nur 'Perl ist toll', 'Perl-Mongers in Dresden' usw.)

Liebe Gruesse,

sissy66.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Aehm, und warum machst Du es nicht gleich als shellscript?

sagt dir WIN XP was? :D

Perl hat den Vorteil, das es eben auf Win und Unixen läuft. Jedenfalls wenn man beim coden etwas aufpasst.

Ausserdem will ich mit meinen perl-scripten eh meistens nur die unzulänglichkeiten von Windows ausgleichen. Oder den Admins die sich nix gedacht haben.

Hier ist das problem:

Username = Nachname Vorname

Verzeichnissname = Nachname_Vorname

Und dann sind die Verzeichniss auch noch nach Abteilung in Unterordnern geordnet.

arrrrgg, wie kommt man auf solche Ideen. Ändern geht nicht mehr ist schon zutief verwurzelt. Drum den konstrukt hiermit.

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...