Español
Foro

DIE DATEI GEHÖRT MIR!

 
¡Hola Profaner...

Yo habe antes, mich demnächst veces algo mäher con el NT/NTFS File-Security a beschäftigen - Mostrar y ändern de Eigentümern y son Zeug para Ejemplo. Sombrero alguien así algo ya veces gemacht (con Security Descriptors gearbeitet) oder hay Interesse a el Thema?
 
11.04.2005  
 



Nun en Linux es alles sí para Glück encima bashscripz realisierbar - como isses alles net así kompliziert - aber irgendwie sicherer.

Interessant wäre z.B. como una en una Client-Laufende-Software se como Benutzer en el Server registro kann (vorrausgesetzt Username+Contraseña disponible!) en Archivos je después de Rechtevergebung en el Server a behandeln.

Salve.
 
12.04.2005  
 



Moin IF...

Sich irgendwo como otro User anzumelden (y sei lo sólo una individual Prozess), dürfte eigentlich kein Problema ser (siehe API Library). Leider Yo kein privates Netzwerk y kann deshalb dazu nichts entwickeln - allerhöchstens mitdenken. El Domain (Computername) muss de paso auch todavía bekannt ser. Das ändern des Security Descriptors es entonces aber nada mehr notwendig - y gerade el möchte Yo sí. Yo möchte Files y Registry-Keys sólo para cierto User y Gruppen liberación oder el Eigentümer en (una evtl. geänderten) Loginnamen adaptar.

Viele Installer scheitern en Usern con eingeschränkten Rechten, porque esta en Installation uno Programmes no el Zugriffsrechte para el Files des installierten Programmes adaptar.
Installiert una Admin para una User con eingeschränkten Rechten una Programa, funktioniert dieses entonces evtl. no correcto, porque Files no gelesen oder geschrieben voluntad puede - una Problema, a el kaum una Programmierer denkt.

Der Zugriff en el Security Descriptor scheint auch bajo Windows no así kompliziert a ser - es wesentlich mejor dokumentiert como el Aktivierung de Privilegien y el LSA - y beides es ya en Profano umgesetzt.

Trotzdem scheint lo kaum oder gar no Fuente en irgendeiner Lenguaje de programación encima el Cambio de Security Descriptors a geben - el stört mich algo y el voluntad Yo ändern...

´
 
12.04.2005  
 



Usted möchtest also una set|getFileOwner redactar - en antes una fopen una getFileOwner==actualOwner abprüfen a puede?

Wäre muy interessant...

Salve.
 
12.04.2005  
 



¡Hola IF...

Sí, genau. Nur el I, con dieser Tarea eigentlich no viel a tun habe - el übernimmt el Betriebssystem para mich, vorausgesetzt lo son una NTFS formatierte Patition (en XP eigentlich ya fast Standard).

In el Registry funktioniert el en el gleiche Weise. Auch hier puede Keys gegen Fremdzugriff geschützt voluntad. En algunos Systemkeys bajo HKEY_LOCAL_MACHINE es standardmäßig así, daß eigentlich sólo Admins darauf zugreifen puede.

Como ya he dicho - wäre el para Files gelöst, podría al para todos otro Bereiche des Betriebsystems auch anwenden. Desde que hier sólo bedinngt encima NTFS Partitionen verfüge, bräuchte Yo evtl. una a zwei Personas, el algo enger con me zusammenarbeiten y 2000 oder XP con NTFS haben. Oberflächliche Kenntnisse, como esta Betriebssysteme trabajo, debería uno ya mitbringen.

El Delphianer haben algo ähnliches intenta - es como scheinbar wohl kläglich en el Hose gegangen. Yo denke veces, wir kriegen el geregelt.
 
12.04.2005  
 



Usted weißt doch - wenns qué a testen son...

Salve.
 
12.04.2005  
 




CB
¡Hola, Andreas!

Bin gerne auch esta. XP - 2000 - NT, auch en el Netzwerk.
Tät mich auch interés!

Ciao, Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
12.04.2005  
 



¡Hola ihr beiden...

Bestens - sobald Yo otra vez voll a media Internet-PC kann, gehts genau hier los. Das kann todavía a a 14 Tagen dauern, deshalb algo Geduld.

