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 15:11 | Komunita

    Na webu konference Den IPv6, která se konala 4. června v Národní technické knihovně v pražských Dejvicích, jsou nyní k dispozici všechny prezentace (v PDF) a jejich videozáznamy. Organizátory konference byly i letos sdružení CESNET, CZ.NIC a NIX.CZ.

    VSladek | Komentářů: 0
    dnes 13:11 | Nová verze

    Byla vydána nová verze 9.1.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Vypíchnout lze vylepšené vyhledávání nebo podporu Pixel Motion Photos. Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.

    Ladislav Hagara | Komentářů: 0
    dnes 11:44 | Pozvánky

    Přihlaste svou přednášku na další ročník konference LinuxDays, který proběhne 3. a 4. října na FIT ČVUT v pražských Dejvicích. Příjem témat poběží do konce prázdnin, pak proběhne veřejné hlasování a následně sestavení programu.

    Petr Krčmář | Komentářů: 2
    dnes 04:44 | Nová verze

    Byla vydána nová verze 2.4.68 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 13 zranitelností.

    Ladislav Hagara | Komentářů: 2
    včera 22:44 | IT novinky

    Apple na své vývojářské konferenci WWDC26 (Worldwide Developers Conference, keynote) představil řadu novinek. Vypíchnout lze novou generaci Apple Intelligence a zbrusu novou Siri, která dostala název Siri AI. Kvůli Aktu o digitálních trzích (DMA) však funkce Siri AI nebudou v systémech iOS 27 a iPadOS 27 k dispozici uživatelům v Evropské unii.

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

    Byla vydána nová verze 1.18.0 distribučního frameworku Flatpak (Wikipedie), tj. technologie umožňující distribuovat aplikace v podobě jednoho instalačního souboru na různé linuxové distribuce a jejich různá vydání. Přehled novinek na GitHubu. Vypíchnout lze podporu rozhraní /dev/kfd pro výpočty na kartách AMD (AMDKFD).

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | Nová verze

    aMule (Wikipedie), tj. multiplatformní klient pro peer-to-peer sdílení souborů pro sítě eD2k and Kademlia, byl po více než pěti letech od vydání poslední verze 2.3.3, vydán v nové major verzi 3.0.0 (GitHub). S novou webovou stránkou a dokumentací.

    Ladislav Hagara | Komentářů: 5
    včera 12:55 | IT novinky

    Byly vyhlášeni vítězové a zveřejněny vítězné zdrojové kódy (YouTube, GitHub) již 29. ročníku soutěže International Obfuscated C Code Contest (IOCCC), tj. soutěže o nejnepřehlednější (nejobfuskovanější) zdrojový kód v jazyce C.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | IT novinky

    Evropská komise předložila evropský balíček pro technologickou suverenitu, tedy soubor opatření, která mají posílit kapacity EU v oblasti polovodičů, umělé inteligence, cloudu a open source. To Evropě pomůže stát se lídrem v oblasti umělé inteligence, posílit její digitální autonomii a vytvářet podmínky pro udržitelnější digitální budoucnost.

    Ladislav Hagara | Komentářů: 14
    včera 04:44 | Nová verze

    OpenCV (Open Source Computer Vision, Wikipedie), tj. open source multiplatformní knihovna pro zpracování obrazu a počítačové vidění, byla vydána v nové major verzi 5.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (15%)
     (31%)
     (3%)
     (6%)
     (3%)
     (15%)
     (26%)
    Celkem 1855 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: Skript pro zakládání uživatelů (odměna)

    18.3.2007 14:47 Ltb
    Skript pro zakládání uživatelů (odměna)
    Přečteno: 263×
    Ahoj všem, potřeboval bych pomoci s 1 skriptem na Linux, sám ho bohužel asi nezvládnu :-/

    Zadání je tohle: Napište skript, který založí do sys. nového uživatele tj. 1) zeptá se na login-name 2) zkontroluje zda takové jméno již neexistuje, pokud ano, vrací se na 1 3) přidělí uživateli UID (o 1 vyšší než předchozí user) 4) zeptá se na GID a na jméno login-shellu 5) zkontroluje, zda existuje; pokud ne, opakuje bod 5 6) přidá odpovídající řádku do /etc/passwd 7) vytvoří v adresáři /home domovský adresář uživatele 8) přidělí uživateli práva k jeho domovskému adresáři

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

    Zvládl by mi to někdo napsat? Jsem ochoten věnovat odměnu 250kč ;-)

    Díky, zdraví

    Ltb

    Odpovědi

    18.3.2007 14:55 pasmen | skóre: 45 | blog: glob | Praha
    Rozbalit Rozbalit vše Re: Skript pro zakládání uživatelů (odměna)
    adduser tohle dela za tebe...
    kozzi avatar 18.3.2007 14:59 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
    Rozbalit Rozbalit vše Re: Skript pro zakládání uživatelů (odměna)
    1.) Kčemu to potřebuješ existuje dost podobných skriptů co dělají něco podobného 2.) Pokud to máš do školy, tak si to udělej sám není to zas tak těžký 3.) V jakým jazyce to má být?
    Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
    18.3.2007 15:02 Pavel1 | skóre: 33
    Rozbalit Rozbalit vše Re: Skript pro zakládání uživatelů (odměna)
    Troufám si tvrdit, že to zde zvládne naprostá většina, nebo alepoń hodně uživatelů L. I Ty by jsi to zvládnul, kdyby jsi chtěl. Ty ale evidentně nechceš, nebo nemáš zájem se v Linuxu naučit elemntárním věcem a zvládnout pár základních příkazů. Protože kdyby jsi chtěl a trošku se zde a jinde porozhlédl, zjistil bys, že na tom nic není. Předpokládám, že to máš nějaký dom.ú. Nechápu, proč chodíš na školu a na obor, který Tě asi moc nezajímá. To je ale Tvá věc. Jinak pokud si opravdu netroufáš a nikdo by Ti to neudělal, pošli mi e-mail, mohu Ti pomoci. Výsledek tu ale zveřejníme.
    18.3.2007 16:33 sh
    Rozbalit Rozbalit vše Re: Skript pro zakládání uživatelů (odměna)
    Takové nějaké skripty mám ještě z dob studií schované. Nedělají sice přesně to, co chcete a tak, jak chcete, ale být vámi se na ně podívám a zkusím znovu zvážit, jestli to FAKT nezvládnete, protože je to opravdu jednoduché, a byla by věru ostuda kvůli takové hlouposti podvádět, budete pak mít těžký spaní :D

    Co to je za školu?

    adduser.sh:
    
    #!/bin/bash
    
    
    while true; do
      echo -n "Enter login name: "
      read LOGNAME
      LEN=`echo "$LOGNAME" | wc -c`
      if [ "$LEN" -gt 8 ] ; then
        echo Name too long
        continue
      fi
      if echo "$LOGNAME" | grep [^a-z]; then
        echo Only small letters allowed
        continue
      fi
      break
    done
    
    
    _UID=`tail -1 /etc/passwd |awk -F : '{print $3 + 1}'`
    echo -n "Enter UID: "
       read _UIDOK
       if [ "$_UIDOK" = "" ] ; then
         _UIDOK=$_UID
       elif [ "`grep $_UIDOK /etc/passwd | awk -F : '{print $3}'`" = "" ] ; then
         _UIDOK=$_UID
       else
         echo "ERROR: UID in use"
         exit 1
      fi
    
    _GID=`grep users /etc/group |awk -F : '{print $3}'`
    echo -n "Enter GID: "
      read _GIDOK
      if [ "$_GIDOK" = "" ]; then
        _GIDOK=$_GID
      elif [ "`grep $_GIDOK /etc/group`" = "" ] ; then
        echo "ERROR: Group $_GIDOK does not exist"
        exit 1
      fi
    
    
    echo -n "Enter home directory: [/home/$LOGNAME] "
     read _HOME
      if [ "$_HOME" = "" ]; then
        _HOME="/home/$LOGNAME"
      fi
    
    echo -n "Enter login shell: [/bin/bash] "
    read _SHELL
    if [ "$_SHELL" = "" ]; then
      _SHELL=/bin/bash
    fi
    if [ ! \( -x $_SHELL \) ] ; then
      echo Shell does not exist or is not executable
      exit 1
    fi
    
    echo -n "Enter real name:  "
    read _REALNAME
    
    
    echo 
    echo This is the information you entered:
    echo 
    echo User ID is: $_UIDOK
    echo Group ID is: $_GIDOK
    echo Home is: $_HOME
    echo Login shell is: $_SHELL
    echo Real name is: $_REALNAME
    echo
    echo /etc/passwd entry will be:
    echo $LOGNAME:???:$_UIDOK:$_GIDOK:$_REALNAME:$_HOME:$_SHELL
    echo 
    echo -n "Is this correct? (y/n) "
    read _verify
     if [ "$_verify" = n ]; then
       echo Exiting ...
       exit 1
     else 
      echo "Adding user $LOGNAME to system"
      # useradd -u $_UIDOK -g $_GIDOK -d $_HOME -s $_SHELL -c "$_REALNAME"  $LOGNAME
      # cp -r /etc/skel $_HOME 
      # chown -R $_UIDOK:$_GIDOK $_HOME 
      # passwd $LOGNAME 
    fi
    
    
    userid.sh:
    
    #!/bin/bash
    if [ $# != 1 ] ; then
      echo Usage: `basename $0` username
      exit 1 
    fi 
    
    _UID=`grep -F -w $1 /etc/passwd | awk -F : '{print $3}'`
    if [ "$_UID" = "" ] ; then
      echo Error: User $1 not found
    else
      echo User $1 has UID=$_UID
    fi
    
    18.3.2007 18:03 Ltb
    Rozbalit Rozbalit vše Re: Skript pro zakládání uživatelů (odměna)
    Ahoj,

    díky všem za reakce na můj dotaz/prosbu!

    K vašim dotazům: - ANO, je to DU a věřím tomu, že pro většinu z vás je to jednoduché. Já se svými skromnými NEznalostmi linuxu bych na tom strávil nejméně 1 den, což je ale celkem dost :-/ Linuxu sice fandím, ale nevěnuji se mu a předpokládám, že v budoucnu ani nebudu => byl by to pro mne opravdu ztracený čas. To vám raději někomu věnuji 1 dvojté KFC MENU. Se zvěřejněním skriptu tady samozř. souhlasím, od toho je to poradna ;)

    Zdraví

    Ltb
    18.3.2007 18:42 martyone | skóre: 18
    Rozbalit Rozbalit vše Re: Skript pro zakládání uživatelů (odměna)
    Jen bych Vás rád upozornil, že učitelé (zvláště takovýchto předmětů) většinou nejsou blbí, a google hledá až překvapivě dobře - nevím kterou školu navštěvujete Vy, ale na naší za podobné srandy několik lidí (o kterých jsem slyšel) vyletělo ;-) tak aby Vám to za to stálo..
    1.4.2007 22:35 Ltb
    Rozbalit Rozbalit vše Re: Skript pro zakládání uživatelů (odměna)
    Ahoj všem, za nezanedbatelné pomoci Pavla (kterému tímto díky :-)) nakonec vzniknul skript, který odpovídá zadání viz. příspěvek úplně nahoře.
    #!/bin/bash
    
    # pridani noveho uzivatele (mensi uzivatelska nadstavba nad prikaz "useradd")
    
    echo
    echo " Pridani noveho uzivatele do systemu (pouze Enter -> predcasne ukonceni)"
    echo
    
    
    # jmeno
    while [ "$xJmeno" == "" ]; do
      echo -n "              Zadej jmeno pro noveho uzivatele : ";  read xJmeno
      # nic nezadano -> ukonceni skriptu
      [ "$xJmeno" == "" ] && {  echo " ! Predcasne koncim skript ...";  exit;  }
      # kontrola, zda zadany uzivatel jiz existuje (hleda prvni retezec od zacatku radku do prvni dvojtecky)
      if grep "^$xJmeno:" /etc/passwd > /dev/null;  then
        echo " Uzivatel \"$xJmeno\" jiz existuje, zadej jine jmeno!"
        xJmeno=""
      fi
    done
    
    
    # Nasledujici akci - zjisteni a urceni posledniho pouziteho UID zvyseneho o 1 
    #  dela sam prikaz useradd, zde to ale udelame rucne
    # Predpokladame, ze na poslednim radku je posledni platny uzivatel :
    #  z posledniho radku /etc/passwd nacteme UID (3 polozka mezi : ) a zvysime ji o 1
    xUID="$[$(sed -n "$ s#^[^:]*:[^:]*:\([0-9]\+\):.*#\1#p" /etc/passwd) + 1]"
    
    
    # GID
    while [ "$xGID" == "" ]; do
      # najde doporucene GID pro skupinu users  
      x="$(sed -n "/^users:/ s#^[^:]*:[^:]*:\([0-9]\+\):.*#(doporucuji: \1 pro skupinu users) #p" /etc/group)"
      echo -n " Zadej GID $x: ";  read xGID
      # nic nezadano -> ukonceni skriptu
      [ "$xGID" == "" ] && {  echo " ! Predcasne koncim skript ...";  exit;  }
      # kontrola, zda skupina existuje (hleda 3 retezec od zacatku radku, polozky jsou oddelene : )
      if ! grep "^[^:]*:[^:]*:$xGID:" /etc/group > /dev/null;  then
        echo " Skupina s GID=$xGID neexistuje, musis zadat nejakou platnou:"
        sed -n "s#^\([^:]*\):[^:]*:\([0-9]\+\):.*#GID=\2 \t \1#p" /etc/group  # vypise seznam skupin
        xGID=""
      fi
    done
    
    
    # login shell
    while [ "$xShell" == "" ]; do
      echo -n "               Zadej login shell (1=/bin/bash) : ";  read xShell
      # nic nezadano -> ukonceni skriptu
      [ "$xShell" == "" ] && {  echo " ! Predcasne koncim skript ...";  exit;  }
      # preddefinovany shell
      [ "$xShell" == "1" ] && xShell="/bin/bash"
      # kontrola na existenci a spustitelnost souboru (shellu)
      [ -x "$xShell" ] || {  echo " Zadany shell \"$xShell\" neni platny (neexistuje, nebo neni spustitelny) !";  xShell="";  }
    done
    
    
    echo
    echo " Shrnuti:"
    echo "  Jmeno       : $xJmeno"
    echo "  UID         : $xUID"
    echo "  GID         : $xGID"
    echo "  Login shell : $xShell"
    echo
    echo -n " Pridat tohoto noveho uzivatele do systemu ? Ano=a : ";  read x
    echo
    if [ "$x" == "a" ]; then
      # pridani uzivatele; pokud se zdari, jeste nastavit heslo
      if useradd -u $xUID -g $xGID -G $xGID -m -s $xShell $xJmeno; then
        # prikaz useradd zalozi noveho uzivatele, nastavi mu UID, GID (a prida ho do teto skupiny), nastavi
        #  mu shell, vytvori HOME adresar, nakopipruje do nej vychozi soubory a nastavi vlastnika, 
        # takze nasledujici prikazy jsou jiz zbytecne (viz. man useradd):
        # cp -r /etc/skel "/home/$xJmeno"       # nakopirovani zakladnich souboru do dom.adresare
        # chown -R $xUID:$xGID "/home/$xJmeno"  # nastavi vlastnika
        echo " Uzivatel \"$xJmeno\" pridan do systemu:  useradd -u $xUID -g $xGID -G $xGID -m -s $xShell $xJmeno"
        echo " Nyni je nutne mu jeste nastavit heslo:"
        passwd $xJmeno
      fi
    else
      echo " Koncim ...  Uzivatel \"$xJmeno\" nepridan do systemu !"
    fi
    Mějte se fajn,

    Ltb

    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.