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

OpenRadioss: Simulace dynamických dějů nyní jako open-source

OpenRadiossNa podzim loňského roku Altair překvapil odbornou veřejnost z řad výpočtářů a vývojových inženýrů představením řešiče OpenRadioss. Jak už název napovídá, Open­Radi­oss je open-source verzí explicitní­ho solveru Altair Radioss, CAE nástroje pro simulace rychlých dějů, jakými jsou tolik populární virtuální testy nárazů vozidel, včetně vyhodnocení pasivní bezpečnosti, zkoušky odolnosti leteckých konstrukcí, pádové zkoušky elektronických zařízení a podobně.

Pokračování ...



Public Relations

PATRON-IT staví svůj monitorovací systém na technologii N-able

Společnost PATRON-IT je jednou z nejres-pektovanějších českých společností, které se specializují na IT bezpečnost. Její hlavní činností jsou dodávky SaaS (Security as a Service) služeb s garancí bezpečnosti a obrany proti útokům.

Pokračování ...


Redakční blog

Pavel Fric

Pavel Fric, 10. April

Zapojte se do tvorby distribuce Mageia

Podílejte se na vytváření balíčků pro Mageiu, dělejte, co je potřeba, staňte se baličem


Pavel Fric

Pavel Fric, 13. March

Lollypop

Lollypop je hudební přehrávač navržený, jak ukazuje jeho podoba, aby výborně zapadl do pracovního...


Pavel Fric

Pavel Fric, 26. February

QElectroTech

Kreslení elektrotechnických i jiných výkresů


Všechny blogy »

Tagy