Interview

Mga tanong sa Linux sa interview: 24 tanong na may sagot

Na-update: · Skillaria.Top

Sa interview para sa Linux, madalas itanong ang istruktura ng file system at inode, hard link at symbolic link, permissions at sudo, process at signal, proseso ng boot, at networking: paano suriin ang mga bukas na port, paano nilulutas ng DNS ang pangalan, at ano ang gagawin kapag hindi maabot ang server.

Itinatanong ang Linux sa mga interview para sa DevOps engineer, system administrator, SRE, at backend developer. Bihirang asahan ng mga interviewer na kabisado mo ang lahat ng flag. Ang mahalaga sa kanila ay kung naiintindihan mo kung paano gumagana ang sistema at kung kaya mong hanapin ang sanhi ng problema. Nasa ibaba ang mga tanong sa Linux interview na pinakamadalas itanong, mula sa pangunahing kaalaman hanggang sa diagnostics, kasama ang sagot at mga utos.

Tip: habang sumasagot, banggitin ang utos na gagamitin mong pagpapatunay sa sinasabi mo. Mas kapani-paniwala ang "titingnan ko gamit ang ss -tlnp" kaysa sa pangkalahatang pahayag.

File system

1. Ano ang FHS at ano ang laman ng mga pangunahing direktoryo?

Ang FHS (Filesystem Hierarchy Standard) ang pamantayan para sa lokasyon ng mga direktoryo. Nagsisimula ang buong puno sa root /; walang drive na may titik, at ang ibang file system ay ikinakabit sa mga direktoryo ng puno.

  • /etc — config ng sistema at mga serbisyo;
  • /var — mga datos na nagbabago: log (/var/log), cache, queue, database;
  • /home — home directory ng mga user, /root — ng root;
  • /usr — mga programa at library; ang /bin at /sbin sa modernong distribution ay kadalasang link sa /usr/bin at /usr/sbin;
  • /tmp — pansamantalang file, /boot — kernel at bootloader;
  • /proc at /sys — virtual na file system na may impormasyon tungkol sa process at kernel, /dev — mga device file.

2. Ano ang inode?

Ang inode ay istruktura ng file system na nag-iimbak ng metadata ng file: uri, permissions, may-ari, laki, timestamp, bilang ng hard link, at mga pointer sa mga data block. Walang pangalan ng file sa inode; nakaimbak ang pangalan sa direktoryo bilang talaan na "pangalan → numero ng inode".

Makikita ang numero ng inode gamit ang ls -i, at ang detalye gamit ang stat file. Limitado ang bilang ng inode sa isang file system, at ipinapakita ng df -i kung ilan na ang nagamit. Klasikong sitwasyon: "maraming espasyo pa ang disk pero hindi makagawa ng file" — naubos na ang inode dahil sa milyun-milyong maliliit na file.

3. Ano ang pagkakaiba ng hard link at symbolic link?

Ang hard link (ln file link) ay isa pang pangalan para sa parehong inode. Pantay ang dalawang pangalan, at mabubura lamang ang datos kapag naging zero ang bilang ng link. Mga limitasyon: hindi maaaring mag-link sa direktoryo, at hindi maaaring lumampas sa iisang file system.

Ang symbolic link (ln -s target link) ay hiwalay na file na may sariling inode, na naglalaman ng path papunta sa target. Maaari itong tumuro sa direktoryo at sa ibang file system, pero "masisira" kapag nabura o nailipat ang target.

4. Puno na ang disk pero mas maliit ang ipinapakita ng du kaysa df. Bakit?

Kadalasan dahil nabura ang file pero may process pa ring nakabukas nito — halimbawa, nabura ang malaking log ng serbisyong tumatakbo. Wala nang pangalan ang file kaya hindi ito makita ng du, pero nakaokupa pa rin ang mga block at binibilang ito ng df.

Hanapin ang mga ganitong file gamit ang lsof +L1 o lsof | grep deleted. Ang solusyon ay i-restart ang process, o i-truncate ang file sa pamamagitan ng descriptor nito: : > /proc/PID/fd/N. Sa hinaharap, linisin ang log gamit ang truncate o logrotate, hindi rm.

5. Ano ang mga hakbang ng boot ng Linux?

Ini-initialize ng firmware (BIOS o UEFI) ang hardware at ibinibigay ang kontrol sa bootloader, kadalasan ang GRUB. Binabasa ng bootloader ang config, nilo-load sa memorya ang kernel at ang initramfs — isang pansamantalang root file system na naglalaman ng mga driver na kailangan para maabot ang tunay na root.

Ini-initialize ng kernel ang mga device, mino-mount ang root file system, at pinapatakbo ang unang user-space process na may PID 1 — sa karamihan ng distribution, ang systemd. Pinapatakbo ng systemd ang mga serbisyo hanggang sa default target, halimbawa multi-user.target. Makikita ang oras ng bawat yugto gamit ang systemd-analyze.

