[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Shellscript, AWK, SED oder gar Perl?



Bertram Scharpf schrieb:
Hallo,

Am Dienstag, 23. Mai 2006, 18:00:50 +0200 schrieb Thomas Halinka:
Das -Windows/ACL-Textfile sieht in etwa so aus:

D:\Daten\Ordner VORDEFINIERT\Administratoren:(OI)(CI)F
            Domäne\Abt1:(OI)F
            Domäne\Abt2:(OI)F
            Domäne\Abt3:(CI)R
            Domäne\Abt4:(OI)(CI)R
            NT-AUTORITŽT\SYSTEM:(OI)(CI)F

D:\Daten\Ordner2 VORDEFINIERT\Administratoren:(OI)(CI)F
            Domäne\Abt2:(OI)F
            NT-AUTORITŽT\SYSTEM:(OI)(CI)F

Jedoch erwartet der Apache ja das ganze in so einer Form:

<Directory /var/www/Archiv/Ordner1>
       Options Indexes FollowSymLinks MultiViews
       AllowOverride None
       #Order allow,deny
       #allow from all
       require group CN=Abt1,OU=Betrieb,OU=OrgEin,DC=Domäne,DC=de
       # Uncomment this directive is you want to see apache2's
       # default start page (in /apache2-default) when you go to /
       #RedirectMatch ^/$ /apache2-default/
   </Directory>

Mit Ruby ist das ein Kinderspiel. Ich schreibe mal auf die
Schnelle:

--------------------
$<.each { |line|
  if line =~ /^D:\\Daten\\(\w+)/ then
    ordner = $1
  elsif line =~ /^\s+(.*)\\(.*):/ then
    dom, abt = $1, $2
    puts <<-ENDHTTP
<Directory /var/www/Archiv/#{ordner} >
    Options Indexes Multiviews
    require group CN=#{abt},OU=Betrieb,OU=OrgEin,DC=#{dom},DC=de
</Directory>
    ENDHTTP
  end
}
--------------------

Da die Windows-Datei reinleiten. Sieht schlimmer aus als es
ist; es geht sicher auch eleganter. (Vielleicht mit der
Option "-00"?)

Bertram


Hallo Bertram

uii dankeschön,aber ich hab da leider noch ein weiteres Problem....

nochmal kurz Zum Verständnis
-------------------------------------------------

- Als Ordner bräuchte ich "alles was nach D:\Daten\ (auch entsprechende Unterverzeichnisse)"
---> Dies soll in der "Apache-Konfig" nach Archiv/ eingetragen werden
! beides markiert

D:\Daten\_Ordner1_ VORDEFINIERT\Administratoren:(OI)(CI)F
Domäne\Abt2:(OI)F
NT-AUTORITŽT\SYSTEM:(OI)(CI)F


<Directory /var/www/Archiv/_Ordner1_>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
#Order allow,deny
#allow from all
require group CN=Abt1,OU=Betrieb,OU=OrgEin,DC=Domäne,DC=de
# Uncomment this directive is you want to see apache2's
# default start page (in /apache2-default) when you go to /
#RedirectMatch ^/$ /apache2-default/
</Directory>


- Als Gruppe brauche ich alles "zwischen Backslash und Doppelpunkt" , jedoch nur bei Fällen,in denen vorne dran "Vordefiniert" oder "Domäne" steht ----> alles andere soll rausfliegen (Im unteren Beispiel würde somit nur Administratoren und Abt1, Abt2,.... stehen bleiben. NT-Authorität fliegt raus!

D:\Daten\Ordner VORDEFINIERT\_Administratoren_:(OI)(CI)F
Domäne\_Abt1_:(OI)F
Domäne\_Abt2_:(OI)F
Domäne\_Abt3_:(CI)R
Domäne\_Abt4_:(OI)(CI)R
NT-AUTORITŽT\SYSTEM:(OI)(CI)F

und sollte dann hier eingetragen werden:.

<Directory /var/www/Archiv/Ordner1>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
#Order allow,deny
#allow from all
require group CN=_Abt1_,OU=Betrieb,OU=OrgEin,DC=Domäne,DC=de
# Uncomment this directive is you want to see apache2's
# default start page (in /apache2-default) when you go to /
#RedirectMatch ^/$ /apache2-default/
</Directory>

--------------------------------------------------------------------------------------------------

Probleme dabei sind:
- schlechte Formatierung der windows-txt-file (nicht einheitlich getrennt zB durch Tabstopps,. sondern einzelne Spaces teilweise tabs etc....
-Ausgabe-File WIN im Anhang
- Problem bei den gelieferten Daten des windows-txt-files: Dadurch das die Vererbung unter Windows aktiviert ist habe ich etwa 65000 Einträge, bei denen sich jedoch nicht immer die Berechtigungen/Gruppen (zB im Beispiel oben Administratoren, Abt1,....) ändern - quasi gibts es diese Einträge teilweise mehrfach.... ---> Bräuchte quasi noch eine Regel, die guggt ob in einem Unterverzeichnis andere Gruppen sind und diese dann in die Apache-Conf einträgt, ansonsten wird sie überspringen
---> Zeige das unten:

UNd zwar war ich in der Zeit ja nicht ganz untätig und hab mir versucht zu behelfen - 3xSED+2xAWK+tr hat mich schon mal soweit gebracht:
----------> Hab das Zeugs jetzt schon mal schön in einer Zeile :-)


Abt1 Administratoren Abt1Group
XXX Administratoren AKUT FS_XXX FS_MARME XXXXX
XXXXX Administratoren FS_XXXXX
XXXXXXX Administratoren FS_XXX FS_XXXX
XXXXXX Administratoren FS_XXXXXX
XXXXXXXX Administratoren Benutzer
Profile-Test Benutzer Administratoren Benutzer
PROG Administratoren Benutzer
Programme Administratoren Benutzer
XXXX Administratoren FS_XXXX
SCHREIB Administratoren SCHREIB
USERS Administratoren Dom„nen-Benutzer
XXXXXX Administratoren FS_VERWALT
XXXXXX Administratoren FS_VORSTAND
Abt1\1.FG.WPWin Administratoren webi Abt1Group
Abt1\DB-ST Administratoren wihe Abt1Group
Abt1\Excel Administratoren webi Abt1Group
Abt1\Sicherung Administratoren wihe Abt1Group
Abt1\simpl.y.w Administratoren wihe Abt1Group
Abt1\tempo Administratoren Abt1Group
Abt1\1.FG.WPWin\Abt1 Administratoren webi Abt1Group
Abt1\1.FG.WPWin\Sonstige Administratoren wihe Abt1Group
Abt1\1.FG.WPWin\Wissenschafts-Poster Administratoren wihe Abt1Group
Abt1\1.FG.WPWin\Abt1\Abt1 Administratoren webi Abt1Group
Abt1\1.FG.WPWin\Abt1\Abt1 Administratoren webi Abt1Group
Abt1\1.FG.WPWin\Abt1\Konzepte Administratoren webi Abt1Group
Abt1\1.FG.WPWin\Abt1\MITGLIED.ER Administratoren webi Abt1Group
Abt1\1.FG.WPWin\Abt1\RECHNUNG.EN Administratoren webi Abt1Group
Abt1\1.FG.WPWin\Abt1\SCHRIFTW.ALG Administratoren webi Abt1Group
Abt1\1.FG.WPWin\Abt1\SCHRIFTW.FOG Administratoren webi Abt1Group
Abt1\1.FG.WPWin\Abt1\SEKRETAR.IAT Administratoren webi Abt1Group
Abt1\1.FG.WPWin\Abt1\Spendenbescheinigungen Administratoren webi Abt1Group
Abt1\1.FG.WPWin\Abt1\Spendenlisten Administratoren webi Abt1Group
Abt1\1.FG.WPWin\Abt1\Abt1\Spendenlisten Administratoren webi Abt1Group
Abt1\1.FG.WPWin\Abt1\Abt1\URKUNDEN Administratoren webi Abt1Group
Abt1\1.FG.WPWin\Abt1\Abt1\Vereinsvorstand Administratoren webi Abt1Group
Abt1\1.FG.WPWin\Abt1\Abt1\URKUNDEN\x1996 Administratoren webi Abt1Group
Abt1\1.FG.WPWin\Abt1\Abt1\URKUNDEN\x1997 Administratoren webi Abt1Group
Abt1\1.FG.WPWin\Abt1\Abt1\Vereinsvorstand\2000 Administratoren webi Abt1Group Abt1\1.FG.WPWin\Abt1\Abt1\Vereinsvorstand\2001 Administratoren webi Abt1Group Abt1\1.FG.WPWin\Abt1\Abt1\Vereinsvorstand\2002 Administratoren webi Abt1Group Abt1\1.FG.WPWin\Abt1\Abt1\Vereinsvorstand\2003 Administratoren webi Abt1Group Abt1\1.FG.WPWin\Abt1\Abt1\Vereinsvorstand\2004 Administratoren webi Abt1Group Abt1\1.FG.WPWin\Abt1\Abt1\Vereinsvorstand\2005 Administratoren webi Abt1Group Abt1\1.FG.WPWin\Abt1\Abt1\Vereinsvorstand\festschrift Administratoren webi Abt1Group


Hier wird das Problem mit den Berechtigungen ganz klar!
-----> Alle diese Ordner haben die gleichen Berechtigungen
Kann man das irgendwie umgehen, dass nicht jeder Unterordner in die Conf eingetragen wird? --> Sondern nur wenn sich was ändert!?

zB:
Abt1\1.FG.WPWin\Abt1\Abt1\Vereinsvorstand\2004 Administratoren webi Abt1Group Abt1\1.FG.WPWin\Abt1\Abt1\Vereinsvorstand\2005 Administratoren webi Abt1Group Abt1\1.FG.WPWin\Abt1\Abt1\Vereinsvorstand\2006 Administratoren wihe Abt1Group Abt1\1.FG.WPWin\Abt1\Abt1\Vereinsvorstand\festschrift Administratoren webi Abt1Group _ Abt1\1.FG.WPWin\Abt1\Abt1\Vereinsvorstand\festschrift2 Administratoren balu _ _Abt1\1.FG.WPWin\Abt1\Abt1\Vereinsvorstand\festschrift3 Administratoren balu

_Das zB nur die unterstrichenen(, weil sich das was geändert hat) in die Conf schreiben, sonst habe ich ja elendig lange Apache-Config-File? Geht das irgendwie? Mir fällt da leider keine Logik dazu ein?

Vielen Dank schon mal

Thomas Halinka







D:\Daten\Abt1 VORDEFINIERT\Administratoren:(OI)(CI)F 
                             ERSTELLER-BESITZER:(OI)(CI)(IO)F 
                             TUMORBIO\Abt1:(OI)(CI)F 
                             NT-AUTORIT?T\SYSTEM:(OI)(CI)F 

D:\Daten\XXX VORDEFINIERT\Administratoren:(OI)(CI)F 
             TUMORBIO\XXX:(OI)F 
             TUMORBIO\FS_XXX:(OI)F 
             TUMORBIO\FS_XXXXX:(CI)R 
             TUMORBIO\XXXX:(OI)(CI)R 
             NT-AUTORIT?T\SYSTEM:(OI)(CI)F 

D:\Daten\XXXXX VORDEFINIERT\Administratoren:(OI)(CI)F 
               TUMORBIO\FS_XXXXX:(OI)(CI)F 
               NT-AUTORIT?T\SYSTEM:(OI)(CI)F 

D:\Daten\XXXXXXXX VORDEFINIERT\Administratoren:(OI)(CI)F 
                  TUMORBIO\FS_XXX:(OI)(CI)(special access:)                                  DELETE
                                  READ_CONTROL
                                  SYNCHRONIZE
                                  FILE_GENERIC_READ
                                  FILE_GENERIC_EXECUTE
                                  FILE_READ_DATA
                                  FILE_WRITE_DATA
                                  FILE_APPEND_DATA
                                  FILE_READ_EA
                                  FILE_EXECUTE
                                  FILE_READ_ATTRIBUTES
 
                  TUMORBIO\FS_XXXX:(OI)(CI)(special access:)                                   DELETE
                                   READ_CONTROL
                                   SYNCHRONIZE
                                   FILE_GENERIC_READ
                                   FILE_GENERIC_EXECUTE
                                   FILE_READ_DATA
                                   FILE_WRITE_DATA
                                   FILE_APPEND_DATA
                                   FILE_READ_EA
                                   FILE_EXECUTE
                                   FILE_READ_ATTRIBUTES
 
                  NT-AUTORIT?T\SYSTEM:(OI)(CI)F 

D:\Daten\XXXXXX VORDEFINIERT\Administratoren:(OI)(CI)F 
                TUMORBIO\FS_XXXXXX:(OI)(CI)R 
                NT-AUTORIT?T\SYSTEM:(OI)(CI)F 

Reply to: