Ma koliko znanja i iskustva imali sa svime i svačime – kad odete na razgovor za posao možete očekivati neočekivana pitanja – a pri tome ne mislim na najdebilnija difoltna pitanja koja je čovek izmislio na planeti tipa „Gde vidite sebe u našem timu za 10 godina“ ili „Zašto bismo zaposlili baš vas a ne nekog drugog“ nego mislim baš na strogo stručna pitanja koja bi trebali da znate i očekuje se da znate.

Recimo ja, po ceo celcati dan visim nad konzolom i mRemoteNG-om, po ceo dan crn prozor ispred mene ko da sam Saša Matić – odem na razgovor na posao i padnem na pitanju: „Kojom komandom možeš prekopirati fajl xxx.txt iz foldera AAA u folder BBB a da ostanu originalne permisije“. Jednostavno, naleti se na pitanja u stvarima sa kojima nikad niste radili – ja recimo nikad nisam radio kopiranje a da mi trebaju originalne permisije – a i kad bi mi trebalo to uradio bih „man cp“ i video bih koji parametar puca na to – a u ovom slučaju radi se o parametru p kao preserve, pa bi originalna komanda bila: cp -p /path/to/AAA/xxx.txt /path/to/BBB

U testovima znanja ispod se nalaze testovi za tri pozicije od kojih sam ja bio na testiranju za dve – Systemski programer za Linux, Junior System Administrator i Linux System Administrator (nisam bio na testu za Juniora nego mi je pratilac bloga poslao test putem Facebooka) – sa pitanjima od kojih na neka pitanja nemam odgovor ni sad a neću da guglam u’inat jer me nije blam priznati da nešto ne znam pa neka tako i ostane i po cenu javnog blama. U svim testovima se tražilo da se odgovore iz glave i bez korišćenja ikakve pomoći (man, Google, other). Pitanja su obeležena onako kako sam ih radio i kako sam ih znao (bez naknadnog guglanja za ovaj tekst) i crvenom bojom su obeležena pitanja koja nisam znao pa ako neko ima odgovor neka javi da dopišem – i da ga označim kao pomagača i bilo bi idealno da taj pomagač ne gugla nego odgovori iz glave.

Inače, gle paradoksa ja System Administrator – najmanje znanja imam za poziciju Junior System Administrator na koju se na svu sreću nisam ni prijavio nego mi je pratilac bloga poslao ceo test – jer bih se na testiranjeu crveneo ko Ivica Dačić pred ovalom slan’ne.

Namerno sam stavio da se za odgovor mora kliknuti u + kako bi pokušali prvo sebe da preslišate….da li biste znali odgovore iz glave, bez podsećanja i ičega drugog.

Pozicija:
Sistemski programer za Linux (shell)

Na ovom testu sam pokidao, sve sam tačno odgovorio – everntualno se može svesti pod peh da sam na par mesta zaboravio tipa da stavim ‘fi’ ili imao sintaksne greške tipa umesto ‘read’ stavio ‘reda’ – ali to nije bio problem za ljude koji su držali test – bitno im je bilo samo da znaju da postoji, kako rekoše, ispravan način razmišljanja i poznavanja sintakse. Na testu ste imali VirtualBox mašinu za potrebe testiranja – ali bez PuTTY pristupa (samo kuckanje direkt u VirtualBoxu) – tako da je test koda bio apsolutno nepraktičan…tako da sam sve udarao iz glave i bez testiranja. Rok za završetak ovog testa je bio 30 minuta.

1) Napravi shell skriptu koje će raditi sledeće
  • Ulazni parametar: Enter folder name:
  • Ispiši koliko se fajlova nalazi ukupno unutar tog foldera
  • Napravi fajl u kojem će se nalaziti rezultat u human friendly formatu i ispiši gde se nalazi taj fajl
  • Ispiši tekst „Completed“
Odgovor
read -p "Enter folder name: " FOLDERNAME
if [ -d ${FOLDERNAME} ]
then
	echo "There is `find ${FOLDERNAME} -type f | wc -l` files in ${FOLDERNAME}" | tee /tmp/output_file.txt
	echo "File with result is: /tmp/output_file.txt"
	echo "Completed"
else 
	echo "There is no folder with name ${FOLDERNAME}. Sorry, try again."
fi
2) Napravi shell skriptu koje će raditi sledeće
  • Ulazni parametar: Enter user:
  • Ulazni parametar: Enter password:
  • Ući u mysql sa tim kredencijalima
  • Napraviti fajl u kojem će se nalaziti spisak svih dostupnih baza
  • Ispiši tekst „Complete“ ako je login bio uspešan
