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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 06:00 | Komunita

Na YouTube byl publikován Blender Institute Reel 2016, ani ne dvouminutový sestřih z filmů, které vznikly za posledních 10 let díky Blender Institutu. V institutu aktuálně pracují na novém filmu Agent 327. Dění kolem filmu lze sledovat na Blender Cloudu. Videoukázka Agenta 327 z června letošního roku na YouTube.

Ladislav Hagara | Komentářů: 0
dnes 01:02 | Zajímavý článek

Minulý týden byly vydány verze 1.2.3 a 1.1.7 webového poštovního klienta Roundcube. V oznámení o vydání bylo zmíněno řešení bezpečnostního problému nalezeného společností RIPS a souvisejícího s voláním funkce mail() v PHP. Tento týden byly zveřejněny podrobnosti. Útočník mohl pomocí speciálně připraveného emailu spustit na serveru libovolný příkaz. Stejně, jak je popsáno v článku Exploit PHP’s mail() to get remote code execution z roku 2014.

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

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 1
včera 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 3
7.12. 21:21 | Nová verze Ladislav Hagara | Komentářů: 0
7.12. 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 2
7.12. 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 10
6.12. 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 27
6.12. 11:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2016-8655 v Linuxu zneužitelné k lokální eskalaci práv. Chyba se dostala do linuxového jádra v srpnu 2011. V upstreamu byla opravena minulý týden [Hacker News].

Ladislav Hagara | Komentářů: 2
5.12. 22:00 | Komunita

Přibližně před měsícem bylo oznámeno, že linuxová distribuce SUSE Linux Enterprise Server (SLES) běží nově také Raspberry Pi 3 (dokumentace). Obraz verze 12 SP2 pro Raspberry Pi 3 je ke stažení zdarma. Pro registrované jsou po dobu jednoho roku zdarma také aktualizace. Dnes bylo oznámeno, že pro Raspberry Pi 3 je k dispozici také nové openSUSE Leap 42.2 (zprávička). K dispozici je hned několik obrazů.

Ladislav Hagara | Komentářů: 6
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (8%)
 (5%)
 (3%)
Celkem 799 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: script na vypsani uživatele

14.12.2011 10:44 mar89tin
script na vypsani uživatele
Přečteno: 1018×
Dobry den linuxove komunite.. Mohl by mi někdo poradit jak napsat skript, který:

vypíše všechny uživatele (+ jejich poslední přihlášení a jeho dobu), kteří mají jako login shell zadaný řetězec (default hodnota: ksh).. Má tedy vybrat z existujícíh uživatelů, nikoli se zabývat aktuálně přihlášeným. děkuji Zdraví Martin

Řešení dotazu:


Odpovědi

14.12.2011 10:54 kuka
Rozbalit Rozbalit vše Re: script na vypsani uživatele
/etc/passwd, man last
14.12.2011 10:59 Peter S.
Rozbalit Rozbalit vše Re: script na vypsani uživatele
Tak základom bude asi lastlog. Zistiť default shell nebude problém z /etc/passwd. Problém bude asi dlžka prihlasenia....

Tarmaq avatar 14.12.2011 11:14 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: script na vypsani uživatele
#!/bin/sh

SH=ksh;
if [ $1 ]; then
  SH=$1;
fi

