Kapitola 12. Základy administrácie systému

Obsah
Užívatelia a skupiny
Správne zastavenie systému
Zhrnutie

Ste administrátorom každého počítača, na ktorom máte root-a. To môže byť váš desktop počítač s jedným alebo dvoma užívateľmi, alebo to môže byť veľký server s niekoľko sto užívateľmi. Bez ohľadu na to budete potrebovať vedieť ako spravovať užívateľov a ako bezpečne zastaviť systém. Oboje vyzerá jednoducho, ale oboje má svoje zvláštnosti, na ktoré si treba zvyknúť. Navyše sa budete potýkať s niektorými ideami podľa ktorých pracuje systém hesiel.

Užívatelia a skupiny

Prichystané skripty

Najjednoduchší spôsob spravovania užívateľov a skupín je pomocou prichystaných skriptov a programov. Slackware obsahuje na prácu s užívateľmi programy adduser, userdel(8), chfn(1), chsh(1), a passwd(1). Na prácu so skupinami Slackware obsahuje groupadd(8), groupdel(8), a groupmod(8). S výnimkou chfn, chsh, a passwd, sú to všetko programy, ktoré môže spúšťať iba root a preto sú umiestnené v /usr/sbin. chfn, chsh, a passwd môže spúšťať ktokoľvek a sú umiestnené v /usr/bin.

Užívatelia sa pridávajú programom adduser Začneme tým, že prejdeme celou procedúrou, ukážeme všetky položené otázky a stručný popis toho čo to všetko znamená. Default odpoveď je v hranatých zátvorkách, a môžete ju vybrať takmer pri všetkých otázkach. Pokiaľ len nechcete niečo zmeniť.

   # adduser
   Login name for new user (8 characters or less) []: jellyd
   

Toto je meno, ktoré užívateľ bude používať pri prihlasovaní. Musí to byť osem znakov alebo menej, pretože všetky prihlasovacie nástroje očakávajú že to tak bude. Vo všeobecnosti by ste mali používať len malé písmená, pokiaľ len nechcete písať veľké písmená tam, kde to môže byť nepríjemné.

User id for jellyd [ defaults to next available]:

Identifikátor užívateľa (UID) je to podľa čoho sa v Linux-e rozlišuje vlastníctvo. Každý užívateľ má unikátne číslo, ktoré v Slackware-i začína na 1000. Môžete si zvoliť UID pre nového užívateľa, alebo môžete nechať adduser aby priradil užívateľovi ďalšie voľné.

Initial group for jellyd [users]:

Všetci užívatelia sú defaultne umiestnení do skupiny “users”. Môžete chcieť umiestniť nového užívateľa do inej skupiny, ale neodporúča sa to.

Additional groups for jellyd (seperated with commas, no spaces) []:

Táto otázka vám dovoľuje pridať nového užívateľa do ďalších skupín. Užívateľ môže byť vo viacerých skupinách súčasne. To je užitočné keď máte urobené skupiny pre veci ako je modifikovanie súborov webového servera, hranie hier a tak ďalej.

jellyd's home directory [/home/jellyd]:

Domovské adresáre sú zvyčajne umiestnené pod /home. Ak bežíte veľmi veľký systém, môžete presunúť domovské adresáre na inú pratíciu. Tu máte možnosť rozhodnúť o tom kde bude užívateľov domovský adresár. Môžete tiež zakázať konto tak, že zmeníte domovský adresár danej osoby na niečo ako je /bin/false, hoci toto nie je odporúčaná metóda.

jellyd's shell [/bin/bash]:

bash je default shell pre Slackware Linux a je celkom dobrý pre väčšinu ľudí. Ak váš nový užívateľ prichádza z Unix-ového prostredia, môže uprednostňovať iný shell. Môžete zmeniť jeho shell teraz, alebo si ho môžu zmeniť neskôr sami pomocou programu chsh.

jellyd's account expiry date (YYYY-MM-DD) []:

Kontá môžu byť nastavené tak aby expirovali v daný dátum. Defaultne expiračný dátum nie je nastavený. Ale ak chcete môžete to zmeniť. To môže byť užitočné pre ľudí, ktorí robia ISP a ktorí môžu chcieť aby konto expirovalo po určitom dátume, pokiaľ nedostanú platbu na ďalší rok.

   OK, I'm about to make a new account. Here's 
   what you entered so far:

   New login name: jellyd
   New UID: [Next available]
   Initial group: users
   Additional groups: [none]
   Home directory: /home/jellyd
   Shell: /bin/bash
   Expiry date: [no expiration]

   This is it... if you want to bail out, hit Control-C.  
   Otherwise, press ENTER to go ahead and make the account.
   