Odgovor
read -p "Enter user : "     DB_USER
read -p "Enter password : " DB_PASS
mysql -u ${DB_USER} -p"${DB_PASS}" -e "show databases;" > /tmp/output.txt 2>/dev/null

if [ $? = 0 ] ; then
echo "Complete"
else 
echo "Something goes wrong, does user ${DB_USER} with password ${DB_PASS} exists?"
fi
3) Napravi shell skriptu koje će raditi sledeće
  • Napraviti fajl u kojem će se nalaziti u jednoj liniji: Timestamp – Hostname:
Odgovor
echo "`date` - `hostname`: " > /tmp/output_file.txt
4) Napravi shell skriptu koje će raditi sledeće
  • Ulazni parametar: Enter first name
  • Ulazni parametar: Enter last name
  • Ispiši na displeju: Hello Lastname, Firstname
  • Napravi izlazni fajl sa rezultatom
  • Ispiši trenutni datum i vreme u human friendly formatu
Odgovor
read -p "Enter first name: " FIRSTNAME
read -p "Enter last name: " LASTNAME
echo "Hello ${LASTNAME}, ${FIRSTNAME}" | tee /tmp/output_file.txt
echo "Today is: "$(date +'%A, %d.%m.%Y (%H:%M'\))
5) Napravi shell skriptu koje će raditi sledeće
  • Pročitaj sve linije iz fajla /root/test.txt
  • Prikaži svaku liniju na displeju – sa brojem linije
Odgovor
grep -n "" /root/test.txt # 🙂
6) Napravi shell skriptu koje će raditi sledeće
  • Ulazni parametar: Enter the Source Folder:
  • Ulazni parametar: Enter the Destination Folder:
  • Napravi Destination folder – ako ne postoji
  • Prekopiraj sav sadržaj iz Source Foldera u Destination Folder
Odgovor
read -p "Enter the Source Folder: "      SOURCEFOLDER
read -p "Enter the Destination Folder: " DESTINATIONFOLDER

if [ ! -d "$SOURCEFOLDER" ]; then
  echo "There is no source folder: ${SOURCEFOLDER}"
  exit 1
fi

mkdir -p ${DESTINATIONFOLDER}
cp -r ${SOURCEFOLDER}/. ${DESTINATIONFOLDER}
7) Napravi shell skriptu koje će raditi sledeće
  • Ulazni parametar: Enter 1st number:
  • Ulazni parametar: Enter 2nd number
  • Ispiši koji je broj veći od ta dva
Odgovor
read -p "Enter 1st number: " NO1
read -p "Enter 2nd number  " NO2

if [ ${NO1} -gt ${NO2} ] ; then
	echo "${NO1} is bigger"
	else
	echo "${NO2} is bigger"
fi
# Bonus 🙂
if [ ${NO1} -eq ${NO2} ] ; then
	echo "Numbers are equal"
fi

Pozicija:
Junior System Administrator

Ovo je test koji mi je poslao jedan pratilac bloga a radi se o jednoj velikoj firmi koja posluje na teritoriji cele Srbije. Pola od ovih pitanja pojma nemam (kao ovo za Linksys) i da sam išao na testiranje pošteno bih se izblamirao s obzirom da su pitanja za Junior mene i isterali bi me govnjivom motkom iz sale ili kancelarije – dakle onde ne bih ušao ni u zadnjih 10. Ako su ovo pitanja za sistem juniora, mogu misliti kakva li su tek pitanja za seniora.

1. Linux komanda kojom se zahteva nova IP adresa od DHCP servera je:
Odgovor
dhclient -r
2. Windows CLI komanda kojom se može proveriti kad ističe domen lozinka je:
Odgovor
# Nisam najsigurniji pošto je pitanje poprilično konfuzno, 
# ali mislim da su mislili na ovo
net user %USERNAME% /domain
3. Da li znate koji se servisi mogu povezati preko SSO ili ste već imali prilike da implementirate tako nešto u Windows/Linux okruženju?

Pojma nemam niti ću da guglam. Ako neko ima odgovor neka javi u komentaru.

4. Prednosti Linksys WRT54GL rutera?

Pojma nemam niti ću da guglam. Ako neko ima odgovor neka javi u komentaru. Pretpostavljam, pošto je u pitanju Linksys da je u pitanju niska cena – ali za konkretno ovaj model – gde znam. Takođe mogu pretpostaviti da pošto je u pitanju WRT, da se radi o firmveru koji se lako može prilagođavati lokalnim potrebama.

5. Koja je glavna prednost najnovije verzije Samba severa?

Pojma nemam niti ću da guglam. Ako neko ima odgovor neka javi u komentaru. Ovde bih nalupao difoltne stvari, tipa povećana bezbednost servera kroz nove inicijalne postavke i slično