grep $SH /etc/passwd | cut -d':' -f1 | while read u; do lastlogin $u; done
Don't panic!
14.12.2011 13:34 Kit
Rozbalit Rozbalit vše Re: script na vypsani uživatele
Na každou složitou otázku existuje jednoduchá a nesprávná odpověď.
Tarmaq avatar 14.12.2011 17:39 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: script na vypsani uživatele
je mozne ze tam mam neco spatne, napr. misto toho grepovani jsem asi mel pouzit getent viz. nize.. Mohl bys treba dale specifikovat co tam je jeste spatne? Netvrdim ze to je spravne a je mozne ze tam jsou pouzity nejake neposixove postupy atp., ale na freebsd mi to funguje dle zadani
Don't panic!
Jendа avatar 14.12.2011 23:15 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: script na vypsani uživatele
Uživatel trollkshlolo.
Jendа avatar 14.12.2011 23:17 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: script na vypsani uživatele
Jo a já nemám lastlogin (takový standardní Debian).
14.12.2011 17:00 ET
Rozbalit Rozbalit vše Re: script na vypsani uživatele
imho bude lepci "getent passwd" nez grep pres passwd...
Tarmaq avatar 14.12.2011 17:37 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: script na vypsani uživatele
diky, neznal jsem.. akorat se mi nedari filtrovat podle shellu, podle usernamu a uid jo..
Don't panic!
14.12.2011 18:34 kuka
Rozbalit Rozbalit vše Re: script na vypsani uživatele
getent ovsem neni k dispozici na kazdem UNIXu...
14.12.2011 21:26 ET
Rozbalit Rozbalit vše Re: script na vypsani uživatele
jasne, ale taky nebylo konkretne receno o jakej *ux se jedna, na solaci sem ho pouzival a koukal jsem ze je i pro bsd, enjoy...
14.12.2011 23:09 mar89tin
Rozbalit Rozbalit vše Re: script na vypsani uživatele
přiznám se že tomu zatím moc nerozumím, ví někdo jak by to mělo vypadat funkční? moc děkuji
Jendа avatar 14.12.2011 23:19 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: script na vypsani uživatele
Shell je v passwd v posledním sloupci (hint: cut nebo grep --only-matching) a jak získat poslední login si budeš muset vygooglit. Pokud tohle po semestru na škole nedáš, zvážil bych se na to vykašlat.
15.12.2011 00:13 mar89tin
Rozbalit Rozbalit vše Re: script na vypsani uživatele
	
#!/bin/sh
 
SH=ksh;
if [ $1 ]; then
  SH=$1;
fi

lastlogin= last -1 <

grep $SH /etc/passwd | cut -d':' -f1 | while read u; do lastlogin $u; done
přidal jsem ten lastlogin, vidim ze cut uz tu pouzito je pro ziskani hodnoty shellu. tim by to melo byt ok (?) ale jeste by tam melo byt nejake echo pro vypis tech uzivatelu co?
Jendа avatar 15.12.2011 00:18 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: script na vypsani uživatele
lastlogin= last -1 <
A tohle má dělat co?

Já na Debianu lastlogin nemám, jenom lastlog, který spouštím třeba s parametrem -u uživatel, např.
$ lastlog -u pepa
Username         Port     From             Latest
pepa             pts/5    2001:470:caee:1: Fri Dec  9 02:54:01 +0100 2011
takže bych si zmíněné uživatele uložil do proměnné a potom udělal for cyklus, kde bych na ně vždycky spustil lastlog -u a vycutnul z druhého řádku username a datum.
15.12.2011 00:53 l4m4
Rozbalit Rozbalit vše Re: script na vypsani uživatele
lastlogin se vyskytuje na BSD-derived systémech, ale přenostitelné to moc není.
15.12.2011 01:14 Ash | skóre: 53
Rozbalit Rozbalit vše Re: script na vypsani uživatele
grep $SH /etc/passwd

přidal jsem ten lastlogin, vidim ze cut uz tu pouzito je pro ziskani hodnoty shellu. tim by to melo byt ok (?)

Jak už bylo naznačeno, ok to není, vlastně je to zatím nefunkční :) Vizte můj nick, ale jinak používám bash, a vypsat uživatele co používají třeba ash byste chtěl jak? Chce to ještě doladit, máte štěstí že název shellu je v posledním sloupci, takže to půjde i tím grepem, ale ten regulární výraz (parametr grepu) bude potřeba vylepšit.
15.12.2011 01:20 Ash | skóre: 53
Rozbalit Rozbalit vše Re: script na vypsani uživatele
A cut tu není použito pro získání hodnoty shellu, ale pro získání uživatelského jména (-f 1) více méně náhodné podmnožiny uživatelů z passwd.
15.12.2011 10:07 mar89tin
Rozbalit Rozbalit vše Re: script na vypsani uživatele

