Naredbe za koje (možda) niste znali 19: getent

Za dohvat podataka o korisnicima možemo, pored ostalih, rabiti naredbu getent. Ova naredba može dohvatiti i druge podatke, jer može čitati iz drugih "baza" na sustavu, poput baze hostova (/etc/hosts), servisa (/etc/services) ili grupa korisnika (/etc/group). Primjerice, ukoliko želite saznati informacije o korisniku iz baze /etc/passwd, pokrenut ćemo getent na ovaj način:

# getent passwd ivica
ivica:x:1001:100:Ivica Ivic:/home/ivica:/bin/bash

Grupe korisnika možemo saznati ovako:

# getent group users
users:x:100:

Ukoliko vas ovaj ispis podsjeća na običan ispis koji možete dobiti naredbom grep, u pravu ste, ali samo djelomično.  Naime, getent vadi podatke iz baza onako kako ih sustav vidi (konfiguracija se nalazi u datoteci /etc/nsswitch.conf).  Ovo konkretno znači da ćete dobiti podatke i iz LDAP baze, ukoliko ste na taj način konfigurirali sustav.  Slično je i za starije sustave, bazirane na NIS-u.

Ukoliko želimo ispisati cijelu bazu, jednostavno navedite bazu bez dodatnog parametra:

# getent hosts
127.0.0.1 localhost
161.53.x.5 host1
161.53.y.252 host2
193.198.x.26 host3
127.0.0.1 ip6-localhost ip6-loopback

U gornjem primjeru smo odmah demonstrirali kako dobiti podatke iz treće baze, popisa hostova koje ste unijeli u datoteku /etc/hosts.

Sljedeća baza je baza servisa, pa ukoliko želimo saznati na kojem portu sluša LDAP servis i njegova enkriptirana inačica, otkucat ćemo:

# getent services ldap
ldap                  389/tcp
# getent services ldaps
ldaps                 636/tcp

Ostale dvije baze su networks i protocols. Baza protokola nam nije previše zanimljiva, jer sadržava samo broj i alias protokola unutar TCP/IP zaglavlja, te je tako možda više zanimljivija programerima. Baza mreža sadržava bazu podataka o mrežama, koje se nalaze u datoteci /etc/networks, koju rabe naredbe netstat i route.

Zaključak je da je naredbu getent najbolje rabiti unutar skripti umjesto naredbe grep, jer je "vjerodostojnija" (neće ispisati ništa ukoliko korisnik ne postoji na sustavu).  Također, sigurnije ju je rabiti nego grep, jer uvijek vraća jedan rezultat, ili ga uopće ne vraća.

Ukoliko, u nekoj brzini, idemo rabiti naredbu grep, možemo dobiti više rezultata, primjerice "grep -i ivic /etc/passwd" će ispisati podatke korisnika "ivica", ali i bilo kojeg drugog korisnika kojem bilo koji podatak iz GECOS polja (primjerice prezime "Sljivic"), završava na "-ivic". Ovo je pogotovo nezgodno ukoliko getnet rabite u skripti, jer na jednom sustavu može raditi sasvim u redu, a na drugom (gdje ima više korisnika), neće raditi kako treba, što može napraviti i "štetu" na sustavu.

 

Kuharice: 
Kategorije: 
Vote: 
0
No votes yet