Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Ordnerberechtigungen auslesen mit PHP übers Netzwerk

Mitglied: Praktikant2010

Praktikant2010 (Level 1) - Jetzt verbinden

25.10.2010, aktualisiert 09:33 Uhr, 5118 Aufrufe, 4 Kommentare

Hallo liebes Forum

Ich bin Praktikant bei einer Softwarefirma, wo ich die Aufgabe bekommen hab die Ordnerberechtigungen auszulesen.
Ich hab es mit einigen Programmen versucht die ich im Internet gefunden hab, aber diese waren nicht das richtige, oder Sie waren kostenpflichtig.

Nun soll ich das Problem mit PHP lösen.
Zum arbeiten wurde mir ein virtueller Windows 2008 Server und ein virtueller PC mit Windows 7 bereitgestellt.
Zur Ansicht und Testzwecken benutze ich Xampp.

Mich mit dem Server zu verbinden hab ich hin bekommen, und im Internet steht, dass ich mit >>fileperms<< die Berechtgungen auslesen kann.
Nun habe ich dieses versucht, aber er gibt mit ein Fehler in Zeile 6 aus.
das Ergebnis bei einem Fehler ist "False" oder "0".
Trotz Fehlermeldung gibt er mir die "0" in der nächsten zeile aus.

Hier mal mein bisheriger Quellcode:

<?php

$loc=new COM("WbemScripting.SWbemLocator");
$wmi=$loc->ConnectServer("w2k8r2-64-fs1","root/cimv2","Anmeldenamen","Passwort");

$rechte = fileperms("../schnelltest.*");
echo sprintf("%o",$rechte);

?>

Hier die Fehlermeldung:

Warning: fileperms() [function.fileperms]: stat failed for ../schnelltest.* in C:\Xampp\xampp\htdocs\test.php on line 6
0



Ich habe auch was von QML erfahren, dass ich mich daran halten soll, welches aber wohl eingeschränkt sei (einige Befehle funktionieren da nicht).
Da ich von QML zum ersten mal gehört hab, hab ich davon echt keine Ahnung.

Ich hoffe ihr könnt mir weiter helfen

Vielen Dank schonmal im Vorraus
Euer Praktikant2010
Mitglied: laster
25.10.2010 um 09:50 Uhr
Hallo Praktikant,

keine Ahnung wie das unter PHP geht.
Du kannst aber schon mal auf CMD-Ebene testen, ob Du die Infos bekommst (Berechtigung...). Dazu kannst Du das Programm RMTSHARE.EXE verwenden.
vG
LS
Bitte warten ..
Mitglied: laster
25.10.2010 um 09:52 Uhr
Sorry,

RMTSHARE.EXE liefert Rechte auf Freigabeebene, Du suchts auf NTFS-Ebene - also vergiss meinen Beitrag.
vG
LS
Bitte warten ..
Mitglied: Orlean
25.10.2010 um 11:11 Uhr
Hallo Praktikant2010,

Codetags sind was tolles:

01.
<code type="php"> 
02.
<code>
01.
<?php 
02.
 
03.
 $loc=new COM("WbemScripting.SWbemLocator");       
04.
 $wmi=$loc->ConnectServer("w2k8r2-64-fs1","root/cimv2","Anmeldenamen","Passwort"); 
05.
  
06.
 $rechte = fileperms("../schnelltest.*"); 
07.
 echo sprintf("%o",$rechte); 
08.
 
09.
?>

Hab zwar nicht wirklich Ahnung von PHP ;), aber wenn ich deinen Quellcode richtig verstehe, versuchst du die Dateirechte aller Dateien die mit schnelltest. beginnen in eine Variable zu schreiben? [schnelltest.*]

Wenn ich das fileperms - Manual richtig interpretiere, funktioniert fileperms nur mit einer Datei, jedoch nicht mit Wildcards. Hast du dahingehend schon mal probiert eine Datei direkt zu prüfen?

Mal davon abgesehen, das du mit fileperms nur Dateirechte erhältst, jedoch keine Ordnerrechte.

