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 04:44 | IT novinky

    Telnet a ssh klient PuTTY postupně přechází na novou doménu putty.software.

    Ladislav Hagara | Komentářů: 1
    16.8. 01:00 | Komunita

    Debian dnes slaví 32 let. Ian Murdock oznámil vydání "Debian Linux Release" 16. srpna 1993.

    Ladislav Hagara | Komentářů: 15
    15.8. 17:44 | IT novinky

    Policisté zadrželi odsouzeného drogového dealera Tomáše Jiřikovského, který daroval ministerstvu spravedlnosti za tehdejšího ministra Pavla Blažka (ODS) bitcoiny v miliardové hodnotě, a zajistili i darovanou kryproměnu. Zadržení Jiřikovského může být podle ministerstva důležité k rozuzlení kauzy, která vypukla koncem května a vedla ke konci Blažka. Zajištění daru podle úřadu potvrzuje závěry dříve publikovaných právních

    … více »
    Ladislav Hagara | Komentářů: 9
    15.8. 13:44 | IT novinky

    Administrativa amerického prezidenta Donalda Trumpa jedná o možném převzetí podílu ve výrobci čipů Intel. Agentuře Bloomberg to řekly zdroje obeznámené se situací. Akcie Intelu v reakci na tuto zprávu výrazně posílily. Trump minulý týden označil Tana za konfliktní osobu, a to kvůli jeho vazbám na čínské společnosti, čímž vyvolal nejistotu ohledně dlouholetého úsilí Intelu o obrat v hospodaření. Po pondělní schůzce však prezident o šéfovi Intelu hovořil příznivě.

    Ladislav Hagara | Komentářů: 4
    15.8. 05:44 | IT novinky

    Společnost Purism stojící za linuxovými telefony a počítači Librem má nově v nabídce postkvantový šifrátor Librem PQC Encryptor.

    Ladislav Hagara | Komentářů: 10
    14.8. 18:00 | Nová verze

    VirtualBox, tj. multiplatformní virtualizační software, byl vydán v nové verzi 7.2. Přehled novinek v Changelogu. Vypíchnou lze vylepšené GUI.

    Ladislav Hagara | Komentářů: 0
    14.8. 14:11 | IT novinky

    Eric Migicovsky, zakladatel společnosti Pebble, v lednu oznámil, že má v plánu spustit výrobu nových hodinek Pebble s již open source PebbleOS. V březnu spustil předprodej hodinek Pebble Time 2 (tenkrát ještě pod názvem Core Time 2) za 225 dolarů s dodáním v prosinci. Včera představil jejich konečný vzhled (YouTube).

    Ladislav Hagara | Komentářů: 31
    14.8. 12:44 | Zajímavý software

    Byla oznámena nativní podpora protokolu ACME (Automated Certificate Management Environment) ve webovém serveru a reverzní proxy NGINX. Modul nginx-acme je zatím v preview verzi.

    Ladislav Hagara | Komentářů: 2
    14.8. 12:22 | Nová verze

    Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    13.8. 11:55 | IT novinky

    Společnost Perplexity AI působící v oblasti umělé inteligence (AI) podala nevyžádanou nabídku na převzetí webového prohlížeče Chrome internetové firmy Google za 34,5 miliardy dolarů (zhruba 723 miliard Kč). Informovala o tom včera agentura Reuters. Upozornila, že výše nabídky výrazně převyšuje hodnotu firmy Perplexity. Společnost Google se podle ní k nabídce zatím nevyjádřila.

    Ladislav Hagara | Komentářů: 5
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (52%)
     (19%)
     (4%)
     (5%)
     (2%)
     (1%)
     (1%)
     (17%)
    Celkem 410 hlasů
     Komentářů: 23, poslední 4.8. 13:01
    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: 223×
    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.