6. Podvucite ono što mislite da je tačno u podešavanju radne stanice:
IP: 192.168.255.10 NETMASK:255.255.255.255 GATEWAY:192.168.255.1 DNS: 192.168.255.1
Odgovor

IP: 192.168.255.10 NETMASK:255.255.255.255 GATEWAY:192.168.255.1 DNS: 192.168.255.1

7. Default portovi:
SSH:__ DNS:__ HTTP:__ SSL:__ VNC:__ RDP:__ PPTP:__ L2TP:__ FTP:__
Odgovor
SSH:22 DNS:53 HTTP:80 SSL:443 VNC:5901 RDP:3389 PPTP:1723 L2TP:1701 FTP:21

8. Koja je komanda za kreiranje permanentnih linkova u Linuxu a koja za brisanje istih?

Iskreno, pojma nemam šta su mislili pod permanentni link (zato sam obeležio kao da ne znam), pretpostavljam da su mislili zapravo na symbolic link…ako je to onda je ln -s /source/file /destination/link, ali ako su mislili na hardlinkove onda isto ovo samo bez paramtetra l. Brisanje se radi sa: rm /destination/link

9. Šta je WPAD?
Odgovor
Fajl koji obezbeđuje automatsku konfiguraciju za korišćenje proxy servera na klijentskim uređajima.
10. Windows CLI komanda za osveženje Grupnih polisa:
Odgovor
gpupdate ili se može forsovati sa: gpupdate /force
11. Preporučene komande za update Ubuntu sistema:
Odgovor
sudo apt-get update
sudo apt-get upgrade
12. Glassfish je:
Odgovor

Aplikacioni server

13. Gde se nalazi default profil na Linux računaru?
Odgovor

/etc/profile

14. OpenVPN pravi problem kod korisnika bez administratorskih prava. Šta je rešenje:
Pojma nemam, pretpostavljam da ima neko uputstvo na OpenVPN howto-u (proguglao sam kasnije, ima ali definitivno nije za ‘iz glave’).
15. Nakon instalacije CentOS minimal servera autocomplete funkcija ne radi. Kako se uključuje:
Odgovor

yum install bash-completion (ovo sam proguglao, morao sam – jer nikad u životu nisam imao ovaj problem a instalirao sam jedno bilion CentOS-a). Uglavnom i da mi se desi ovo u radu – proguglao bih, ali pošto je test ‘iz glave’ – pao bih na ovom pitanju pa sam ga i obeležio kao ‘ne znam’.

16. CentOS komanda za instaliranje zasebnog RPM paketa kada je potrebno instalirati i propratne pakete:
Odgovor

yum localinstall paket.rpm

17. Kako se kreira bezbedna veza između DHCP i DNS servera na Linux serveru:

Pojma nemam niti sam uopšte i razumeo pitanje, niti ću da guglam. Ako neko ima odgovor neka javi u komentaru.

18. Razlika između Thin i Tick rezervisanja memorijskog prostora kod VMware ESXi servera:

Prvi put čujem za Thick i Thin memorijski prostor, znam za storage providing. Ako je po istoj filozofiji, Thick zauzuma 100% dodeljenog RAM-a bez obzira koliko se koristi dok Thin zauzima samo onoliko koliko se koristi na hipervizoru. Doduše, rezervisanje memorije se radi na drugi način, tako da – ne znam odgovor na ovo pitanje iz glave i obeležavam ga crvenom (moguće i da je trik pitanje) tako da ako imate odgovor – javnite, uglavnom neću da guglam.

19. Ukratko opisati:
$IPTABLES -t nat -A PREROUTING -p tcp --dport 5900 -i $INTERNET_if DNAT --to 192.168.10.151
Odgovor

Port forwarding na 192.168.10.151:5900

20. Kojom komandom je moguće editovati dokument otvoren VI editorom a kojom se dokument zatvara sa čuvanjem izmena?
Odgovor

Taster insert ili malo i.
:wq! ili :x!

Pozicija:
Linux System Administrator

Na ovom testu sam se pošteno obrukao, onako – za sve pare. Iako sam znao sva pitanja, mozak je bio zablokiran jer sam na testiranje došao posle celonoćnog rada na nekom jebenom problemu ali uspešno sređenom na kraju i odmah posle i prve smene na poslu (oči, mozak, kičma spaljeni) tako da, kad sam odlazio sa razgovora rekao sam ljudima „Zbogom“ jer izgovora nema. Kasnije sam dobio fidbek iz te firme da ljudima uopšte i nije bilo bitno da se zna cela sintaksta iz glave već samo ‘znaš li da pristupiš problemu i znaš li koji se program ili komanda tu uopšte traži’ – recimo na pitanju „Koja se komanda koristi na kompjuteru A da bi se fajl sa kompjutera B prekopirao na kompjuter C“ – njima je bilo dovoljno samo pomenuti scp i osnovno sintaksu tima ‘scp fajl blabla’, ne i cela komanda.

