přejít na obsah přejít na navigaci

Linux E X P R E S, Začal nový školní rok

Začal nový školní rok

a já zas musím vytvářet uživatele


Kdyby ten nový školní rok byl častěji, pak bych nemusel znovu přemýšlet nad tím jak to udělat, třeba bych si to pamatoval. Takhle mám po ruce pár skriptů, určitou představu o tom jak si to celé usnadnit, ale přesto mi to vždy chvíli zabere - ale aspoň se u toho učím nové. ;-)

Awk je pro mě něco jako zlo, je to takové divné, i když mi je jasné, že by mi to mohlo leccos ulehčit a tak jsem ho dnes znovu vyzkoušel. Počáteční stav je přitom takový, že mám hromadu uživatelů, o které vím jejich jméno a příjmení. První co jsem chtěl vytvořit byla hromada přihlašovacích jmen. Počáteční soubor přitom obsahuje:

Jan Novák
Petr Novák
.....

Skript awk, který mi přidá uživatelská jména v nějakém (hypotetickém) tvaru

Jan Novák uzivatel2001
Petr Novák uzivatel2002
.....

může vypadat takto:

#!/usr/bin/awk -f
BEGIN{
    x=2001
}

{
  printf("%s %s %s\n",$1, $2, "uzivatel"(x++))
}

Skript (pojmenujeme-li ho třeba skript1) se pak volá třeba takto

cat trida1A.txt | skript1 > trida1A_s_uzivatelskym_jmenem.txt

Tím se vytvoří seznam uživatelů i s jejich přihlašovacím jménem, další co mě čekalo bylo přidání hesla. A to byl pravda trochu oříšek. Hned z počátku mě opět lákalo použití nějakého makra ve Vimu, které by to jistě zvládlo, ale nakonec jsem vytrval a donutil k tomu awk. Pomohla mi tato stránka.

Skript by mohl vypadat třeba takto:

#!/usr/bin/awk -f
{
  "pwgen -0 -A 5 1" | getline heslo
  printf("%s %s %s %s\n",$1, $2, $3, heslo)
  close("pwgen -0 -A 5 1")
}

pwgen je program, který generuje heslo. Problém ovšem nastal s tím, že volání nějakého externího programu vrací nejen jeho výstup, ale na prvním místě také jeho stav (0 v případě, že je vše v pořádku). Tomu jsem pomohl voláním funkce getline, která přečte další řádek obsahující vlastní heslo.

Další zádrhel nastal, že se externí program volal pouze jednou, je to zajímavé, ale od toho mi pomohl v manuálu zmiňovaná funkce close. No a výsledek? Soubor nyní obsahuje

Jméno Příjmení uživatelské_jméno heslo

Jistě by se tyto 2 skripty daly spojit dohromady, rozdělené jsou jednoduše proto, že mě to hned zpočátku nenapadlo. ;-) Dál to proženu opět přes awk, no anebo půjdu starou cestou a použiji makra Vimu, však dnes už toho awk bylo dost.

Třeba vám to také pomůže.

Update

Tak nakonec jsem použil awk snad na vše. Při odstraňování starých uživatelů jsem však narazil na zajímavý problém - spolu s jejich odstranění z LDAP a smazáním jejich adresářů mi repquota začala zobrazovat nějaké uživatele #123456 spolu s obsazeným místem na disku.

Problém byl v tom, že jsem nesmazal všechny soubory odstraněných uživatelů a tak na disku stále zůstaly soubory, které jim patřily (zpravidla se jednalo o profily Windows Vista, které si přidávají .V2 nakonec za jméno uživatele). Soubory, které patří danému uživateli se najdou snadno pomocí příkazu:

find /home -xdev -user 123456

oprava nastavené quoty je pak trochu složitější. Pozor, následující postup odstraní přednastavené kvóty uživatelů!

Nejdřív bylo nutné kvóty vypnout

quotaoff /home

pak zkontrolovat kvóty uživatelů

quotacheck -m /home

a dál už může kvóty opět zapnout

quotaon /home

Opětovné nastavení se provede pro každého uživatele zvlášť takto

quotatool -u <uživatelské_jméno> -bq 200MB -l 220MB /home

kde 200MB představuje tzv. soft limit a 220MB je hard limit. Samozřejmě pro hromadné nastavení uživatelů jsem opět použil awk, posloužil mi výborně! ;-)

 

Nahoru

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz

Martin Šín

Martin Šín

Martin Šín (*1980) vystudoval pedagogickou fakultu a nyní pracuje jako učitel matematiky a výpočetní techniky na střední škole. Ve volném čase překládá a také hraje hry (ani jedno mu příliš nejde). V práci se snaží prosazovat open-source programy.


  • Distribuce: Debian

| proč linux



Public Relations

Počítač Spaceborne Computer-2 od Hewlett Packard Enterprise pomáhá zrychlit průzkum vesmíru

SpacebornSpolečnost Hewlett Packard Enterprise (HPE) pomůže urychlit průzkum vesmíru a zvýšit soběstačnost astronautů tím, že vůbec poprvé umožní zpracování dat v reálném čase prostřednictvím svého komerčně dostupného řešení edge computing.

Pokračování ...


IOTOR

Public Relations

Průvodce software defined storage

AlefV dnešní době hledá stále více organizací způsob, jak získat volnost v nákupu hardwaru pro podnikové úložiště. Slibují si, že se při použití Software Defined Storage zbaví takzvaného vendor lock in a současně získají finančních úsporu, protože SDS vytváří z běžných komoditních serverů připojených k Ethernet síti úložiště s plnohodnotným data managementem. Snížení nákladů také bývá jeden z častých důvodů, proč sáhnout po SDS řešení.

Pokračování ...


Redakční blog

Pavel Fric

Pavel Fric, 26. February

QElectroTech

Novinky provázející verzi 0.80 elektrotechnického software


Pavel Fric

Pavel Fric, 03. February

MuseScore

Verze notačního editoru 3.6 s důrazem na notosazbu


Pavel Fric

Pavel Fric, 21. August

Sayonara Player 1.5.1

Přehrávač, jak má být. Poslední dobou vývoj šlape


Všechny blogy »

Sophos

Tagy