6. Ano ang ginagawa ng mount, at saan idinedeklara ang awtomatikong pag-mount sa boot?

Ikinakabit ng mount ang file system mula sa device papunta sa isang direktoryo (mount point): mount /dev/sdb1 /mnt/data. Ipinapakita ng findmnt o ng mount na walang argumento ang kasalukuyang mount.

Ang pag-mount sa boot ay nakadeklara sa /etc/fstab. Mas mainam na tukuyin ang device gamit ang UUID (makikita sa blkid) kaysa pangalan na tulad ng /dev/sdb1, dahil maaaring magbago ang pangalan. Bago mag-reboot, suriin ang mga pagbabago gamit ang mount -a, dahil ang mali sa fstab ay maaaring pumigil sa boot.

User at permissions

7. Paano gumagana ang permissions sa Linux?

May may-ari, grupo, at tatlong set ng permission ang bawat file: para sa may-ari, para sa grupo, at para sa iba. Ang bawat set ay binubuo ng r (read), w (write), x (execute). Sa numeric na anyo: r=4, w=2, x=1, kaya ang chmod 640 file ay nagbibigay sa may-ari ng read at write, sa grupo ng read, at sa iba ng wala.

$ ls -l app.conf
-rw-r----- 1 deploy www-data 512 Oct 12 10:03 app.conf

Binabago ang may-ari gamit ang chown user:group file, at ang permissions gamit ang chmod.

8. Ano ang ibig sabihin ng r, w, x para sa direktoryo?

Iba ang kahulugan para sa direktoryo: r — makita ang listahan ng mga pangalan; w — gumawa, magbura, at magpalit ng pangalan ng mga file sa loob; x — pumasok sa direktoryo at ma-access ang mga file sa pamamagitan ng pangalan.

Mahalagang kahihinatnan nito: maaaring magbura ng file na hindi kanya ang taong may write sa direktoryo. At kung walang x sa direktoryo, hindi makakatulong kahit may r: makikita mo ang mga pangalan pero hindi mabubuksan ang mga file.

9. Ano ang SUID, SGID, at sticky bit?

Pinapatakbo ng SUID sa executable file ang programa gamit ang permissions ng may-ari ng file, hindi ng nagpatakbo. Klasikong halimbawa ang /usr/bin/passwd: pag-aari ng root at kayang baguhin ang /etc/shadow. Ginagawa ng SGID ang parehong bagay para sa grupo, at sa direktoryo ay nagpapamana ng grupo ng direktoryo sa mga bagong file — kapaki-pakinabang para sa mga shared folder.

Pinapayagan ng sticky bit sa direktoryo na burahin lamang ng may-ari ang kanyang file, kahit maisusulatan ng lahat ang direktoryo. Ganito gumagana ang /tmp: makikita sa ls -ld /tmp ang drwxrwxrwt. Para hanapin lahat ng SUID file sa audit: find / -perm -4000 -type f 2>/dev/null.

10. Ano ang umask?

Ang umask ay maskara na nag-aalis ng permissions sa mga bagong file at direktoryo. Ang base na permissions ay 666 para sa file at 777 para sa direktoryo, at binabawasan ng umask ang mga bit. Sa karaniwang umask na 022, nagkakaroon ng 644 ang mga file at 755 ang mga direktoryo. Makikita ang kasalukuyang halaga gamit ang utos na umask.

11. Saan nakaimbak ang mga user at password?

Nasa /etc/passwd ang mga account: pangalan, UID, GID ng pangunahing grupo, home directory, at shell. Inilipat ang password hash sa /etc/shadow, na tanging root ang nakababasa — kaya hindi maaaring kunin ng ordinaryong user ang mga hash para hulaan. Inilalarawan ang mga grupo sa /etc/group.

Maginhawang tingnan ang impormasyon ng user gamit ang id user at getent passwd user — kasama sa ikalawa ang mga panlabas na pinagmulan gaya ng LDAP.

12. Paano gumagana ang sudo at bakit mas maganda ito kaysa mag-login bilang root?

Pinapatakbo ng sudo ang isang utos bilang ibang user (default ay root) ayon sa mga patakaran sa /etc/sudoers at sa mga file sa /etc/sudoers.d/. Ang password ng user mismo ang inilalagay, hindi ang password ng root, at bawat aksyon ay naitatala sa log kasama ang pangalan ng gumawa.

Maaaring payagan ng patakaran ang lahat (alena ALL=(ALL:ALL) ALL) o ilang partikular na utos lamang. Dapat gamitin ang visudo sa pag-edit ng sudoers: sinusuri nito ang syntax bago i-save, at hindi ka mawawalan ng sudo dahil sa pagkakamali. Sa Ubuntu, ibinibigay ang admin rights sa pamamagitan ng pagiging miyembro ng grupong sudo; sa mga distribution na RHEL, ng grupong wheel.

