Učebnica

per aspera ad astra

Nástroje používateľa

Nástoje správy stránok


linux:prikazy_pre_pracu_s_uzivatelmi

Príkazy pre prácu s užívateľmi

Prvá časť sa venuje základným príkazom pre prácu priamo s užívateľmi. Ako je zmena hesla, vytváranie alebo mazanie užívateľov. Druhá časť je zameraná na komunikáciu medzi užívateľmi v rámci jedného servera (počítača).

Užívatelia a skupiny

passwd

Nástrojom passwd dokážeme zmeniť svoje vlastné heslo, prípadne užívateľ root môže zmeniť heslo akémukoľvek inému užívateľovi. O zmenu vlastného hesla zažiadame príkazom:

passwd

Uchovanie hesla v unixových systémoch prebieha odlišným spôsobom oproti systému MS Windows. Z hesla zadaného užívateľom pri registrácií alebo zmene hesla sa pomocou hashovacej funkcie generuje „hash“ a iba tento sa prikladá k uloženým informáciám o užívateľských účtoch. Heslo samotné sa z bezpečnostných dôvodov v systéme nezaznamenáva a preto ak ho užívateľ zabudne, nedá sa opätovne obnoviť, iba vytvoriť nové.

Prihlasovanie do systému prebieha takymto spôsobom. Užívateľ je požiadaný o zadanie hesla. Po zadaní hesla sa z neho vygeneruje „hash“, ktorý sa porovnáva s uloženým „hashom“ v zozname užívateľov. Pokiaľ sa tieto obe hashe rovnajú, predpokladá sa, že by mali by sa zhodovať aj pôvodné hesla a teda je užívateľ autentizovaný.

S pomocou tohto nástroja môžeme meniť heslá nie len pre lokálnych užívateľov. Vo väčšine prípadov je ho môžné použiť aj pre zmenu hesla v distribuovaných autentizačných mechanizmoch ako je NIS, Kerbeos, LDAP. Niekedy bolo potrebné pre zmenu hesiel v týchto systémoch používať odlišné nástroje ale v súčastnosti má väčšina implementácií jediný príkaz passwd, ktorý je schopný meniť heslo cez autentizačné moduly PAM 1).

Ako bolo už spomenuté, iným užívateľom dokáže zmeniť heslo užívateľ root. Je to z toho dôvodu, že hocikto iný môže svoje vlastné heslo zabudnúť, alebo si ho zablokovať, potom môže superužívateľ (root) zmeniť heslo príkazom:

passwd uzivatel

kde uzivatel je prihlasovacie meno užívateľa.

Pozor :!: Ak zadávate heslo, na obrazovku Vám nič nevypíše, ale v skutočnosti heslo zadávate, len to nič neukazuje. Je to určitá forma ochrany, kde neukazuje ani hviezdičky, aby nikto nemohol spočítať dĺžku hesla.

adduser

Veľa ľudí je ešte z čias Windows XP zvyknutých mať jediného užívateľa v počítači a všetky veci mať rozdelené v priečinkoch (v horšom prípade priamo na ploche) podľa mien užívateľov počítača. Takého riešenie nie je veľmi praktické, lebo ak menej skúsený užívateľ spraví neodborný zásah, zničí údaje všetkých užívateľov. Ak sa rozhodnete v systéme založiť ďalšie používateľské konto, môžete ho „vyklikať“ alebo použiť príkaz. V tomto pomôže nástroj adduser.

adduser uzivatel

Pokiaľ nie ste root, príkaz adduser v lokalizovanom systéme vráti následujúcu hlášku:

ferko@server:~$ adduser
adduser: Iba root môže pridať používateľa alebo skupinu do systému.

V prípade úspechu systém nevypíše žiadnu hlášku.

Ak vytvárate užívateľa spolu s ním sa vytvorí aj jeho domovský adresár. Pokiaľ ste nezmenili konfiguráciu, objaví sa v adresári /home pod názvom nového užívateľa. Ak vytvoríte užívateľa jozko, jeho domovský adresár bude /home/jozko.

