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 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 2
    dnes 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

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

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 13
    včera 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

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

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

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

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

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

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

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

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

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

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    24.4. 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 16
    KDE Plasma 6
     (73%)
     (9%)
     (2%)
     (16%)
    Celkem 791 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    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: 207×
    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.