13. Paano idagdag ang user sa grupo, at bakit hindi agad nagkakabisa ang pagbabago?

Idinadagdag ng usermod -aG docker alena ang user sa karagdagang grupo. Kailangan ang flag na -a: kung wala ito, papalitan ng -G ang buong listahan ng grupo.

Nagkakabisa ang pagbabago sa susunod na pag-login, dahil ang kasalukuyang session ay nagtatago pa ng lumang listahan ng grupo. Puwedeng mag-log in muli, o magbukas ng shell na may bagong grupo gamit ang newgrp docker. Suriin gamit ang id.

Mga process

14. Ano ang process, PID, at paano tingnan ang mga process?

Ang process ay tumatakbong programa na may sariling address space, mga bukas na file, at PID. Bawat process ay may magulang (PPID); ang karaniwang ninuno ay ang process na may PID 1. Makikita ang listahan ng process gamit ang ps aux o ps -ef, ang puno gamit ang pstree o ps -ef --forest, at real time gamit ang top o htop.

15. Ano ang pagkakaiba ng SIGTERM at SIGKILL?

Ang kill PID ay nagpapadala ng SIGTERM (15) bilang default — isang magalang na hiling na tapusin. Maaaring hulihin ito ng process, isara ang mga koneksyon, i-save ang datos, at lumabas. Ang SIGKILL (9, kill -9) ay hindi mahuhuli: agad na tinatapos ng kernel ang process nang walang paglilinis.

Tamang pagkakasunod: SIGTERM muna, at SIGKILL lamang kapag hindi tumutugon ang process. Isa pang karaniwang signal ang SIGHUP: maraming daemon ang nagbabasa muli ng config kapag natanggap ito.

16. Ano ang zombie process?

Ang zombie ay process na tapos na, pero hindi pa nababasa ng magulang nito ang exit code sa pamamagitan ng wait(). Halos walang gamit na resource ito, pero may entry pa rin sa process table. Sa ps, ang estado nito ay Z.

Hindi mapapatay ang zombie dahil patay na ito. Kailangang kunin ito ng magulang — ayusin ang magulang na programa, o tapusin ang magulang; kapag nangyari iyon, ipapasa ang zombie sa PID 1, at lilinisin ito.

17. Ano ang ipinapakita ng load average?

Ang tatlong numero sa uptime at top ay ang average na bilang ng process na naghihintay tumakbo sa loob ng 1, 5, at 15 minuto. Sa Linux, kasama rito ang mga process na naghihintay sa hindi maaantala na estado (estado D), kadalasan ang paghihintay sa disk.

Ikinukumpara ang halaga sa bilang ng core (nproc): ang load 4 sa 4 na core ay ganap na karga, at sa 16 na core ay isang-kapat lamang. Ang mataas na load kahit mababa ang CPU ay senyales ng problema sa I/O; sinusuri ito gamit ang iostat o ang kolum na wa sa top.

Network

18. Paano tingnan ang IP address, routing, at mga bukas na port?

Makikita ang address ng interface gamit ang ip a, at ang routing table gamit ang ip r. Hindi naka-install sa maraming distribution ang lumang ifconfig at netstat mula sa net-tools.

Ang mga port na nakikinig at ang process na nagbukas nito ay ipinapakita ng ss -tlnp: t — TCP, l — nakikinig lamang, n — walang pagsasalin sa pangalan, p — kasama ang process. Para sa UDP, ss -ulnp.

$ sudo ss -tlnp
State  Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0      511          0.0.0.0:80        0.0.0.0:*     users:(("nginx",pid=812,fd=6))
LISTEN 0      128          0.0.0.0:22        0.0.0.0:*     users:(("sshd",pid=640,fd=3))

19. Nakikinig ang serbisyo sa 127.0.0.1:8080 — maaari ba itong ma-access mula sa labas?

Hindi. Ang 127.0.0.1 ay loopback interface na maa-access lamang mula sa mismong makina. Para tumanggap ng koneksyon mula sa labas, dapat makinig ang serbisyo sa address ng panlabas na interface, o sa 0.0.0.0 (lahat ng IPv4 address). Ito ang karaniwang dahilan ng "bukas ang port pero hindi ma-access mula sa labas", kasama ng firewall.

20. Paano ginagawang IP address ng Linux ang hostname?

Itinatakda ng linyang hosts: sa /etc/nsswitch.conf ang pagkakasunod ng mga pinagmulan, kadalasan ang /etc/hosts muna, saka ang DNS. Nagmumula ang address ng DNS server sa /etc/resolv.conf; sa mga sistemang gumagamit ng systemd-resolved, lokal na address na 127.0.0.53 ang nakalagay doon, at ipinapakita ng resolvectl status ang tunay na mga server.