Edit:
01.
$rechte = fileperms("../schnelltest.*");
Eventuell hier auch mal versuchen einen festen Pfad zu verwenden, ich bin mir nicht sicher, ob es in Verbindung mit NTFS, eine solche Pfadangabe korrekt ist.

Edit2:
Ich bin mir gerade nicht sicher, wie genau der Zugriff auf den Server stattfindet per ConnectServer, damit fileperms funktioniert muss die entsprechende Datei über das Dateisystem des Servers zur Verfügung stehen, es darf sich hierbei nicht um einen Remotezugriff handeln, siehe verlinktes fileperms Manual.

Gruß Orlean
Bitte warten ..
Mitglied: Praktikant2010
25.10.2010 um 12:49 Uhr
danke für die schnellen Antworten
habe noch weiter im Internet nachgeguckt und bin nun auf diesen Lösungsansatz gestoßen

<?php

$loc=new COM("WbemScripting.SWbemLocator");
$wmi=$loc->ConnectServer("W2K8R2-64-FS1","root/cimv2","Anmeldenamen","Passwort");

$OSs = $wmi->ExecQuery("SELECT * FROM win32_LogicalFileSecuritySetting WHERE ComputerName 'w2k8r2-64-fs1' AND Path 'C:\\schnelltest'");


foreach ($OSs as $mp)
{
//echo " win32_LogicalFileSecuritySetting for file C:\schnelltest";
echo " Controlflags: " . $mp->controlFlags . "<br>";
echo " Description: " . $mp->Description . "<br>";
echo " Ownerpermissions: " . $mp->Ownerpermissions . "<br>";
echo " Path: " . $mp->Path . "<br>";
echo " SettingID: " . $mp-> SettingID . "<br>";
}

?>

Der Quelltext ist von einem VBScript abgekupfert und umgebastelt zu php, nur besteht nun das Problem, dass er nicht in die foreach-Schleife rein gehen will (getestet mit nem echo vor und in der Schleife)
Soweit ich nun weiss besteht das Problem darin, dass er nicht mit dem Format der ACL Tabelle klar kommt.
Wenn ich $OSs angezeigt haben will kommt folgende Meldung.

Fehlermeldung:
Catchable fatal error: Object of class variant could not be converted to string in C:\Xampp\xampp\htdocs\test.php on line 9

Ich würde mich sehr freuen, wenn mir da einer weiterhelfen kann
Praktikant2010
Bitte warten ..
Ähnliche Inhalte
TK-Netze & Geräte
Fax Signal übers Netzwerk
Frage von dermolaTK-Netze & Geräte7 Kommentare

Hallo zusammen, wir haben eine Telefon Anlage von Agfeo (ES 512) leider kann die Anlage keine Fax Geräte über ...

Grafikkarten & Monitore
Screensharing übers Netzwerk
gelöst Frage von Rizal1966Grafikkarten & Monitore2 Kommentare

Hallo zusammen, ich bin auf der Suche nach einer Lösung für folgendes Problem. An einem Standort von meinem Arbeitgeber ...

Visual Studio

VB.Net Screenshot übers Netzwerk übertragen

Frage von Aicher1998Visual Studio1 Kommentar

Hallo Ich möchte einen Screenshot übers Netzwerk übertragen und hab mir dazu einen simplen Server und Client geschrieben. Irgendwie ...

PHP

PHP Script zum Daten auslesen gesucht

Frage von majas3PHP2 Kommentare

Hallo, ich habe viele taußend HTML Seiten in verschiedenen Verzeichnissen und bin auf der Suche nach einem PHP Script ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 2 TagenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 2 TagenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 3 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 3 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk14 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...

Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement14 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...

Google Android
Empfehlung: Android Ortungsapp
gelöst Frage von certifiedit.netGoogle Android13 Kommentare

Guten Morgen, grundsätzlich vorweg, ich wollte mich eben schlau machen, bzgl einer Ortungsapp, welche Androidbasiert einem anderen Androidsmartphone mitteilt, ...

Vmware
Server 2008 r2 vmware terminalserver
Frage von MasterCVmware12 Kommentare

Guten Abend zusammen, ich hoffe , dass einer von euch mir weiterhelfen kann ,bei meinem kack Problem ! Ist ...