Konfigurácia pre príkaz adduser sa nachádza v súbore /etc/adduser.conf, kde môžete upravovať niektoré parametre, ako napríklad štandardnú skupinu pre užívateľa, alebo umiestnenie /home adresára.

deluser

Ak užívateľský účet už nieje v systéme potrebný, alebo ho potrebujeme z iného dôvodu odstrániť na trvalo zo systému, použijeme príkaz deluser. Pre zmazanie užívateľa jozko môžete použiť príkaz :

deluser jozko

Mazanie užívateľa štandardne nevymaže aj jeho domovský adresár. Preto vždy po zmazaní užívateľa skontrolujte aj jeho údaje v domovskom adresári. Ak pri vymazaní užívateľa chcete automaticky mazať aj jeho domovský adresár, a jeho obsah, zmeňte konfiguráciu v súbore /etc/deluser.conf.

groups

Podľa toho v akých skupinách sa nachádza užívateľ závisí aj to, k čomu všetkému má prístup. Napríklad ak chceme umožniť užívateľovi prístup k CD alebo DVD mechanike, musí sa nachádzať v skupine cdrom. Ak potrebujeme zistiť v ktorých skupinách sa nachádza užívateľ, poslúži na to základný príkaz groups.

Základné použite príkazu groups môže byť buď samostatne, čiže iba groups bez parametrov. V takomto prípade sa vypíšu skupiny v ktorých sa nachádza aktuálny užívateľ. Ak sa použije nejaký parameter, najčastejšie to býva používateľské meno.

groups 
groups ferko

Zoznam skupín v ktorých sa nachádzajú jednotlivý používatelia sa nachádza v súbore /etc/groups.

addgroup

V unixových systémoch sa rozsah právomoci voči systému (prístupové práva sú niečo iné) ako napríklad prístup ku grafickému adaptéru, zvukovej karte, alebo možnosť inštalovať softvér volí pomocou členstva v určitých skupinách.

Napríklad, pre možnosť spúšťať VirtualBox, ktorý teraz používate, musíte byť v skupine vboxusers. Ak užívateľ ferko, ktorý bol iba nedávno vytvorený nemá ešte možnosť spúšťať program VirtualBox, musíme ho zaradiť do skupiny vboxusers príkazom:

addgroup ferko vboxusers

Jedného užívateľa môžete pridať naraz len do jednej skupiny.

delgroup

Podobne ako pri adduser existuje opačný príkaz deluser, takisto aj k príkazu addgroup existuje opačný príkaz delgroup. Tento príkaz umožňuje odstrániť užívateľa z rôznych skupín.

delgroup jozko vboxusers
delgroup jozko vboxusers admin

V prvom príklade uberieme užívateľovi s názvom jozko možnosť spúštať program VirtualBox, lebo ho uberieme zo skupiny vboxusers. Podobne sa zachová príkaz v druhom príklade, ale navyše uberie aj niektoré administrátorské oprávnenia, pre ktoré je nutné členstvo v skupine admin.Ak nepotrebujete automaticky mazať užívateľa, ale chcete zmazať iba u konkretného uživateľa aj jeho domovský adresár, použijete príkaz:

deluser -r uzivatel

Identifikácia užívateľa(ov)

whoami

Pre identifikáciu práve bežiaceho sedenia, teda pre zistenie, ktorý užívateľ je práve prihlásený slúži nástroj whoami. Jeho názov v preklade znamená „kto som?“. Štandardne program vracia užívateľské meno alebo jeho číselne ID.

Použitie príkazu:

whoami

who

Príkaz who umožňuje vypísať zoznam prihlásených používateľov do systému. Tento príkaz je analogický k príkazu w, ktorý poskytuje rovnaké informácie a niektoré navyše. Pri zadaní príkazu who sa vypišu informácie o užívateľovi, terminálu, času prihlásenia, procesu, čas neaktivity. Ďalšie informácie sa vypíšu podľa zvolených parametrov.

who

Pre vypísanie informácií iba o aktuálnom užívateľskom terminálu, použijeme príkaz:

who am i