Teraz vidíte všetky informácie o novom konte, ktoré ste zadali a máte poslednú možnosť to zastaviť. Ak ste zadali niečo nesprávne, môžete stlačiť Control-C a začať odznova. Inak môžete stlačiť Enter a konto bude vytvorené.

   Making new account...

   Changing the user information for jellyd
   Enter the new value, or press return for the default
           Full Name []: Jeremy
           Room Number []: Smith 130
           Work Phone []:
           Home Phone []:
           Other:
   

Všetky tieto informácie sú nepovinné. Nemusíte zadať ani jednu z nich ak nechcete a užívateľ sám ich môže kedykoľvek zmeniť pomocou chfn. Ale môže byť užitočné zadať aspoň plné meno a telefónne čísla pre prípad, že sa potrebujete s tou osobou skontaktovať.

   Changing password for jellyd
   Enter the new password (minimum of 5, maximum of 127 characters)
   Please use a combination of upper and lower case letters and numbers.
   New password:
   Re-enter new password:
   Password changed.
   Done...
   

Musíte pre nového užívateľa zadať heslo. Vo všeobecnosti ak nový užívateľ nie je fyzicky prítomný v tomto okamihu, môžete jednoducho vybrať hocijaké heslo a povedať užívateľovi aby ho zmenil na niečo bezpečnejšie.

NoteChoosing a Password
 

Bezpečné heslo je prvá línia obrany proti nabúraniu systému. Určite nechcete mať heslo, ktoré je ľahké uhádnuť, pretože to by urobilo vlámanie sa do systému ľahším. Ideálne a bezpečné heslo by bol reťazec náhodných znakov vrátane malých a veľkých písmen, číslic a náhodných znakov. Len si pamätajte, že znak tabulátor asi nie je dobrá voľba - v závislosti od toho aký druh počítačov sa bude používať na prihlasovanie.

Najlepšie je keď použijete zdravý rozum: nevyberajte si heslo, ktoré je niečím dátumom narodenia, často používaná fráza, niečo čo sa nachádza na vašom stole alebo niečo čo sa s vami spája. “bezpecne1” je tiež zlé.

Odstraňovanie užívateľov nie je vôbec zložité. Len spustite userdel s menom konta, ktoré chcete zrušiť. Mali by ste sta uistiť, že užívateľ nie je prihlásený, a že žiadne procesy nebežia pod týmto užívateľom. Tiež si pamätajte, že keď ste raz užívateľa zmazali, je preč.

   # userdel jellyd

Takto odstránite toho otravného chlapa “jellyd” z vášho systému. Nech sa vám dobre maže :-) Takto odstránite užívateľa zo súborov /etc/passwd a /etc/group, ale neodstráani to užívateľov domovský adresár. Ak chcete odstrániť aj domovský adresár, tak urobte toto:

   # userdel -r jellyd

Dočasné zakázanie konta je popísané v sekcii nazvanej Menenie hesiel pretože to zahŕňa zmenu užívateľovho hesla. Zmenenie informácií o konte je popísané v sekcii nazvanej Menenie hesiel a sekcii nazvanej Menenie informácií o užívateľovi.

Programy na pridávanie a mazanie skupín sú veľmi jednoduché. groupadd len pridá ďalšiu položku do súboru /etc/group s unikátnym identifkátorom skupiny, zatiaľ čo groupdel zmaže špecifikovanú skupinu. Je na vás aby ste upravili /etc/group a pridali užívateľov do danej skupiny.

Skupinu vytvoríte takto:

   # groupadd cvs

A zrušíte ju takto:

   # groupdel cvs

Ručne

Prirodzene je možné pridávať, modifikovať a mazať užívateľov a skupiny aj ručne. Ale po tom, ako si prezriete túto procedúru, pravdepodobne uznáte, že pohodlnejšie je používať skripty.

Najprv pridáme nového užívateľa do súborov /etc/passwd(5), /etc/shadow(5), a /etc/group(5). Súbor passwd uchováva niektoré informácie o užívateľovi, ale (napodiv) nie jeho heslo. Súbor passwd musí byť čitateľný pre každého, ale nechcete aby zašifrované heslá videl celý svet, pretože to dáva potenciálnemu vlamačovi dobré štartovacie miesto. Takže zašifrované heslá sú udržiavané v súbore shadow, ktorý môže čítať len root, a heslo každého užívateľa je vložené do súboru passwdako “x”. V súbore skupín je zoznam všetkých skupín a informácia o tom kto je v ktorých skupinách.

Tak sa poďme pozrieť na súbor /etc/passwd kde zistíme ako niekoho pridáme. Typický záznam v passwd vyzerá takto:

   chris:x:1000:100:Chris Lumens,Room 2,,:/home/chris:/bin/bash

Každý riadok je záznam pre jednu osobu a polia na každom riadku sú oddelené dvojbodkou. Polia sú prihlasovacie meno, zašifrované heslo (“x” pre každého na Slackware-ovom systéme, pretože používame systém tieňových hesiel), užívateľovo ID, ID skupiny, nepovinnú informáciu pre finger oddelenú čiarkami, domovský adresára a shell. To čo potrebujete urobiť v tomto súbore je pridať na koniec jeden riadok a vyplniť príslušné informácie.

Dajte pozor na to aby heslo bolo x, aby užívateľovo ID bolo unikátne, aby bol v skupine 100 (pod Slackware-om skupina “users”), a aby mal platný shell.

Ďalej budete potrebovať pridať záznam do súboru /etc/shadow, ktorý udržiava heslá. Typický záznam vyzerá takto:

   chris:$1$w9bsw/N9$UWLr2bRER6YyBS.CAEp7R.:11055:0:99999:7:::

Opäť každý riadok je položka pre jednu osobu a polia sú oddelené dvojbodkami. Polia sú prihlasovacie meno, zašifrované heslo, koľko uplynulo dní od Epochy (Január 1, 1970) kedy bolo naposledy zmenené heslo, počet dní, po ktorých musí heslo byť zmenené, počet dní pred expiráciou hesla, kedy je užívateľ upozornený, počet dní po expirovaní hesla, kedy je konto zakázané, počet dní od Epochy, kedy konto bude zakázané a nakoniec rezervované pole.

Ako vidíte, väčšina informácií sa týka expirovania konta. Ak nepoužívate informácie o expirácií, budete potrebovať vyplniť len niekoľko polí špeciálnymi hodnotami. Inak by ste potrebovali urobiť nejaké výpočty a rozhodnutia prv než vyplníte tieto polia. Pre nášho nového užívateľa zadajte nejaké náhodné smetie do políčka pre heslo. Teraz si o heslo nerobte starosti, pretože ho za chvíľku zmeníte. Jediný znak, ktorý nesmiete vložiť do políčka pre heslo je dvojbodka. Aj políčko “ počet dní kedy bolo heslo zmenené” nechajte prázdne. Nastavte 0, 99999, a 7 presne tak ako to vidíte v našej ukážkovej položke a ostatné políčka nechajte prázdne.

Pre tých z vás, čo vidia hore moje zašifrované heslo a myslia si, že majú šancu vlámať sa do môjho systému, len to skúste. Ak dokážete to heslo prelomiť budete vedieť heslo na firewalovaný testovací systém. To vám teda bude platné :)

Pretože defaultne je každý členom skupiny “users”, nebudete potrebovať pridávať nového užívateľa do tejto skupiny. Ak chcete vytvoriť novú skupina alebo pridať nového užívateľa do iných skupín, budete potrebovať upraviť súbor /etc/group. Tu je typická položka:

   cvs::102:chris,logan,david,root

Polia sú meno skupiny, heslo skupiny, identifikátor skupiny a členovia skupiny. Vytvorenie novej skupiny je jednoducho vecou pridania nového riadku s unikátnym identifikátorom skupiny a zoznamu všetkých ľudí, ktorí majú byť členmi skupiny. Všetci užívatelia, ktorí sú v tejto novej skupine a sú prihlásení sa budú musieť odhlásiť a znova prihlásiť aby tieto zmeny mali účinok.

Teraz sa vráťte a použite program passwd na vytvorenie nového hesla pre nového užívateľa. Potom použite mkdir a vytvorte pre nového užívateľa domovský adresár na mieste, ktoré ste určili v súbore /etc/passwd .

Ak ste nainštalovali na váš systém sendmail(8) a aktívne používate mail, budete musieť pre nového užívateľa vytvoriť nový súbor v /var/spool/mail so správnymi prístupovými právami a vlastníctvom. Tu je príklad:

   # touch /var/spool/mail/jellyd
   # chown jellyd.users /var/spool/mail/jellyd
   # chmod 660 /var/spool/mail/jellyd

Tieto príkazy vytvoria mailový súbor pre nového užívateľa “jellyd” a nastavia správne vlastníctvo a prístupové práva.

Odstránenie užívateľa je jednoducho vecou zrušenia všetkého čo sme práva vytvorili. Odstráňte užívateľovu položku z /etc/passwd a /etc/group. Odstráňte jeho prihlasovacie meno zo všetkých skupín v súbore /etc/group, vymažte jeho mailový súbor, ak nejaký má a ak treba zmažte jeho domovský adresár.

Mazanie skupín je jednoducho vecou vymazania položky skupiny z /etc/group.

Menenie hesiel

Program passwd mení heslá modifikovaním súboru /etc/shadow . Ten udržiava všetky heslá na systéme v zašifrovanom formáte. Heslo môžete zmeniť napísaním:

   $ passwd
   Changing password for chris
   Old password:
   Enter the new password (minumum of 5, maximum of 127 characters)
   Please use a combination of upper and lower case letters and numbers.
   New password:

Ako vidíte, ste vyzvaní aby ste vložili staré heslo. Neobjaví sa na obrazovke keď ho ťukáte, rovnako ako je to pri prihlasovaní. Potom môžete zadať nové heslo. passwd robí mnoho testov na nové heslo a bude sa sťažovať ak vaše nové heslo neprejde týmito testami. Ak chcete môžete tieto varovania ignorovať. Potom môžete vložiť vaše nové heslo ešte raz pre potvrdenie.

Ak ste root, môžete zmeniť tiež heslo iného užívateľa:

   # passwd ted

Musíte prejsť cez tú istú procedúru ako hore, s tom výnimkou, že nemusíte zadať staré heslo. (Jedna z mnohých výhod bytia rootom ...)

Ak máte nejakých chuligánov na vašom systéme, môžete tiež dočasne zakázať ich kontá. Neskôr môžete znova povoliť ich kontá. Oboje, zakázanie aj povolenie konta možno urobiť s passwd. Na zakázanie konta urobte toto ako root:

   # passwd -l david

To zmení davidovo heslo na niečo čo sa nemôže zhodovať so žiadnou zašifrovanou hodnotou. Neskôr môžete vrátiť jeho heslo späť naťukaním tohto:

   # passwd -u david

Teraz je davidovo konto späť v normálnom stave. Zakázanie konta môže byť užitočné ak užívateľ nehrá podľa pravidiel, ktoré ste nastavili na svojom systéme alebo ak vyexportoval strašne veľkú kópiu xeyes(1) na váš X desktop.

Menenie informácií o užívateľovi

Existujú dve informácie, ktoré užívateľ môže kedykoľvek zmeniť na svojom konte: jeho shell a jeho finger informáciu. Slackware Linux používa na menenie týchto informácií chsh (change shell - zmeň shell) a chfn (change finger - zmeň finger).

Užívateľ si môže zvoliť, ktorýkoľvek shell, ktorý je vypísaný v súbore /etc/shells. Pre väčšinu ľudí, bude bash celkom stačiť. Iní môžu lepšie poznať shell zo svojho Unix-ového systému v práci alebo škole a budú chcieť používať to, čo už poznajú. Shell sa mení pomocou chsh:

   $ chsh
   Password:
   Changing the login shell for chris
   Enter the new value, or press return for the default
        Login Shell [/bin/bash]:

Po tom ako zadáte svoje heslo, vložte celú cestu k novému shell-u. Najprv si však overte, že je vypísaný v súbore /etc/shells(5). root môže tiež zmeniť shell užívateľa spustením chsh s menom užívateľa ako argumentom.

Finger informácie sú voliteľné informácie ako napríklad vaše plné meno telefónne čísla a číslo kancelárie. Tie sa dajú zmeniť pomocou chfn, podobnou procedúrou ak sme to urobili počas vytvárania konta. Ako zvyčajne root môže zmeniť finger informácie komukoľvek.