Pokud tomu dobre rozumim, tak na zacatku je inicializace default hodnoty shellu.

Pote je tady podminka if(ve ktere bohuzel moc nerozumim kontrukci
if [ $1 ]; then
  SH=$1;
Co se vlastne rovna(je prirazeno) SH?

Dale jsem se v diskuzi docetl ze bude lepsi pouzit getend pro ziskani jmena uzivatele. dale cut pro vybrani spravneho udaje.. Pak while read u; to podle me cte nalezeneho uzivatele a pro nej (do lastlog) vypise posledni prihlaseni.

Prosim vas pokud vidite chybu mohl byste mi ji opravit aby mi skript fungoval..? moje znalosti teto problematiky jsou celkem male narozdil od vas. Pracuji v OS Ubuntu.

ps. v getend passwd podle me chybi neco, podle ceho daneho uzivatele hledat..(coz je vlastne zadana hodnota login shellu)..

#!/bin/sh
 
SH=ksh;
if [ $1 ]; then
  SH=$1;
fi
 
getent passwd | cut -d':' -f1 | while read u; do lastlog $u; 
done
Tarmaq avatar 15.12.2011 11:26 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: script na vypsani uživatele
Co se vlastne rovna(je prirazeno) SH?

Obsahuje prvni parametr, tedy pri spusteni skriptu pojmenovaneho foo
./foo zsh
vyhleda posledni prihlaseni uzivatelu, kteri maji jako login shell nastaveny zsh.
Pokud se skript spusti bez parametru, defaultuje to na ksh.
#!/bin/sh

SH=ksh;
if [ $1 ]; then
  SH=$1;
fi

getent passwd | grep "/${SH}$" | cut -d':' -f1 | while read u; do last -1 $u; done
Don't panic!
15.12.2011 13:26 mar89tin
Rozbalit Rozbalit vše Re: script na vypsani uživatele
Skript na vypsani mi bohužel pořád nejede:( Nevím co tam mám dopsat aby to bylo funkční, poradí mi prosím ještě nekdo zkušený? Jinak zkousim to v Ubuntu 10.11...
Jendа avatar 15.12.2011 16:10 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: script na vypsani uživatele
Mně last -1 vypisuje na Debianu spoustu bordelu kolem. Udělal bych to stylem
USERS=`getent passwd | grep "/bash$" | cut -d':' -f1`

for USER in $USERS; do lastlog -u $USER | tail -n 1 | tr -s " " | cut -d " " -f 1,5-; done
# FIXME: u uživatele, který se nikdy nepřihlásil, bychom místo prázdna mohli napsat, že se opravdu nikdy nepřihlásil
15.12.2011 16:21 chsajarsa | skóre: 16 | blog: V_hlouby_destneho_pralesa | Lovosice(Praha)
Rozbalit Rozbalit vše Re: script na vypsani uživatele
#!/bin/bash

USERS=`cat /etc/passwd | grep $1 | cut -d: -f1`

for i in $USERS
do
        DATUM=`last | grep $i | head -n 1 | awk '{FS="\t";  print $5,$6,$7}'`
        DELKA=`last | grep $i | head -n 1 | awk '{print $9}' | sed -e 's|[(,)]||g'`
        if [ "$DELKA" = "logged" ]
        then   
                DELKA='jeste ted'
        fi
        if [ -z "$DELKA" ]
        then   
                echo "uzivate $i se neprihlasil"
        else   
                echo "uzivate $i byl naposled prihlasen $DATUM a byl prihlasen po dobu $DELKA"
        fi
done
ma to jen jednu chybu a to tu, ze pokud se uzivatel prihlasi lokalne na tty, tak to nevypise ani cislo displaye a ani ip u ssh. Je tam tedy nutne dat uz jen jednu podminku a to treba tu, ze pokud je na $5 nenachazi 3 znaky tak vytiskyni do DATUM $6,$7,$6. To same u DELKY, kde kdyz je aktualne prihlasen na tty se vytiskne neco jineho. Getenv bych moc nepouzival, ja treba jsem zjistil, ze ho nemam nainstalovany nikde :-)
~ QED ~
Jendа avatar 15.12.2011 16:40 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: script na vypsani uživatele
DATUM=`last | grep $i | head -n 1 | awk '{FS="\t";  print $5,$6,$7}'`
Já to zkouším na serveru, kde je asi 50 uživatelů a třeba 30 loginů denně, takže v tom vždycky vidím nějaký fail. Tady třeba v tom, že last mi vrací jenom záznamy od začátku prosince.

A jinak konstrukce typu log | grep foo nejsou obecně příliš šťastné, protože někteří divní uživatelé :) si volí takové přezdívky, že jsou buď podmnožinou jiného uživatelského jména, nebo se jejich nickname může vyskytnout dále v tom řádku (jméno konzole, hostname, datum…).

