Maswali ya Linux kwenye usaili: maswali 24 yenye majibu
Kwenye usaili wa Linux, maswali yanayoulizwa zaidi ni kuhusu muundo wa mfumo wa faili na inode, viungo vigumu na vya ishara, ruhusa na sudo, michakato na ishara, jinsi mfumo unavyowaka, na mtandao: jinsi ya kuangalia port zilizo wazi, jinsi utatuzi wa DNS unavyofanya kazi, na la kufanya seva isipofikika.
Linux huulizwa kwenye usaili wa wahandisi wa DevOps, wasimamizi wa mifumo, SRE, na watengenezaji wa backend. Wahoji hawatarajii kukariri bendera za amri: wanachotaka kujua ni kama unaelewa jinsi mfumo unavyofanya kazi, na kama unaweza kupata chanzo cha tatizo. Hapa chini kuna maswali ya Linux yanayoulizwa mara nyingi zaidi kwenye usaili, kuanzia ya msingi hadi ya uchunguzi, pamoja na majibu na amri.
Ushauri: unapojibu, taja amri utakayotumia kuthibitisha unachosema. Sentensi "nitaangalia kwa ss -tlnp" inasikika kwa uhakika zaidi kuliko maneno ya jumla.
Mfumo wa faili
1. FHS ni nini, na nini kiko kwenye saraka kuu?
FHS (Filesystem Hierarchy Standard) ni kiwango cha mpangilio wa saraka. Mti mzima unaanzia kwenye root /, hakuna diski zenye herufi, na mifumo mingine ya faili huunganishwa kwenye saraka zilizo ndani ya mti huo.
/etc— usanidi wa mfumo na huduma;/var— data inayobadilika: kumbukumbu (/var/log), cache, foleni, hifadhidata;/home— saraka za nyumbani za watumiaji,/root— saraka ya nyumbani ya root;/usr— programu na maktaba;/binna/sbinkwenye distro za kisasa kwa kawaida ni viungo vya/usr/binna/usr/sbin;/tmp— faili za muda,/boot— kernel na bootloader;/procna/sys— mifumo ya faili ya kivirtuali yenye taarifa kuhusu michakato na kernel,/dev— faili za vifaa.
2. Inode ni nini?
Inode ni muundo wa mfumo wa faili unaohifadhi metadata ya faili: aina, ruhusa, mmiliki, ukubwa, alama za muda, idadi ya viungo vigumu, na viashiria vya blocks za data. Jina la faili halihifadhiwi kwenye inode: jina linahifadhiwa kwenye saraka kama jozi ya "jina → namba ya inode".
Namba ya inode inaonyeshwa na ls -i, maelezo kamili na stat file. Idadi ya inode kwenye mfumo wa faili ni ndogo, na df -i inaonyesha ngapi zimetumika. Hali ya kawaida ni hii: "diski ina nafasi nyingi, lakini faili haliwezi kuundwa" — inode zimeisha kwa sababu ya mamilioni ya faili ndogo.
3. Kiungo kigumu (hard link) kinatofautianaje na kiungo cha ishara (symbolic link)?
Kiungo kigumu (ln file link) ni jina lingine la inode ile ile. Majina yote mawili ni sawa, na data inafutwa tu wakati idadi ya viungo inafika sifuri. Vizuizi: haiwezi kuunganisha saraka, na haiwezi kuvuka mpaka wa mfumo mmoja wa faili.
Kiungo cha ishara (ln -s target link) ni faili tofauti lenye inode yake, na ndani yake kuna njia ya lengo. Linaweza kuelekeza kwenye saraka na kwenye mfumo mwingine wa faili, lakini "linavunjika" ikiwa lengo limefutwa au limehamishwa.
4. Nafasi ya diski imeisha, lakini du inaonyesha kidogo kuliko df. Kwa nini?
Sababu ya kawaida ni kwamba faili limefutwa, lakini bado linafunguliwa na mchakato fulani — kwa mfano kumbukumbu kubwa ya huduma inayoendelea kufanya kazi imefutwa. Jina lake halipo tena, kwa hiyo du haliliona, lakini blocks bado zimetumika, na df bado inazihesabu.
Kutafuta faili kama hizi: lsof +L1 au lsof | grep deleted. Suluhisho: anzisha upya mchakato, au safisha faili kupitia kielelezo chake: : > /proc/PID/fd/N. Kwa siku zijazo, kumbukumbu zisafishwe kwa truncate au kuzungusha kwa logrotate, si kwa rm.
5. Linux inawakaje?
Firmware (BIOS au UEFI) inaanzisha vifaa kisha inakabidhi udhibiti kwa bootloader, kwa kawaida GRUB. Bootloader inasoma usanidi wake, kisha inapakia kernel na initramfs — mfumo wa faili wa root wa muda wenye madereva yanayohitajika kufikia root halisi — kwenye kumbukumbu.
Kernel inaanzisha vifaa, inaunganisha mfumo wa faili wa root, na kuendesha mchakato wa kwanza wa nafasi ya mtumiaji wenye PID 1 — kwenye distro nyingi ni systemd. Inaanzisha huduma hadi target ya chaguo-msingi, kwa mfano multi-user.target. Muda wa kila hatua unaonyeshwa na systemd-analyze.
6. Amri ya mount inafanya nini, na kuunganisha kiotomatiki kunaelezwa wapi?
mount huunganisha mfumo wa faili kutoka kwenye kifaa hadi saraka (sehemu ya kuunganisha): mount /dev/sdb1 /mnt/data. Miunganisho ya sasa huonyeshwa na findmnt au mount bila hoja.
Kuunganisha wakati wa kuwasha kunaelezwa kwenye /etc/fstab. Vifaa vinapaswa kuandikwa kwa UUID (inayoonyeshwa na blkid), si kwa jina kama /dev/sdb1 ambalo linaweza kubadilika. Kabla ya kuwasha upya, mabadiliko hukaguliwa kwa mount -a: kosa kwenye fstab linaweza kusimamisha kuwasha.
Watumiaji na ruhusa
7. Ruhusa za Linux zinafanyaje kazi?
Kila faili lina mmiliki, kundi, na seti tatu za ruhusa: kwa mmiliki, kundi, na wengine. Kila seti ina r (kusoma), w (kuandika), na x (kutekeleza). Kwa namba, r=4, w=2, x=1, kwa hiyo chmod 640 file inampa mmiliki kusoma na kuandika, kundi kusoma, na wengine hakuna kitu.
$ ls -l app.conf
-rw-r----- 1 deploy www-data 512 Oct 12 10:03 app.conf
Umiliki hubadilishwa kwa chown user:group file, ruhusa kwa chmod.
8. Ruhusa r, w, na x zina maana gani kwa saraka?
Kwa saraka maana ni tofauti: r — unaweza kuona orodha ya majina; w — unaweza kuunda, kufuta na kubadilisha majina ya faili ndani yake; x — unaweza kuingia kwenye saraka na kufikia faili kwa jina lake.
Matokeo yake, mtu anaweza kufuta faili hata ikiwa si lake, mradi ana ruhusa ya kuandika kwenye saraka. Bila x kwenye saraka, ruhusa r haisaidii: majina yanaonekana, lakini faili haliwezi kufunguliwa.
9. SUID, SGID, na sticky bit ni nini?
SUID kwenye faili linaloweza kutekelezwa linaendesha programu kwa haki za mmiliki wake, si za mtumiaji anayeiendesha. Mfano wa kawaida ni /usr/bin/passwd: inamilikiwa na root na inaweza kubadilisha /etc/shadow. SGID kwenye faili hufanya hivyo kwa kundi, na kwenye saraka huifanya faili mpya kurithi kundi la saraka, jambo linalofaa kwa folda za pamoja.
Sticky bit kwenye saraka inaruhusu mmiliki wa faili pekee kulifuta, hata kama saraka inaweza kuandikwa na kila mtu. Ndivyo /tmp inavyofanya kazi: kwenye ls -ld /tmp utaona drwxrwxrwt. Kukagua faili zote za SUID: find / -perm -4000 -type f 2>/dev/null.
10. umask ni nini?
umask ni kinyago kinachopunguza ruhusa za faili na saraka mpya. Ruhusa za msingi ni 666 kwa faili na 777 kwa saraka, na umask huondoa biti fulani kutoka kwake. Kwa umask ya kawaida 022, faili huundwa na ruhusa 644 na saraka na 755. Thamani ya sasa inaonyeshwa na amri umask.
11. Watumiaji na nywila zinahifadhiwa wapi?
Akaunti za watumiaji ziko kwenye /etc/passwd: jina, UID, GID ya kundi kuu, saraka ya nyumbani, na shell. Hashi za nywila zimehamishiwa /etc/shadow, ambayo root pekee anaweza kuisoma — kwa hiyo hashi hazipatikani kwa watumiaji wa kawaida kwa shambulio la nje ya mtandao. Makundi yanaelezwa kwenye /etc/group.
Taarifa za mtumiaji ni vyema kuziangalia kwa id user na getent passwd user — ya pili inajumuisha pia vyanzo vya nje kama LDAP.
12. sudo inafanyaje kazi, na ni bora kuliko kuingia kama root kwa nini?
sudo huendesha amri kwa jina la mtumiaji mwingine (kwa chaguo-msingi root) kwa kufuata sheria za /etc/sudoers na faili za /etc/sudoers.d/. Mtumiaji anaingiza nywila yake mwenyewe, si ya root, na kila kitendo kinaandikwa pamoja na aliyekifanya.
Sheria inaweza kuruhusu kila kitu (alena ALL=(ALL:ALL) ALL) au amri maalum tu. Sudoers hubadilishwa kwa visudo pekee: inakagua sintaksia kabla ya kuhifadhi, na kosa halitakufungia nje ya sudo. Kwenye Ubuntu, haki za msimamizi hutolewa kwa uanachama wa kundi sudo, na kwenye familia ya RHEL kwa kundi wheel.
13. Nawezaje kumwongeza mtumiaji kwenye kundi, na kwa nini mabadiliko hayakuanza?
Amri usermod -aG docker alena inamwongeza mtumiaji kwenye kundi la ziada. Bendera -a ni ya lazima: bila hiyo, -G itabadilisha orodha yote ya makundi.
Mabadiliko yanaanza kutumika wakati wa kuingia tena: kikao kinachoendelea kinahifadhi orodha ya zamani ya makundi. Unaweza kutoka na kuingia tena, au kufungua shell yenye kundi jipya kwa newgrp docker. Thibitisha kwa id.
Michakato
14. Mchakato ni nini, PID ni nini, na michakato inaonekanaje?
Mchakato ni programu inayoendesha, ikiwa na nafasi yake ya kumbukumbu, faili zilizofunguliwa, na kitambulisho cha PID. Kila mchakato una mzazi (PPID); mzazi wa pamoja wa michakato yote ni mchakato wenye PID 1. Orodha ya michakato inaonyeshwa na ps aux na ps -ef, mti wake na pstree au ps -ef --forest, na kwa wakati halisi na top na htop.
15. SIGTERM na SIGKILL zinatofautianaje?
kill PID kwa chaguo-msingi hutuma SIGTERM (15) — ombi la upole la kusimama. Mchakato unaweza kuinasa, kufunga miunganisho, kuhifadhi data na kutoka. SIGKILL (9, kill -9) haiwezi kunaswa: kernel inamaliza mchakato papo hapo, bila usafi wowote.
Mpangilio sahihi ni SIGTERM kwanza, na SIGKILL tu ikiwa mchakato hauitikii. Ishara nyingine ya kawaida ni SIGHUP: daemons nyingi husoma upya usanidi wao zinapoipokea.
16. Mchakato wa zombie ni nini?
Zombie ni mchakato ambao tayari umekwisha, lakini mzazi wake bado hajasoma msimbo wake wa kutoka kwa wait(). Hautumii rasilimali nyingi, lakini unashikilia ingizo kwenye jedwali la michakato. Kwenye ps hali yake ni Z.
Zombie haiwezi kuuawa kwa sababu tayari amekufa. Kinachohitajika ni mzazi wake amzike — rekebisha programu ya mzazi, au simamisha mzazi, ili zombie arithiwe na PID 1 na aondolewe.
17. Load average inaonyesha nini?
Nambari tatu kwenye uptime na top ni wastani wa idadi ya michakato inayosubiri kupata zamu ya kuendesha katika dakika 1, 5, na 15 zilizopita. Kwenye Linux, michakato katika hali ya kutoweza kukatizwa (hali D), ambayo kwa kawaida ni kusubiri diski, pia inahesabiwa.
Thamani hulinganishwa na idadi ya core (nproc): load 4 kwenye core 4 inamaanisha mzigo kamili, kwenye core 16 ni robo tu. Load kubwa wakati matumizi ya CPU ni madogo inaashiria tatizo la I/O; hili hukaguliwa kwa iostat au safu ya wa kwenye top.
Mtandao
18. Nawezaje kuona anwani za IP, njia za routing, na port zilizo wazi?
Anwani za violesura: ip a. Jedwali la routing: ip r. Amri za zamani ifconfig na netstat kutoka kifurushi cha net-tools hazijasakinishwa kwa chaguo-msingi kwenye distro nyingi.
Port zinazosikiliza pamoja na michakato iliyozifungua zinaonyeshwa na ss -tlnp: t — TCP, l — zinazosikiliza tu, n — bila kubadilisha kuwa majina, p — pamoja na mchakato. Kwa UDP, tumia 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. Huduma inasikiliza 127.0.0.1:8080 — je, inaweza kufikiwa kutoka nje?
Hapana. Anwani 127.0.0.1 ni loopback interface, inayofikiwa kutoka kompyuta hiyo hiyo pekee. Ili kupokea miunganisho ya nje, huduma lazima isikilize anwani ya interface ya nje au 0.0.0.0 (anwani zote za IPv4). Hii ni sababu ya kawaida ya "port iko wazi, lakini kutoka nje haifanyi kazi", pamoja na firewall.
20. Linux inageuzaje jina la host kuwa anwani ya IP?
Mpangilio wa vyanzo unaamuliwa na mstari wa hosts: kwenye /etc/nsswitch.conf, kwa kawaida kwanza faili la /etc/hosts, kisha DNS. Anwani za seva za DNS zinatoka /etc/resolv.conf; kwenye mifumo yenye systemd-resolved, hapo kuna anwani ya ndani 127.0.0.53, na seva halisi zinaonyeshwa na resolvectl status.
Kukagua, tumia dig example.com au dig @1.1.1.1 example.com (ombi kwa seva fulani). Kuna jambo muhimu: dig na nslookup huuliza DNS moja kwa moja na hazisomi /etc/hosts, wakati getent hosts example.com inapita njia ile ile inayotumiwa na programu.
21. TCP inatofautianaje na UDP?
TCP huunda muunganisho (mkono wa pande tatu SYN, SYN-ACK, ACK), inahakikisha uwasilishaji na mpangilio wa data, na hutuma tena pakiti zilizopotea. Inatumiwa na HTTP, SSH, na hifadhidata nyingi. UDP hutuma datagrams bila muunganisho wala dhamana, lakini kwa ucheleweshaji mdogo — hutumiwa kwa maombi ya DNS, simu za video, na michezo.
22. Tovuti haifunguki. Utatafuta chanzo vipi?
Pitia tabaka moja baada ya jingine, kutoka jina kuelekea kwenye programu:
- Je, jina linatatuliwa:
dig site.example, na je, anwani inalingana na inayotarajiwa. - Je, host inafikika:
ping(inaweza kuwa imezuiwa),tracerouteaumtr. - Je, port iko wazi:
nc -zv host 443aucurl -v https://site.example. - Kwenye seva: je, huduma inaendesha (
systemctl status nginx), je, port inasikilizwa (ss -tlnp), je, firewall inazuia (sudo nft list ruleset,sudo ufw status). - Kumbukumbu za programu na
journalctl -uya huduma.
Mhoji anathamini mpangilio wa kufikiri wa kimfumo, si orodha maalum ya zana.
23. Hali ya TIME_WAIT ni nini?
Baada ya muunganisho wa TCP kufungwa, upande uliofunga kwanza unashikilia socket katika hali ya TIME_WAIT kwa muda fulani, ili pakiti zilizochelewa za muunganisho wa zamani zisiingie kwenye muunganisho mpya wenye anwani na port zilezile. Idadi kubwa ya TIME_WAIT ni ya kawaida kwa seva au mteja mwenye shughuli nyingi anayefungua miunganisho mifupi mingi. Idadi yake inahesabiwa kwa ss -tan state time-wait | wc -l.
24. /etc/hosts inatofautianaje na DNS, na lini la kwanza linahitajika?
/etc/hosts ni jedwali la kudumu la ndani la "anwani — jina" kwenye mashine moja. Linasomwa kabla ya DNS (kwa nsswitch ya kawaida) na ni muhimu kwa majaribio: kwa mfano kuelekeza kikoa kwenye seva mpya kabla ya rekodi za DNS kubadilishwa. DNS ni mfumo uliosambazwa, na majibu yake yanaonekana kwa wateja wote. Kosa kwenye /etc/hosts ni sababu ya kawaida ya hali ya "kwangu tovuti inafunguka, lakini kwa wengine haifunguki".
Muhtasari
Maswali ya Linux kwenye usaili hupima mambo matatu: kama unaelewa mfumo (inode, ruhusa, michakato, kuwasha), kama unajua zana za uchunguzi (ss, dig, journalctl, lsof), na kama unaweza kutafuta chanzo hatua kwa hatua. Jibu kwa amri na mifano kutoka uzoefu wako. Mfumo wa faili, ruhusa, na mtandao vinafundishwa kwa kina kwa vitendo katika kozi ya Linux.
Maswali ya mara kwa mara
Ni nini kinachoulizwa kuhusu Linux kwa nafasi ya DevOps ya ngazi ya chini?
Kwa kawaida ni misingi: urambazaji na ruhusa, usimamizi wa michakato na systemctl, kusoma kumbukumbu, amri za mtandao kama ip, ss, dig na curl, pamoja na misingi ya skripti za bash. Mara nyingi pia hutolewa kazi ya vitendo kama "tafuta kinachokula diski".
Je, ni lazima kukariri bendera za amri?
Hapana. Inatosha kusema kwamba utaangalia bendera hiyo kwenye man. Muhimu zaidi ni kuelewa ni zana ipi inatatua tatizo na maana ya matokeo yake.
Nisome distro gani kwa ajili ya usaili?
Distro yoyote maarufu ya seva: Ubuntu au Debian, au inayoendana na RHEL kama Rocky Linux. Misingi ni ile ile; tofauti kubwa ni meneja wa vifurushi na majina ya baadhi ya huduma.
Nijiandaeje kwa sehemu ya vitendo ya usaili wa Linux?
Washa mashine pepe na ufanye kazi halisi: sanidi web server kama huduma ya systemd, weka kuingia kwa funguo za SSH, firewall, na tafuta mchakato kwa port. Kueleza hatua zako kwa sauti pia ni sehemu ya maandalizi.
Mada hii inafundishwa kwa kina pamoja na mazoezi katika kozi “Linux: с нуля до уверенного администрирования”.
- Как устроена файловая система Linux: от корня до загрузки ядра
- Пользователи, права доступа и sudo: кто и что может делать в системе
- Сеть в Linux: от IP-адреса до сокета и DNS