Suriin gamit ang dig example.com o dig @1.1.1.1 example.com (query sa partikular na server). Mahalagang detalye: direktang nagtatanong sa DNS ang dig at nslookup at hindi binabasa ang /etc/hosts, samantalang ang getent hosts example.com ay dumadaan sa parehong landas na ginagamit ng mga application.

21. Ano ang pagkakaiba ng TCP at UDP?

Nagtatatag ng koneksyon ang TCP (three-way handshake na SYN, SYN-ACK, ACK), tinitiyak ang paghahatid at pagkakasunod ng datos, at inuulit ang mga nawalang packet. Tumatakbo rito ang HTTP, SSH, at karamihan ng database. Nagpapadala ang UDP ng datagram nang walang koneksyon at walang garantiya, pero mas mababa ang latency — ginagamit sa DNS query, video call, at laro.

22. Hindi bumubukas ang website. Paano mo hahanapin ang sanhi?

Dumaan sa mga patong, mula sa pangalan papunta sa application:

  1. Nare-resolve ba ang pangalan: dig site.example, tugma ba ang address sa inaasahan.
  2. Maaabot ba ang host: ping (maaaring naka-block), traceroute, o mtr.
  3. Bukas ba ang port: nc -zv host 443 o curl -v https://site.example.
  4. Sa server: tumatakbo ba ang serbisyo (systemctl status nginx), nakikinig ba ang port (ss -tlnp), hinaharangan ba ng firewall (sudo nft list ruleset, sudo ufw status).
  5. Log ng application at journalctl -u ng serbisyo.

Ang sistematikong pagkakasunod ang mahalaga sa interviewer, hindi ang partikular na hanay ng mga kasangkapan.

23. Ano ang TIME_WAIT na estado?

Pagkatapos isara ang koneksyon sa TCP, pinananatili ng panig na nagsara muna ang socket sa TIME_WAIT sa loob ng ilang panahon, para hindi mapunta sa bagong koneksyon na may parehong address at port ang mga late na packet ng lumang koneksyon. Normal ang malaking bilang ng TIME_WAIT sa mabigat na server o client na maraming maiikling koneksyon. Mabibilang ito gamit ang ss -tan state time-wait | wc -l.

24. Ano ang pagkakaiba ng /etc/hosts at DNS, at kailan kailangan ang /etc/hosts?

Ang /etc/hosts ay static na talaan ng "address — pangalan" sa isang partikular na makina. Sinusuri ito bago ang DNS (sa karaniwang nsswitch) at kapaki-pakinabang sa pagsubok: halimbawa, ituro ang domain sa bagong server bago palitan ang DNS record. Ang DNS ay distributed na sistema na nakikita ng lahat ng client ang mga sagot. Madalas na sanhi ng "bumubukas sa akin ang site pero sa iba hindi" ang maling entry sa /etc/hosts.

Buod

Sinusubok ng mga tanong sa Linux interview ang tatlong bagay: naiintindihan mo ba ang modelo ng sistema (inode, permissions, process, boot), alam mo ba ang mga kasangkapan sa diagnostics (ss, dig, journalctl, lsof), at kaya mo bang hanapin ang sanhi nang sunod-sunod. Sumagot na may mga utos at halimbawa mula sa tunay na karanasan. Ang file system, permissions, at network ay itinuturo nang detalyado at praktikal sa kursong Linux.

Mga madalas itanong

Ano ang karaniwang tinatanong sa Linux ng junior DevOps?

Kadalasan ang batayan: navigation at permissions, process at systemctl, pagbasa ng log, mga network tool gaya ng ip, ss, dig, at curl, at pangunahing bash script. Madalas ding may praktikal na gawain tulad ng "hanapin kung ano ang kumakain ng disk".

Kailangan bang kabisado ang lahat ng flag ng mga utos?

Hindi. Puwedeng sabihin na titingnan mo ang flag sa man. Mas mahalaga na maintindihan kung aling kasangkapan ang lumulutas ng problema, at kung ano ang ibig sabihin ng output nito.

Aling distribution ang dapat pag-aralan para sa interview?

Puwede ang alinmang popular na server distribution, gaya ng Ubuntu o Debian, o Rocky Linux na kabilang sa pamilyang RHEL. Pareho ang pundasyon; ang pangunahing pagkakaiba ay ang package manager at ang pangalan ng ilang serbisyo.

Paano maghanda para sa praktikal na bahagi ng interview sa Linux?

Magtayo ng virtual machine at lutasin ang totoong gawain: i-set up ang web server bilang serbisyo ng systemd, mag-login gamit ang SSH key, mag-firewall, at hanapin ang process mula sa port. Mahalaga ring ipaliwanag nang malakas ang bawat hakbang mo.