abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 23:22 | Nová verze

    Hudební přehrávač Amarok byl vydán v nové major verzi 3.0 postavené na Qt5/KDE Frameworks 5. Předchozí verze 2.9.0 vyšla před 6 lety a byla postavená na Qt4. Portace na Qt6/KDE Frameworks 6 by měla začít v následujících měsících.

    Ladislav Hagara | Komentářů: 0
    dnes 21:44 | Komunita

    Ubuntu 24.10 bude Oracular Oriole (věštecká žluva).

    Ladislav Hagara | Komentářů: 1
    dnes 20:22 | Nová verze

    Byla vydána nová verze 2.45.0 distribuovaného systému správy verzí Git. Přispělo 96 vývojářů, z toho 38 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání. Vypíchnout lze počáteční podporu repozitářů, ve kterých lze používat SHA-1 i SHA-256.

    Ladislav Hagara | Komentářů: 0
    dnes 13:33 | IT novinky

    Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".

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

    Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 03:22 | Zajímavý článek

    V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …

    Ladislav Hagara | Komentářů: 0
    včera 00:11 | Nová verze

    Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.

    Ladislav Hagara | Komentářů: 7
    27.4. 17:44 | Nová verze

    Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.4. 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 12
    KDE Plasma 6
     (75%)
     (8%)
     (2%)
     (15%)
    Celkem 882 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: Hromadna zmena hesel

    13.8.2008 18:58 ahlstrom | skóre: 2
    Hromadna zmena hesel
    Přečteno: 774×
    Ahoj, potreboval bych v C vytvorit program, ktery vytvori hromadne nove uzivatele a nastavi jim defaultni heslo. Vytvoreni uzivatele probiha pomoci prikazu system() a predani argumentu (prikazu) ktery se ma spustit. U vytvoreni uzivatele spoustim externi prikaz useradd. Nasledne mu chci zmenit heslo pomoci prikazu passwd, jenze on ceka na vstup z prikazove radky.
    snprintf( change_passwd, sizeof( change_passwd ), "passwd %s", login );
    system( change_passwd ); // zde ceka

    Nevite jak mu mam to heslo predat? Tento program pobezi na solarisu ne na linuxu, tudiz prikaz useradd v solarisu neumoznuje pri vytvoreni uzivatele pridat jako parametr heslo. Prilozeny program (viz nize) neni kompletni, protoze jednotlivi uzivatele pro vytvoreni a jejich parametry se budou nacitat z externiho souboru. Tohle je demonstracni priklad. O radu abych si vytvoril skript v perlu nebo bashi nestojim.
    #include < stdio.h>
    
    #define USERADD "/usr/sbin/useradd"
    #define BASH    "/bin/bash"
    
    int main( void )
    {
            char create_user[ 200 ];
            char change_passwd[ 200 ];
    
            const char *uid = "691";
            const char *gid = "100";
            const char *home_dir = "/home/jenik";
            const char *first_name = "Adam";
            const char *last_name = "Jenik";
            const char *login = "jenik";
            const char *password = "heslo";
    
            snprintf( create_user, sizeof( create_user ), "%s -u %s -g %s -d %s -m -s %s -c \"PRAHA / %s %s\" %s", USERADD, uid, gid, home_dir, BASH, first_name, last_name, login );
            snprintf( change_passwd, sizeof( change_passwd ), "passwd %s", login );
    
            printf( "%s\n%s\n", create_user, change_passwd );
    
            system( create_user );
            system( change_passwd );
            return 0;
    }
    
    
    

    Odpovědi

    14.8.2008 09:48 melkors | skóre: 13 | blog: kdo_chce_kam
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    Jen idea: Na Solarisu funguje|fungovala utilitka vipw.
    14.8.2008 09:56 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    Iba myslienka: ked to uz robit z C kodu, preco pouzivat CLI utility? Neslo by to nakodovat "priamo", t.j. v najhorsom moznom pripade prepocitat heslo na prislusny hash a vlastne vygenerovat cely riadok pre passwd, master.passwd ci master.shadow? Patrne na to budu rovno kniznicne funkcie; treba sa pozriet do zrojakov programu, ktory to realne robi a urobit to iste. (Alebo vlastne prave na to sa pytas, ako to urobit?)
    14.8.2008 14:29 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    crypt(), getspent(), putspent()
    15.8.2008 10:16 ahlstrom | skóre: 2
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    Uvazoval jsem nad tim take, ale jednodussi bude pouzit prikazy z CLI. Duvodem proc to nechci mit naprogramovane pomoci skriptu v bashi, je ten, ze bash na tom solarisu nainstalovany neni. Jedine obycejny shell /bin/sh.
    15.8.2008 10:26 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    sh = Bourne shell
    bash = Bourne Again shell

    t.j. ak použijete len základné veci, skript pobeží aj pod vašim sh, aj pod bash

    15.8.2008 11:14 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    Nenapadá mne žádný důvod, proč by vám na tohle sh neměl stačit.
    25.8.2008 14:20 ahlstrom | skóre: 2
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    Dobre, asi mas pravdu, ze by to bylo lepsi napsat v shellu. Problem je v tom, ze v shellu neumim, proto chci vyuzit jazyka C.
    14.8.2008 10:52 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    o radu "bash" nestojíš? to si radšej ten trojriadkový skript v bash-i chybovo naprogramuješ v C? Keď už používaš system, kde máš vo výslednom reťazci uvodzovky?

    skús niečo na tento spôsob ...

    if (! fork ()) {
      execlp ("adduser", "-u", username, "-p", password, "-u", uid, NULL);
    }
    
    14.8.2008 13:03 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    o radu "bash" nestojíš? to si radšej ten trojriadkový skript v bash-i chybovo naprogramuješ v C?
    Ono asi ten "trojriadkovy skript" ma byt sucastou niecoho ovela vacsieho, co bude napisane v C.
    Tento program pobezi na solarisu ne na linuxu, tudiz prikaz useradd v solarisu neumoznuje pri vytvoreni uzivatele pridat jako parametr heslo.
    15.8.2008 10:09 ahlstrom | skóre: 2
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    retezec se naparsuje pomoci snprintf
    #define USERADD "/usr/sbin/useradd"
    #define BASH    "/bin/bash"
    snprintf( create_user, sizeof( create_user ), "%s -u %s -g %s -d %s -m -s %s -c \"PRAHA / %s %s\" %s", USERADD, uid, gid, home_dir, BASH, first_name, last_name, login );
    system( create_user );
    15.8.2008 10:13 ahlstrom | skóre: 2
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    problem je v tom ze na solarisu nemuzes v prikazu "adduser" zadat jako paramatr heslo ( -p pass )
    14.8.2008 14:31 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    Není na tom Solarisu příkaz chpasswd?
    15.8.2008 09:49 ahlstrom | skóre: 2
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    na tom solarisu je prikaz passwd, ale kdyz se tento prikaz provede tak ceka na na uzivatele az zada heslo z klavesnice a ja potrebuji aby se to heslo nacetlo ze souboru
    15.8.2008 10:00 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    Ptal jsem se na chpasswd, ne passwd.
    15.8.2008 10:06 ahlstrom | skóre: 2
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    neni
    15.8.2008 11:16 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    Tak bych si zkusil stáhnout zdrojáky toho linuxového a přeložit na Solarisu. Nebo spíš použít výše uvedené funkce.
    AraxoN avatar 16.8.2008 22:19 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    A čo takto heslo dvakrát zapísať niekam do súboru a v passwd presmerovať vstup?
    passwd user </subor/s/heslom.txt
    16.8.2008 22:33 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel

    Zhlediska programu pgmje jedno, jestli napíšete

      pgm < file
    

    nebo

      cat file | pgm
    

    Program v tom neuvidí žádný rozdíl. Zaznamenáte ho jen vy, protože ve druhém případě se vyrojí zástup lidí s rádoby vtipnými poznámkymi o soutěži ve zbytečném používání příkazu cat.

    AraxoN avatar 16.8.2008 22:39 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    A? Nejak mi nedochádza, prečo reaguješ práve na mňa... Jediný kto tu cat spomína, si ty. ;-)
    16.8.2008 23:09 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    Protože nefunguje-li poslání hesla přes rouru, nebude fungovat ani přesměrování vstupu.
    13.9.2008 23:49 luky
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    Kdyz to napisete jen tak, tak se ten zastup nevyroji. Kdyz napisete, ze pro dane ucely to staci, tak zmlknou. Kdyz budete popichovat s tim, ze je to absolutni blbost, tak je jasne, ze se nekdo ozve. Vime? ;-)
    13.9.2008 23:59 luky
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel

    Kdyz uz to pisete takhle blbe, tak opravdu neni duvod nepouzit shell skript. Na editaci zaznamu o uzivatelich funkcemi k tomu urcenymi, jak vas nasmeroval "14.8. 14:29 Michal Kubeček", taky neni nic tezkeho.

    Ale pokud tedy trvate na spousteni prikazu s presmerovanym I/O, tak si probehnete man pro fork/wait/exec, dup/pipe/select. A myslim, ze passwd vyzaduje, aby byl vstup z tty (pty), takze jeste man pts.

    14.9.2008 00:00 luky
    Rozbalit Rozbalit vše Re: Hromadna zmena hesel
    Hm, a ja pisu k mesic stare diskuzi, takze nic :-)

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.