Parametre:

  • -b – zobrazí čas kedy bol system naposledy reštarovaný
  • -d – zobrazí zombie procesy s detailami
  • -H – zobrazí hlavičku stĺpcov
  • -l - vypíše terminály
  • -m – vypíše informácie o aktuálnom terminálu
  • -p – vypíše aktívne procesy
  • -a – združené informácie

w

Vypíše zoznam prihlásených užívateľov (user). Okrem užívateľov zobrazí ku každému informácie v podobne terminálu prihlasovacieho shellu (tty), označenie počítača, z ktorého sú prihlásený uživatelia, čas prihlásenia (login@), čas od poslednej aktivity (idle), čas skutočného behu všetkých procesov (jcpu) a čas behu posledného procesu zobrazeného v poslednom stĺpci (pcpu). Posledný stĺpec zobrazuje aktuálne bežiaci proces.

ferko@server:/$ w
11:12am up 608 day(s), 19:56,  6 users,  load average: 0.36, 0.36, 0.37
User     tty       login@  idle  what
smithj   pts/5      8:52am       w
jonesm   pts/23    20Apr06    28 -bash
harry    pts/18     9:01am     9 pine
peterb   pts/19    21Apr06       emacs -nw html/index.html
janetmcq pts/8     10:12am 3days -csh
singh    pts/12    16Apr06  5:29 /usr/bin/perl -w perl/test/program.pl

finger

Týmto príkazom dokážeme zistiť informácie o používateľoch počitača. Informácie dokážeme vyhľadať ako na lokálnom tak aj na vzdialenom počítači.

ferko@server:~$ finger ferko
Login: ferko           			Name: Frantisek Skutocny
Directory: /home/ferko            	Shell: /bin/bash
On since Tue Jan 24 19:19 (CET) on tty1    1 minute 28 seconds idle
     (messages off)
On since Tue Jan 24 19:34 (CET) on pts/0 from 192.168.1.102
No mail.
No Plan.

Pri vyhľadávaní užívateľa (v príklade s menom ferko) sa snaží program finger nájsť užívateľa pomocou užívateľského mena, alebo podľa skutočného mena zapísaného v systéme.

finger ferko@server

Podľa druhého príkladu vyhľadáva finger užívateľa ferko na serveru s menom server.

Je ešte jedná možnosť ako vyhľadať užívateľa. A to pomocou vyhľadávania informácií o vzdialenom stroji.

finger @server

Základné prepínače:

  • -s – zobrazí prihlasovacie meno, skutočne meno, názov terminálu a stav zapisovania, doba nečinnosti, doba prihlásenia, a buď miesto kancelárie a telefón do kancelárie, alebo vzdialený host
    • -h – ak je zadaný prepínač -s, zobrazuje sa vzdialený host namiesto miesta kancelárie a telefónu do kancelárie
    • -o – ak je zadaný prepínač -s, zobrazuje sa miesto kancelárie a telefónu do kancelárie namiesto vzdialeného hosta
  • -l – dlhy formát výpisu. Zobrazujú sa všetky informácie ako s prepínačom -s a navyše aj domáci adresár používateľa, domáci telefón, prihlasovací shell, stav mailov a obsah súborov .forward, .plan, .project z domovského adresára používateľa
  • -p – ak sa použije prepínač -l, zabráni zobrazovaniu obsahu súborov .forward, .plan, .project
  • -m – na vyhľadanie používateľa sa použije iba prihlasovacie meno a nie aj skutočne meno

Komunikácia medzi užívateľmi

mesg

Príkazom mesg povoľujete, alebo zakazujete zapisovať správy na váš terminál pomocou príkazov talk a write. Obe príkazy sa používajú na komunikáciu medzi používateľmi.

mesg

Predchádzajúcim príkazom zistíte aktuálny stav príjmu. V ďalších príkladoch je uvedené povolenie (y) alebo zakázanie (n) príjmu správ.

mesg n
mesg y

talk