Tj. lepší by bylo last | grep "^foo ".
Jendа avatar 15.12.2011 16:45 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: script na vypsani uživatele
Tady třeba v tom, že last mi vrací jenom záznamy od začátku prosince.
Takže třeba last jenda -F je pro získání informací o konkrétním uživateli mnohem vhodnější (např. by fungovalo, i kdybych se tam od začátku prosince nepřihlásil - moment, on někdo může žít dva týdny bez přihlášení se na ten server? :) a navíc díky -F se pak dá to datum prostě napipovat do date, převést na UNIX timestamp, odečíst a máš hned a přesně tu délku.
15.12.2011 16:57 Ash | skóre: 53
Rozbalit Rozbalit vše Re: script na vypsani uživatele
Vůbec nejhorší jsou shelly jako bash, který si zvolil takové jméno, které obsahuje sh i ash :)
15.12.2011 17:43 mar89tin
Rozbalit Rozbalit vše Re: script na vypsani uživatele
když tohle překopíruju do geditu a pak prejmenuju na users.sh a spustim, pise to tohle:
martin@ubuntu:~$ bash users.sh
users.sh: line 2: $'\r': command not found
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
users.sh: line 4: $'\r': command not found
users.sh: line 6: syntax error near unexpected token `$'do\r''
'sers.sh: line 6: `do
martin@ubuntu:~$ 
Jendа avatar 15.12.2011 22:55 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: script na vypsani uživatele
Máš blbě nastavené zalamování řádků v Geditu - asi ho máš přeplé na "Win/DOS", chceš "UNIX".
14.12.2011 11:44 Kit
Rozbalit Rozbalit vše Re: script na vypsani uživatele
Ty školní úlohy se nám tady v poslední době nějak rozmohly. Nebo se snad pletu?
14.12.2011 12:51 maleprase | skóre: 28
Rozbalit Rozbalit vše Re: script na vypsani uživatele
ano, pletes se. skolni ulohy tu jsou pravidelne s koncem skolniho (pul)roku
14.12.2011 12:53 rastos | skóre: 60 | blog: rastos
Rozbalit Rozbalit vše Re: script na vypsani uživatele
15.12.2011 21:10 mar89tin
Rozbalit Rozbalit vše Re: script na vypsani uživatele
Prosím napadlo někoho něco? Mně se to nedaří poskládat dohromady a zítra to musim odevzdat.. Mohl by tu někdo napsat něco aspon zhruba funkcniho? Mám Ubuntu 11.10 Díky všem a za cokoli!
19.12.2011 09:49 ubka7617
Rozbalit Rozbalit vše Re: script na vypsani uživatele
co tak prikaz sac ?

apt-get install sac v debian

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.