BASH skripta za ustvarjanje uporabnikov in imenikov

Ali zna kdo naresti takole BASH skripto:

Ustvarjanje uporabnikov

Administrator fakultete bi rad pripravil Linux okolje za vaje v novem šolskem letu. Vsakemu študentu želi kreirati uporabniško ime in domači imenik ter vanj presneti datoteke ter imenike, ki se bodo uporabljali na vajah. Tem datotekam želi tudi spremeniti lastnika. Celotna potrebna struktura se nahaja znotraj imenika /home/administrator/vaje .

Napišite skripto v BASHu, ki bo iz datoteke /home/administrator/seznam.txt prebrala imena študentov, njihova uporabniška imena, vpisne številke (vsak zapis je v svoji vrstici, posamezna polja so ločena z vejicami: Ime in priimek,Uporabniško ime,Vpisna številka) ter ustvarila uporabnike in njihove domače imenike(/home/uporabniško_ime). Za geslo uporabite kar vpisno številko, za privzeto lupino pa nastavite bash.

Po vsakem uspešno izvedenem ukazu naj se v datoteko postopek.log doda tekst "Ustvaril sem uporabnika (Polno ime uporabnika) z uporabniškim imenom (uporabniško ime) in vpisno številko (vpisna številka)". V vsakem domačem imeniku uporabnika naj ustvari imenik gradivo in vanj skopira vsebino imenika /home/administrator/vaje, ter imeniku gradivo in vsem podimenikom in datotekam v njih nastavi študenta kot lastnika in skupino (če smo skopirali datoteke v imenik /home/lojze, naj bo lastnik vseh datotek in imenikov znotraj tega imenika lojze).

Skripto shranite v datoteko ustvari.sh

Vsebina datoteke seznam.txt :

Miha Kranjc,mihak,64072394
Joze Pokveka,jozep,64093847
Lojze Novak,lojzen,64090034
Mojca Pesek,mojcap,64120333
Janez Konda,janezk,64120105
Simon Stare,simons,64110378


Če kdo zna ga častim denar ali pivo. Rabil bi pa do 5. aprila

Komentarji

  • Kaj si pa že probal? Domače naloge ti ne bomo delali.

  • #!/bin/bash

    FILE=/home/administrator/seznam.txt

    while IFS=\",\" read line USER USERNAME PASSWORD; do

    useradd -c \"$USER\" -m -b -p $(mkpasswd $PASSWORD) –s /bin/bash;

    echo \"Ustvaril sem uporabnika $USER z uporabniškim imenom $USERNAME in vpisno številko $PASSWORD\">>/home/administrator/postopek.log;

    mkdir /home/$USERNAME/gradivo;

    cp /home/administrator/vaje/* /home/$USERNAME/gradivo;

    chown -R $USERNAME:$USERNAME /home/$USERNAME/gradivo;

    done < $FILE

    Vendar ne prebere pravilno .txt fajla.

    Log napiše tole:

    Ustvaril sem uporabnika mihak z uporabniškim imenom 64072394 in vpisno številko
    Ustvaril sem uporabnika jozep z uporabniškim imenom 64093847 in vpisno številko
    Ustvaril sem uporabnika lojzen z uporabniškim imenom 64090034 in vpisno številko
    Ustvaril sem uporabnika mojcap z uporabniškim imenom 64120333 in vpisno številko
    Ustvaril sem uporabnika janezk z uporabniškim imenom 64120105 in vpisno številko
    Ustvaril sem uporabnika simons z uporabniškim imenom 64110378 in vpisno številko
  • Zato ker imaš en podatek shranjen v $line.
  • Mike0 Član
    uredil/-a 29. March, 2013
    Tole zdej dela, ampak v domačih mapah od userjev so še neki default fajli, ki jih ne bi rabil, mora bit samo mapa gradivo notri.

    Ter geslo ne dela, ker je najbrž treba uporabiti mkpasswd funkcijo.

    Drugače se pa userji naredijo in mape se skopirajo.

    #!/bin/bash

    FILE=/home/administrator/seznam.txt
    LOG=/home/administrator/postopek.log

    while IFS=, read USER USERNAME PASSWORD

    do

    sudo useradd -p $PASSWORD -c \"$USER\" -m -U -s /bin/bash $USERNAME

    echo \"Ustvaril sem uporabnika $USER z uporabniškim imenom $USERNAME in vpisno številko $PASSWORD\">>$LOG;

    sudo mkdir /home/$USERNAME/gradivo

    sudo cp -r /home/administrator/vaje/* /home/$USERNAME/gradivo

    sudo chown -R $USERNAME:$USERNAME /home/$USERNAME/gradivo

    done < $FILE
  • Pa jih zbriši, ker predvidevam, da se ti ne da brat dokumentacije od useradd.
  • @Mike0:
    man useradd
  • MiranR Član
    uredil/-a 31. March, 2013
    Se bom tukaj prilepil s vprašanjem.

    Kako to uredite, da naprimer prilepite vrstico iz konzole. Ko mi se kje zaplete, potem vzamem fotkič, in potem sliko na internet in tako nato v forum, za razlogo težav.

    tukaj pa vidim v prešnjem zapisu:

    man useradd


    tole črno vrstico. Predvidevam, da obstaja enostaven način.
    HVALA
  • https://www.ubuntu.si/punbb/post/39746/#p39746

    Torej na kratko.. skopiraš tisto kar piše v terminalu (označiš -> desni klik -> copy/kopiraj) ter nato prilepiš na forum, spet označiš ter klikneš na ikonco s puščicami <- -> ki je levo od smajlijev :)

    če želiš ročno pa vpišeš ['code'] skopiraš vsebino znotraj ter zapreš vsebino z [/'code'] .. brez narekovajev :)
Za komentiranje se prijavite ali pa se vpišite.