Ovde ću iskucati tačna pitanja (sam sad odmoran, svež i sve znam) ali ću obeležiti u odgovorima šta sam znao a šta ne iz glave.

Prekopiraj ceo sadržaj foldera AAA u folder BBB ali da ostanu originalne permisije
Odgovor
# Nisam znao sintaksu iz glave, tj ovo 'p'
cp -pa AAA/. BBB/
Od čega je skraćenica selinux?
Odgovor
Security-Enhanced Linux (ovo sam znao iz glave)
Napravi fajl od 250MB
Odgovor
# Nisam mogao da se setim sintakse iz glave iako ovo redovno radim
dd if=/dev/zero of=filename bs=1M count=250
Kako pronaći sve fajlove starije od 30 dana a da su veći od 20MB pa ih obrisati
Odgovor
# Nisam mogao da se setim ovog paramtetra -size +10M, ostalo sam znao
find /path/ -type f -mtime +30 -size +10M -exec rm -f {} \;
Kako jednom komandom - sa kompjutera 192.168.0.1 prekopirati folder pun fajlova sa kompjutera 192.168.0.2 - na kompjuter 192.168.0.3
Odgovor
# Nisam mogao da se setim pune sintakse jer ovo nikad nisam radio
# Najdalje što sam radio je scp somefile user@IP:/path/to/folder
scp user@192.168.0.2:/path/to/folder/* user@192.168.0.3:/path/to/folder/
Dodao sam ti novi disk...proširi njime postojeći LVM (čak sam napravio na blogu i uputstvo iz ovoga ali mozak block). Ispiši sve korake i sintaksu.

Ovo već nisam znao napamet iako sam radio milion puta. Znao sam napamet onaj fdisk deo i kako glase komande pvcreate, lvcreate… tako da sam odgovorio da ne znam napamet i jebiga. Inače odgovor na ovo pitanje sam i sam svojevremeno napisao na blogu, link ovde

Kako se zove daemon koji puni /var/log/messages?

Ovo je jedino pitanje koje stvarno nisam znao, a odgovor je: syslogd

Kako članovima grupe dev dati read i execute privilegije nad folderom ccccc.
Odgovor
# Nisam znao iz glave iako sam znao da je preko ACL-a. Umor uradio svoje
setfacl -m g:dev:rx /ccccc/
Navedi sve informacije i strukturu iz /etc/passwd
Odgovor

Username, Pasword (is set), UID, GID, Info, home folder i koji shell koristi defalutno. Ovde sam zaboravio na Password i info u fajlu iako znam šta su kad otvorim fajl – tako da se odgovor vodi kao nepotpun.

U kom fajlu u Tomcatu se definiše port a u koji fajl je glavni za praćenje logova
Odgovor

server.xml i catalina.out (ovo sam znao)

U kom fajlu u Oracle-u se mogu naći greške koje se javaljaju u radu Oraclea
Odgovor

alert.log – ali mi i dalje nije jasno kakve veze ovo pitanje ima sa Linux administracijom.

Koji je defaultni port na kojem radi Tomcat i na koja dva načina se on može promeniti?
Odgovor

Difoltno radi na 8080 i može se promeniti u server.xml fajlu ili se postaviti port foward.

U kom fajlu se nalazi podatak o lozinki korisnika?
Odgovor

/etc/passwd (da li je lozinka setovana) i /etc/shadow (sama lozinka ali u šifrovanom formatu)

Može li swap da se proširi a da se ne restartuje server?
Odgovor

Može, doda se zasebni swap fajl sa toliko-i-toliko veličine i sa mkswap i swapon doda bez restarta a ovaj info se doda i u fstab (offtopic – ima ovde kako)

Kojom komandom možeš ispratiti opterećenje servera i locirati šta ga zeza?
Odgovor

top, wmstat, sar za istorijsko praćenje unazad ako je instaliran sysstat.

Kad se napune 100% i RAM i SWAP, šta se tad dešava?
Odgovor

Sistem pokreće oom_kill_process koji ubija teške procese kako bi oslobodio RAM za normalan rad sistema.

Čemu služi fajl hosts.allow?
Odgovor

Definiše se odakle se kom servisu na sistemu može prići (ako je u hosts.deny postavljeno ALL : ALL).
(ovde sam pobrkao /etc/hosts i /etc/hosts.allow pa sam dao neki odgovor koji apsolutno nema veze sa hosts.allow).