Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Frage Linux Linux Netzwerk

Mitglied: Praktikant2010

Praktikant2010 (Level 1) - Jetzt verbinden

25.10.2010, aktualisiert 09:33 Uhr, 4837 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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Visual Studio
VB.Net Screenshot übers Netzwerk übertragen (1)

Frage von Aicher1998 zum Thema Visual Studio ...

JavaScript
gelöst Dropdownfeld auslesen und mit AJAX und JS an PHP senden (7)

Frage von ITFlori zum Thema JavaScript ...

PHP
gelöst HTML Dropdownmenü auslesen und in PHP als Variable übergeben (35)

Frage von ITFlori zum Thema PHP ...

PHP
gelöst Externe XML-Datei in PHP auslesen (18)

Frage von Akrosh zum Thema PHP ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...