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 17:33 | Bezpečnostní upozornění

    Experti na kybernetickou bezpečnost potvrdili (en) největší dosud zaznamenaný únik dat. Hackeři při něm odkryli skoro 16 miliard přihlašovacích údajů z celého světa včetně účtů společností Google, Apple, Facebook, dalších sociálních sítí nebo některých serverů státní správy.

    Ladislav Hagara | Komentářů: 1
    včera 19:55 | IT novinky

    Společnost Meta ve spolupráci se společností Oakley oznámila řadu chytrých brýlí Oakley. První Oakley Meta HSTN si lze předobjednat za 499 dolarů.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | IT novinky

    Ministerstvo průmyslu a obchodu (MPO) vyjádřilo podporu předložení projektu AI Gigafactory CZ, který do veřejné konzultace Evropské komise zaslala společnost České Radiokomunikace (CRA) v rámci iniciativy Project AIGF CZ. Jde o významný krok k rozvoji výpočetní infrastruktury pro umělou inteligenci (AI), která je prioritou resortu. Projekt je v souladu s cíli Národní strategie umělé inteligence ČR 2030 a je již součástí návrhu

    … více »
    Ladislav Hagara | Komentářů: 11
    včera 13:11 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 154 (pdf). S podtitulem Automatizace domácnosti.

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

    Americký prezident Donald Trump podepsal exekutivní příkaz, který prodlužuje lhůtu pro prodej amerických aktiv aplikace TikTok vlastněné čínskou společností ByteDance do amerických rukou o dalších 90 dnů. Americký Kongres loni v dubnu kvůli bezpečnostním obavám přijal zákon, podle kterého měl vstoupit v platnost zákaz sítě TikTok v USA v případě, že se prodej neuskuteční do 19. ledna. Trump však v lednu lhůtu pro prodej prodloužil o 75 dnů. V dubnu pak přikročil k prodloužení o dalších 75 dnů, lhůta tak měla vypršet dnešním dnem.

    Ladislav Hagara | Komentářů: 4
    včera 12:11 | IT novinky

    Microsoft hodlá zrušit další tisíce pracovních míst, a to především v obchodních odděleních. Předchozí kolo propouštění se uskutečnilo v květnu a dotklo se 6000 zaměstnanců. Vedení firmy již dříve upozornilo, že vzhledem k rozsáhlým investicím do umělé inteligence (AI) se bude snažit omezovat výdaje v jiných oblastech.

    Ladislav Hagara | Komentářů: 5
    19.6. 18:44 | IT novinky

    Společnost Murena ve spolupráci se společností Qwant představila vyhledávač Murena Find. Ve výchozím nastavení bude používán v mobilním operačním systému /e/OS a v Murena Workspace.

    Ladislav Hagara | Komentářů: 0
    19.6. 13:00 | IT novinky

    V mobilní aplikaci Facebooku se lze nově přihlašovat pomocí Passkeys.

    Ladislav Hagara | Komentářů: 3
    19.6. 12:44 | IT novinky

    Společnost Midjourney představila vlastní generátor videí pomocí umělé inteligence (AI) V1 Video Model.

    Ladislav Hagara | Komentářů: 0
    18.6. 23:22 | Nová verze

    Editor kódu Zed (Wikipedie) má nově v sobě integrovaný debugger. Podporuje Rust, C/C++, JavaScript, Go, Python a pomocí rozšíření i další programovací jazyky.

    Ladislav Hagara | Komentářů: 7
    Jaký je váš oblíbený skriptovací jazyk?
     (57%)
     (29%)
     (7%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 290 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    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.