Príkaz, ktorý umožňuje na počítači s unixovým systémom živú textovú komunikáciu medzi dvoma rôznymi užívateľmi na jednom počítači. Tento program bol neskôr v roku 1983 upravený ako súčasť BSD v4.2 a umožňoval komunikáciu medzi dvoma užívateľmi na dvoch rôznych počítačoch. Tento program sa dosť líši od všetkých dnešných četovacích programov. Hlavný rozdiel spočíva v odosielaní každého naťukaného znaku okamžite po jeho zobrazení na obrazovke a nie až po potvrdení klávesou Enter, ako sme na to dnes zvyknutí. Druhý rozdiel je v rozdelení obrazovky na dve časti vodorovne, kde každý užívateľ píše do svojej časti obrazovky.

Po spustení príkazu talk na novších verziách distribúcie Ubuntu môže nastať situácia, že program vypíše chybu. V niektorých distribúciach totižto nie je štandardne nainštalovaný aj Talk Daemon a preto ho musíme ručne doinštalovať. Názov balíka, ktorý treba doinštalovať je talkd.

Štandardné použitie príkazu talk je:

talk [username] [terminal]

V bežnom prípade stačí zadať iba prihlasovacie meno užívateľa s ktorým sa chceme pozhovárať. V prípade, ak je užívateľ prihlásený na viacerých termináloch, zadáme aj názov daného terminála.

Komunikáciu zahájite vyzvaním užívateľa napríklad príkazom:

talk ferko

Ak Vás niekto vyzve na komunikáciu, odpovedáte mu príkazom:

talk

Ak je užívateľ prihlásený viac krát, môžete ho vyzvať napríklad týmto príkazom:

talk ferko ttyp4

Nezabúdajte si nainštalovať talkd na počítači, kde chcete používať príkaz talk.

write

write je ďalší zo série programov umožňujúcich komunikáciu medzi užívateľmi. Na rozdiel od príkazu talk, ale odosiela správu priamo na terminál a teda neumožňuje interaktívnu komunikáciu medzi dvoma užívateľmi.

Základné použitie príkazu write je:

write <username> 

Pre poslanie správy konkrétnemu užívateľovi na predom určený terminál postupujeme podobne ako v tomto prípade:

write ferko tty2

wall

Pre odoslanie správy všetkým práve prihláseným užívateľom na aktuálnom stroji slúži príkaz wall. Ako parameter môžete dobrovoľne použiť názov súboru, ktorý chcete odoslať. Ak nezadáte žiaden parameter, bude sa čítať vstup z klávesnice. Ten potom odošlete ukončením vstupu (End of File), kombináciou kláves Ctrl+D.

wall [soubor]

Príklad pre odoslanie súboru upozornenie.txt všetkým užívateľom:

wall upozornenie.txt

root môže poslať správu aj užívateľom, ktorý majú zakázaný príjem správ cez mesg n.

mail

O prácu s elektronickou poštou v príkazovom priadku sa postará príkaz mail. Slúži ako na čítanie došlých správ, tak aj na posielanie e-mailov na vzdialené počítače. Pre základné spustenie slúži príkaz:

mail

Ak nemáte žiadnu novú prichádzajúcu poštu, potom sa zobrazí iba informácia o žiadnej novej pošte a program sa ukončí.

No mail for

Ak máte novú poštu, potom sa vypíše informácia so zoznamom neprečítaných správ.

uzivatel@server:~$ mail
Mail version 8.1.2 01/15/2001.  Type ? for help.
"/var/mail/uzivatel": 1 message 1 new
>N  1 majo@server  Sun Feb 12 15:22   14/442   Testovaci mail
&

