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 06:00 | Nová verze

Po necelém roce od vydání verze 0.67 byla vydána verze 0.68 populárního telnet a ssh klienta PuTTY. Podrobnosti v přehledu změn. Řešeny jsou také bezpečnostní chyby.

Ladislav Hagara | Komentářů: 0
včera 21:32 | Nasazení Linuxu

Canonical představuje nejnovější verzi chytré helmy DAQRI s Ubuntu pro rozšířenou realitu. K vidění bude příští týden v Barceloně na veletrhu Mobile World Congress 2017.

Ladislav Hagara | Komentářů: 0
včera 21:31 | Pozvánky

Pro zájemce o hlubší znalosti fungování operačních systémů připravila MFF UK nový předmět Pokročilé operační systémy, v rámci něhož se vystřídají přednášející nejen z řad pracovníků fakulty, ale dorazí také odborníci ze společností AVAST, Oracle, Red Hat a SUSE. Tento předmět volně navazuje na kurz Operační systémy ze zimního semestru, ale pokud máte praktické zkušenosti odjinud (například z přispívání do jádra Linuxu) a chcete si

… více »
Martin Děcký | Komentářů: 0
včera 21:30 | Pozvánky

Czech JBoss User Group Vás srdečně zve na setkání JBUG v Brně, které se koná ve středu 1. března 2017 v prostorách Fakulty Informatiky Masarykovy Univerzity v místnosti A318 od 18:00. Přednáší Tomáš Remeš a Matěj Novotný na téma CDI 2.0 - New and Noteworthy. Více informací na Facebooku a na Twitteru #jbugcz.

mjedlick | Komentářů: 0
20.2. 23:45 | Zajímavý software

Na blogu Qt bylo představeno Qt 3D Studio. Jedná se o produkt dosud známý pod názvem NVIDIA DRIVE™ Design Studio. NVIDIA jej věnovala Qt. Jedná se o několik set tisíc řádků zdrojového kódu. Qt 3D Studio bude stejně jako Qt k dispozici jak pod open source, tak pod komerční licencí. Ukázka práce s Qt 3D Studiem na YouTube.

Ladislav Hagara | Komentářů: 10
20.2. 17:50 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice slaví 5 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně byla založena ale až 17. února 2012.

Ladislav Hagara | Komentářů: 0
20.2. 12:50 | Komunita

Mozilla.cz informuje, že dosud experimentální funkce Page Shot z programu Firefox Test Pilot (zprávička) se stane součástí Firefoxu. Page Shot je nástroj pro vytváření snímků webových stránek. Umí výběr oblasti, prvku stránky (např. odstavce), nebo uložení snímku celé stránky. Snímky lze ukládat na disk nebo nahrávat na server Mozilly. Nedávno bylo oznámeno, že se součástí Firefoxu stane Activity Stream.

Ladislav Hagara | Komentářů: 32
20.2. 04:10 | Nová verze

Po 10 týdnech vývoje od vydání Linuxu 4.9 (zprávička) oznámil Linus Torvalds, mj. již 20 let žijící v USA, vydání Linuxu 4.10 (LKML). Přehled nových vlastností a vylepšení například na Kernel Newbies a v Jaderných novinách (1, 2 a 3). Kódové jméno Linuxu 4.10 je Fearless Coyote.

Ladislav Hagara | Komentářů: 23
19.2. 15:55 | Zajímavý projekt

Vyzkoušet si příkazy a vyřešit několik úkolů lze na stránkách Commandline Challenge (CMD Challenge). Úkoly lze řešit různými způsoby, důležitý je výsledek. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

Ladislav Hagara | Komentářů: 18
18.2. 17:35 | Bezpečnostní upozornění

Německá Bundesnetzagentur (obdoba českého ČTU) zakázala na německém území prodej panenky Cayla kvůli „špionáži“ dětí. Tato elektronická hračka obsahuje mikrofon, reproduktor a kameru a bezdrátové komunikační rozhraní, pomocí kterého se hračka připojuje na servery výrobce. Takovýmto způsobem může hračka pomocí umělé inteligence „odpovídat“ na dotazy dítěte. Hlavní problém bude ale asi někde jinde, podle prvotních zpráv může

… více »
Petr Tomášek | Komentářů: 34
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (14%)
 (2%)
 (71%)
 (3%)
 (10%)
Celkem 680 hlasů
 Komentářů: 61, poslední včera 13:06
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: 184×
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.