abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 18:11 | IT novinky

    Dnes a zítra probíhá vývojářská konference Google I/O 2025. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).

    Ladislav Hagara | Komentářů: 0
    dnes 15:22 | Komunita

    V Bostonu probíhá konference Red Hat Summit 2025. Vybrané přednášky lze sledovat na YouTube. Dění lze sledovat na síti 𝕏 (#RHSummit).

    Ladislav Hagara | Komentářů: 0
    dnes 15:00 | Nová verze

    Společnost Red Hat oficiálně oznámila vydání Red Hat Enterprise Linuxu 10. Vedle nových vlastností přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 1
    dnes 12:22 | Pozvánky

    Tuto sobotu 24. května se koná historicky první komunitní den projektu Home Assistant. Zváni jsou všichni příznivci, nadšenci a uživatelé tohoto projektu. Pro účast je potřebná registrace. Odkazy na akce v Praze a v Bratislavě.

    jose17 | Komentářů: 0
    dnes 04:44 | IT novinky

    Troy Hunt představil Have I Been Pwned 2.0, tj. nový vylepšený web služby, kde si uživatelé mohou zkontrolovat, zda se jejich hesla a osobní údaje neobjevili v únicích dat a případně se nechat na další úniky upozorňovat.

    Ladislav Hagara | Komentářů: 13
    včera 23:22 | Zajímavý software

    Microsoft představil open source textový editor Edit bežící v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 7
    včera 22:22 | Zajímavý software

    V Seattlu a také online probíhá konference Microsoft Build 2025. Microsoft představuje své novinky. Windows Subsystem for Linux je nově open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 0
    včera 13:11 | Zajímavý článek

    Z příspěvku Turris Sentinel – co přinesl rok 2024 na blogu CZ.NIC: "Za poslední rok (únor 2024 – únor 2025) jsme zachytili 8,3 miliardy incidentů a to z 232 zemí a z jejich závislých území. Tyto útoky přišly od 6,2 milionu útočníků (respektive unikátních adres). SMTP minipot je stále nejlákavější pastí, zhruba 79 % útoků bylo směřováno na tento minipot, 16 % útoků směřovalo na minipot Telnet, 3 % útoků směřovaly na minipot HTTP a 2 % na minipot FTP. Dále jsme zaznamenali 3,2 milionu unikátních hesel a 318 tisíc unikátních loginů, které útočníci zkoušeli."

    Ladislav Hagara | Komentářů: 1
    včera 12:44 | Nová verze

    Byla vydána (Mastodon, 𝕏) nová verze 3.0.4 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 12:33 | Nová verze

    Byla vydána nová stabilní verze 7.4 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 136. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (60%)
     (23%)
     (9%)
     (2%)
     (0%)
     (0%)
     (6%)
    Celkem 47 hlasů
     Komentářů: 5, poslední dnes 20:57
    Rozcestník

    LDAP: šablony pro LDIF

    11.1.2007 02:02 | Přečteno: 1882× | Linux | Výběrový blog | poslední úprava: 11.1.2007 03:54

    V poslední mě zajímá LDAP v pozici zdroje dat pro DHCP, DNS, atd... Do LDAP databáze je potřeba často hromadně sypat data získaná skriptem, ve formátu LDIF. Příklad záznamu v LDIFu:

    dn: cn=lenovo,cn=192.168.0.0,cn=DHCP Config,dc=firma,dc=cz
    cn: lenovo
    dhcpHWAddress: ethernet XX:YY:XX:YY:XX:YY
    dhcpStatements: fixed-address 192.168.0.10
    objectClass: top
    objectClass: dhcpHost
    

    Kostru záznamu jednoduše popíšeme šablonou (soubor dhcphost.tpl):

    @include base.conf
    @include net.conf
    dn: cn=%HOSTNAME%,cn=%SUBNETNUMBER%,cn=DHCP Config,%BASEDN%
    cn: %HOSTNAME%
    dhcpHWAddress: ethernet %MACADDRESS%
    dhcpStatements: fixed-address %IPHOSTNUMBER%
    objectClass: top
    objectClass: dhcpHost
    

    ... kde proměnné jsou rozlišeny procenty. Některé parametry jako maska podsítě a basedn jsou neměnné, uložíme je do souboru base.conf:

    %BASEDN%        dc=firma,dc=cz
    

    ...a net.conf:

    %SUBNETNUMBER%  192.168.0.0
    %SUBNETMASK%    255.255.255.0
    %DHCPSERVER%    server1
    

    Následující skript (soubor makeldif.sh) generuje LDIFy:

    #!/bin/bash
    
    #check if file exists
    check_file()
    {
            if [ ! -e $1 ]; then
                    die "File doesn't exist: $1"
            fi
    }
    
    #include definitions from file
    include()
    {
            include_file=$1
            check_file $include_file
    
            #read line by line
            grep -v '#' $include_file | while read line; do
                    create_regexp   "$(echo $line | awk '{print $1}')" \
                                    "$(echo $line | awk '{print $2}')"
            done
    }
    
    #create regular expression
    create_regexp()
    {
            echo -n "s/$1/$2/g;" >> $regexp_file
    }
    
    #Show usage informations and exit
    die()
    {
            echo $1
            echo "Usage: $0 [parameters] template_file" > /dev/stderr
            echo "Parameters: %VARIABLE1% value1 %VARIABLE2% value2 ..." > /dev/stderr
            exit 1
    }
    
    regexp_file=regexp.tmp
    rm -f $regexp_file
    
    #exclude last param
    param_count=$(expr $# - 1)
    
    #check if params count is correct
    if [ $(expr $param_count % 2) -ne 0 ]; then
            die "Wrong parameters: $@"
    fi
    
    #read command-line params and create regexp from them
    for param in $(seq 1 2 $param_count); do
            create_regexp $1 $2
            shift; shift
    done
    
    template_file=$1
    check_file $template_file
    
    #include all files in this directive: @include filename
    include_files="$(grep '@include' $template_file | awk '{print $2}')"
    for include_file in $include_files ; do
            include $include_file
    done
    
    #read template_file and process it using sed and regexp from $regexp_file
    grep -v '@include' $template_file | sed "$(cat $regexp_file)"
    exit $?
    

    Voláním příkazu:

    ./makeldif.sh %HOSTNAME% lenovo %MACADDRESS% XX:YY:XX:YY:XX:YY %IPHOSTNUMBER% 192.160.0.10 dhcphost.tpl
    

    ... vygenerujeme nahoře uvedený LDIF. Toto je interface pro generování LDIFů. Teď můžeme jednoduše generovat podobné LDIFy např. takto:

    #!/bin/bash
    
    ip=$(/sbin/ifconfig | head -2 | grep inet | awk '{print $2}' | cut -d : -f 2)
    mac=$(/sbin/ifconfig | head -1 | awk '{print $5}')
    
    ./makeldif.sh %HOSTNAME% $HOSTNAME %MACADDRESS% $mac %IPHOSTNUMBER% $ip dhcphost.tpl
    

    Skriptů bylo pro dnešek dost a vy si je můžete všechny stáhnout zde a vyzkoušet. Až mě zas něco napadne, tak to plácnu do blogu... ;-)

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    11.1.2007 07:13 Martin Beránek | skóre: 33 | blog: mousehouse | Brno
    Rozbalit Rozbalit vše Re: LDAP: šablony pro LDIF
    jenom mi to pripomelo: neznate nekdo nastroj ktery umoznuje pohodlne tahat data z ldapu/ldif a poradi si s base64 polozkami - zatim to resim dost hnusnym skryptem (dalsi nepekna vec je to, ze nektere polozky jsou na vice radku)
    never use rm after eight
    11.1.2007 10:37 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: LDAP: šablony pro LDIF
    python-ldap? Commandline nástroje z ldap-utils jsou opravdu dosti nepříjemné. ldapsearch umí ten base64 výstup pro non-ascii nějakým switchem vypnout.
    Táto, ty de byl? V práci, já debil.
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.