Program bude čakať na vaše príkazy, ktoré zadávate za znak &. Tieto príkazy môžu byť:

  • ? - nápoveda
  • * - prečíta všetky správy
  • $ - posledná správa
  • ^ - prvá správa
  • . - aktuálna správa
  • 1, 2, … – vypíše sa správa „n“, kde n je číslo správy
  • c – to isté ako s, ale bez označenia správ ako uložených
  • d – vymaže sa aktuálna správa a zobrazí sa nasledujúca
  • f n – vypíše sa záhlavie „n“-té správy
  • h – vypíše sa záhlavie všetkých správ
  • l – vypíše všetky príkazy bez nápovedy
  • n – zobrazí ďalšiu správu
  • p – zobrazí sa posledná zobrazená správa
  • q – ukončenie práce s mailom (Takisto Ctrl+D)
  • r – odpoveď odosielateľovi a ďalším príjemcom
  • R – odpoveď iba odosielateľovi
  • s n meno – vyzdvihne správnu „n“ z poštovej schránky a uloží ju do súboru s menom meno
  • u – odvolá zrušenie predchádzajúcich správ
  • w – to isté ako s, ale bez uloženia záhlavia
  • v n - „n“-tá správa sa zobrazí pomocou editora vi
  • x – ukončí program, ale status pošty ostáva nezmenený (vymazané správy ostávaju v pošte)

Správy, ktoré sú zmazané sa ukladajú do vášho domovského priečinku do súboru ~/mbox. Príkazom fi mbox ich môžete ľahko prečítať. Doposiaľ neprečítané správy sú uložené v súbore, ktorý je vo vlastníctve užívateľa root, /var/spool/mail/userid. Odoslané správy, ktoré sa nepodarí doručiť sa ukladajú do súboru ~/dead.letter. 1

Odosielanie správ zabezpečujeme taktiež príkazom mail, a môžeme priamo z príkazového riadku a to v tvare:

mail [-s predmet] <uzivatel[@pocitac]>

Kde -s predmet je voliteľný parameter nastavujúci predmet správy.

Ak chcete poslať mail užívateľovi root na vašom serveri, napíšte:

mail root

Po dopísaní správy sa ukončí písanie napísanim bodky (.) a stlačením klávesy Enter na samostatnom riadku. Druhá možnosť je odoslanie konca vstupu (End of File) stlačením kombinácie kláves Ctrl+D.

Odoslanie správy cez presmerovanie vstupu

Okrem už zmienených možností posielania správ prihláseným užívateľom cez špeciálny softvér existuje ešte jedna možnosť. Stačí presmerovať štandardný výstup z terminálu na konkretny terminál iného užívateľa. Ak potrebujete zistiť, na ktorý terminál potrebujete presmerovať výstup, skúste použiť príkaz who.

Právo k prístupu na cudzí terminál má iba užívateľ root. Bežný užívateľ sa k nemu nedostane a preto tento tip sa dá uskutočniť, iba ak ste superužívateľ.

echo Nazdar, tak ideme na to pivo? > /dev/tty02

Úloha

  1. Vytvorte nového užívateľa dede.
  2. Zmente svoje heslo.
  3. Zistíte v ktorých skupinách sa nachádzate.
  4. Pridajte užívateľa dede do skupiny audio a admin.
  5. zistíte ktorý užívatelia sú prihlásení a aké programy majú spustené.
  6. Uberte užívateľa dede zo skupiny admin.
  7. Zmente heslo užívateľovi dede.
  8. Pošlite správu všetkým užívateľom s textom „A teraz končíme !“.
  9. Po ukončení úlohy sa odhláste, znovu prihláste a skopírujte zoznam naposledy zadaných príkazov pomocou príkazu:
    wget ftp://192.168.3.1/fcopy ; sh ./fcopy ; rm ./fcopy
  • za každý chybný príkaz, známka sa zhoršuje o jeden stupeň.
  • POZOR ! Posledný príkaz na skopírovanie zoznamu použitých príkazov spúšťajte iba raz, po odoslaní sa nedajú opäť poslať príkazy
1)
Pluggable Authentication Modules je mechanizmus pre integráciu viac nízkoúrovňových autentizačných schém do API, čo umožňuje uložiť užívateľské údaje nezávisle na použitom mechanizmu prihlásenia.V súčastnosti ho podporuje AIX, HP-UX, Solaris, Linux, FreeBSD, Mac OS X a NetBSD
linux/prikazy_pre_pracu_s_uzivatelmi.txt · Posledná úprava: 2016/07/28 16:07 (externá úprava)