Yo habe antes, ähnlich como en LSA-API y el Aktivieren de Privilegien, hier muy tief en el Herz cada Windows NT-basieten Betriebssystems a blicken.

Wenn esta algo vernünftiges herauskommt, se el Ergebnis no sólo para Files gelten, pero en todos Bereiche uno NT-basierten Systems zutreffen, el con ACCESS_MASK Flags trabajo - el Registry bajo anderem, en sólo una Ejemplo de vielen a nennen.

Me complace ya en el Zusammenarbeit con euch y hoffe, daß ihr me auch algo en el Sprünge helfen könnt, wenns en me haken debería...
 
13.04.2005  
 



¡Hola ihr beiden (y el Rest ebenso)...

OK, ahora fangen wir veces bastante langsam y simplemente a:

Zuerst hole Yo el Security Descriptor - also todavía nichts besonderes.

Welche Rückmeldungen gibts - qué zeigt el Ausgabebox a - es irgendetwas unschlüssig?
KompilierenMarcaSeparación
Windowstyle 31
Windowtitle "File Security"
Window 0,0-640,440
DEF @GetFileSecurity(5) !"ADVAPI32","GetFileSecurityA"
DEF @GetLastError(0) !"KERNEL32","GetLastError"
DEF @LookupPrivilegeName(4)!"advapi32","LookupPrivilegeNameA" Ermittelt aus dem Luid eines Privilegs dessen Namen.
DEF @LookupPrivilegeValue(3) !"advapi32","LookupPrivilegeValueA" Ermittelt aus dem Namen eines Privilegs dessen Luid.
DEF @OpenProcessToken(3) !"advapi32","OpenProcessToken" Öffnet Einstellprozess.
DEF @AdjustTokenPrivileges(6) !"advapi32","AdjustTokenPrivileges" Stellt Privilegien ein.
DEF @GetCurrentProcess(0) !"kernel32","GetCurrentProcess" Ermittel das Handle des aktiven Prozesses.
DEF @CloseHandle(1) !"kernel32","CloseHandle" Schließt ein Handle (Programm).
Def @GetVolumeInformation(8) !"KERNEL32","GetVolumeInformationA"
Declare Filename$,Fehler&,SECURITY_INFORMATION#,PSECURITY_DESCRIPTOR#,Needed#
Declare NewState#,token#,Privileg#,Luid#,System$
Declare Laufwerk$,Label#,LFLAGS#,DAT#
LET Filename$=@LOADFILE$("Datei laden","Alle Dateien |*.*|Textdateien|*.TXT")

IF Filename$<>""

    CLEARLIST
    LET LAUFWERK$=@LEFT$(Filename$,3)
    DIM Label#,256
    DIM LFLAGS#,4
    DIM DAT#,256
    ADDSTRING "Gewählte Datei="+Filename$
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    LET FEHLER&=@GetVolumeInformation(@ADDR(Laufwerk$),Label#,256,0,0,LFlags#,DAT#,256)
    ADDSTRING "Rückgabe von GetVolumeInformation="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    ADDSTRING "Laufwerksflags="+@BIN$(@LONG(LFLAGS#,0))

    IF @LONG(LFLAGS#,0) | $8 = @LONG(LFLAGS#,0)

        ADDSTRING "Zugriff ist einschränkbar"

    else

        ADDSTRING "Zugriff ist nicht einschränkbar"

    endif

    ADDSTRING "Ausgelesene Partition="+@String$(Dat#,0)
    dim token#,4
    DIM NewState#,16
    DIM Luid#,8
    DIM Privileg#,33
    ADDSTRING "Windowsversion="+$WINVER
    Long NewState#,0=1 Nur ein Privileg soll geändert werden
    Long NewState#,12=$00000002 Das Privileg soll eingeschaltet werden
    LET FEHLER&=@OpenProcessToken(@GetCurrentProcess(),$0020 | $0008,Token#)
    ADDSTRING "Rückgabe von OpenProcessToken="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    STRING Privileg#,0="SeSecurityPrivilege"
    LET Fehler&=@LookupPrivilegeValue(System$,Privileg#,LUID#)
    ADDSTRING "Rückgabe von LookupPrivilegeValue="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    Byte NewState#,4=@Byte(Luid#,0)
    Byte NewState#,5=@Byte(Luid#,1)
    Byte NewState#,6=@Byte(Luid#,2)
    Byte NewState#,7=@Byte(Luid#,3)
    Byte NewState#,8=@Byte(Luid#,4)
    Byte NewState#,9=@Byte(Luid#,5)
    Byte NewState#,10=@Byte(Luid#,6)
    Byte NewState#,11=@Byte(Luid#,7)
    Let Fehler&=@AdjustTokenPrivileges(@LONG(Token#,0),0,NewState#,0,0,0)
    ADDSTRING "Rückgabe von AdjustTokenPrivileges="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    DIM SECURITY_INFORMATION#,4
    DIM PSECURITY_DESCRIPTOR#,1024
    DIM Needed#,4
    LONG SECURITY_INFORMATION#,0=$1 | $2 | $4
    LET Fehler&=@GetFileSecurity(@ADDR(Filename$),SECURITY_INFORMATION#,PSECURITY_DESCRIPTOR#,1024,Needed#)
    ADDSTRING "Rückgabe von GetFileSecurity="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    @CloseHandle(@LONG(Token#,0))
    Dispose Luid#
    Dispose Privileg#
    Dispose NewState#
    Dispose token#
    Dispose Needed#
    Dispose PSECURITY_DESCRIPTOR#
    Dispose SECURITY_INFORMATION#
    Dispose Label#
    Dispose LFlags#
    DISPOSE DAT#
    @Listbox$("API Rückgaben",1)

Endif

While 0=0

    Waitinput

Wend


Fragen a irgendwelchen Sachen? Gibt lo irgendo 997 Fehlermeldungen? Kann se el alguien erklären???
 
23.04.2005  
 




Rolf
Koch
Hi AH
tener simplemente veces ne *.txt Expediente gewählt.

en me kommt después de LookupPrivilegeValue=1
el Valor 997.
Erklären kann Yo dies pero no, como Yo no Schimmer su habe

Rolf
 
23.04.2005  
 



Hey Rolf...

Scheint aber trotzdem a trabajo => Rückmeldung es sí 1. Como siehts con el otro Rückmeldungen de?

Ziel el Kiste = Yo voluntad en Installation uno Programms festlegen puede, welche User en welcher Art y Weise Zugriff en el installierten Archivos haben.
Normalerweise se el Zugriff de übergeordneter Punto vererbt. Das kann en eingeschränkten Rechten a bastante erheblichen Problemen führen...
 
23.04.2005  
 




Rolf
Koch
Also sieht en me así de:
KompilierenMarcaSeparación
Und como Yo a faul bin alles abzutippen, qué en el Liste es, Yo Su código una bisschen en Arbeitselemente erweitert
KompilierenMarcaSeparación
Windowstyle 31
Windowtitle "File Security"
Ventana 0,0-640,440
DEF @GetFileSecurity(5) !"ADVAPI32","GetFileSecurityA"
DEF @GetLastError(0) !"KERNEL32","GetLastError"
DEF @LookupPrivilegeName(4)!"advapi32","LookupPrivilegeNameA" Ermittelt de el Luid uno Privilegs dessen Namen.
DEF @LookupPrivilegeValue(3) !"advapi32","LookupPrivilegeValueA" Ermittelt de el Namen uno Privilegs dessen Luid.
DEF @OpenProcessToken(3) !"advapi32","OpenProcessToken" Öffnet Einstellprozess.
DEF @AdjustTokenPrivileges(6) !"advapi32","AdjustTokenPrivileges" Stellt Privilegien una.
DEF @GetCurrentProcess(0) !"kernel32","GetCurrentProcess" Ermittel el Handle des aktiven Prozesses.
DEF @CloseHandle(1) !"kernel32","CloseHandle" Schließt una Handle (Programa).
Def @GetVolumeInformation(8) !"KERNEL32","GetVolumeInformationA"
Declarar Filename$,Fehler&,SECURITY_INFORMATION#,PSECURITY_DESCRIPTOR#,Needed#
Declarar NewState#,token#,Privileg#,Luid#,Sistema$
Declarar Laufwerk$,Label#,LFLAGS#,DAT#
DECLARE LISTBOX&,TOCLIP&,TOCLIP$
LISTBOX&=CREATELISTBOX(%HWND,"",5,5,500,300)
TOCLIP&=CREATEBUTTON(%HWND,"CLIPBOARD",5,320,120,18)
LET Filename$=@LOADFILE$("Datei laden","Alle Archivos |*.*|Textdateien|*.TXT")

IF Filename$<>""

    CLEARLIST
    LET LAUFWERK$=@LEFT$(Filename$,3)
    DIM Label#,256
    DIM LFLAGS#,4
    DIM DAT#,256
    ADDSTRING "Gewählte Datei="+Filename$
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    LET FEHLER&=@GetVolumeInformation(@ADDR(Laufwerk$),Label#,256,0,0,LFlags#,DAT#,256)
    ADDSTRING "Rückgabe de GetVolumeInformation="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    ADDSTRING "Laufwerksflags="+@BIN$(@LONG(LFLAGS#,0))

    IF @LONG(LFLAGS#,0) | $8 = @LONG(LFLAGS#,0)

        ADDSTRING "Zugriff es einschränkbar"

    más

        ADDSTRING "Zugriff es no einschränkbar"

    endif

    ADDSTRING "Ausgelesene Partition="+@String$(Dat#,0)
    dim token#,4
    DIM NewState#,16
    DIM Luid#,8
    DIM Privileg#,33
    ADDSTRING "Windowsversion="+$WINVER
    Largo NewState#,0=1 Nur una Privileg se geändert voluntad
    Largo NewState#,12=$00000002 Das Privileg se eingeschaltet voluntad
    LET FEHLER&=@OpenProcessToken(@GetCurrentProcess(),$0020 | $0008,Token#)
    ADDSTRING "Rückgabe de OpenProcessToken="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    STRING Privileg#,0="SeSecurityPrivilege"
    LET Fehler&=@LookupPrivilegeValue(Sistema$,Privileg#,LUID#)
    ADDSTRING "Rückgabe de LookupPrivilegeValue="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    Byte NewState#,4=@Byte(Luid#,0)
    Byte NewState#,5=@Byte(Luid#,1)
    Byte NewState#,6=@Byte(Luid#,2)
    Byte NewState#,7=@Byte(Luid#,3)
    Byte NewState#,8=@Byte(Luid#,4)
    Byte NewState#,9=@Byte(Luid#,5)
    Byte NewState#,10=@Byte(Luid#,6)
    Byte NewState#,11=@Byte(Luid#,7)
    Let Fehler&=@AdjustTokenPrivileges(@LONG(Token#,0),0,NewState#,0,0,0)
    ADDSTRING "Rückgabe de AdjustTokenPrivileges="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    DIM SECURITY_INFORMATION#,4
    DIM PSECURITY_DESCRIPTOR#,1024
    DIM Needed#,4
    LONG SECURITY_INFORMATION#,0=$1 | $2 | $4
    LET Fehler&=@GetFileSecurity(@ADDR(Filename$),SECURITY_INFORMATION#,PSECURITY_DESCRIPTOR#,1024,Needed#)
    ADDSTRING "Rückgabe de GetFileSecurity="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    @CloseHandle(@LONG(Token#,0))
    MOVELISTTOLIST(LISTBOX&)
    Disponer Luid#
    Disponer Privileg#
    Disponer NewState#
    Disponer token#
    Disponer Needed#
    Disponer PSECURITY_DESCRIPTOR#
    Disponer SECURITY_INFORMATION#
    Disponer Label#
    Disponer LFlags#
    DISPOSE DAT#

Endif

Mientras que 0=0

    Waitinput

    IF GETFOCUS(TOCLIP&)

        CLEARCLIP
        CLEAR TOCLIP$
        TOCLIP$=GETSTRING$(LISTBOX&,0)

        WHILELOOP GETCOUNT(LISTBOX&)

            TOCLIP$=TOCLIP$+CHR$(10)+GETSTRING$(LISTBOX&,&LOOP)

        WEND

        PUTCLIP TOCLIP$

    ENDIF

Wend


Rolf
 
23.04.2005  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

5.992 Views

Untitledvor 0 min.
JR04.11.2014
Tommy30.01.2014
Andreas Koch05.09.2013
Stephie03.09.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie