Linux Core izgāztuves atrašanās vietas iestatīšana

Linux Core Izgaztuves Atrasanas Vietas Iestatisana



Kas ir “Core Dump” operētājsistēmā Linux?

Kad process negaidīti tiek pārtraukts, tas bieži vien atstāj aiz sevis sistēmas “pamata izgāztuvi”. Tam ir pievienots atbilstošs ziņojums. Kodols kalpo kā atkļūdošanas rīks un ir atmiņas attēls, kas ietver arī atkļūdošanas informāciju. Ja esat lietotājs, kurš nevēlas atkļūdot programmu, varat vienkārši izdzēst kodolu:

$ rm kodols

Varat arī atstāt to neskartu, jo vecais kodols tiek pārrakstīts, ja kādreiz tiek izmests jauns. Varat arī deaktivizēt kodola izmešanu ar šādu komandu:







$ samazināt -c 0

Mēs varam ģenerēt pamata izgāztuves pēc pieprasījuma (piemēram, izmantojot atkļūdotāju), vai arī tās var izveidot automātiski pēc darbības pārtraukšanas. Kodols ierosina kodola izgāztuves programmas pēkšņas iziešanas rezultātā. Tos var nosūtīt uz kādu citu programmu (piemēram, systemd-coredump), lai veiktu papildu darbības.



Kā parasti, pastāv kompromiss starp datu vākšanu, lai nodrošinātu labāku stabilitāti un problēmu novēršanu, un risku atklāt sensitīvu informāciju no atkļūdošanas datiem.



Ko mēs segsim?

Šajā rakstā mēs redzēsim, kā iestatīt galveno izgāztuvju atrašanās vietu operētājsistēmā Ubuntu 20.04 OS. Sāksim tūlīt.





Galvenās izgāztuves ģenerēšana

Vispirms apskatīsim, kā mēs varam ģenerēt galveno izgāztuvi. Šim nolūkam mēs izmantojam Linux kill komandu. Vispirms atrodiet procesa PID un pēc tam nosūtiet iznīcināšanas signālu. Piemēram, sāksim miega procesu un pēc tam nogalināsim to ar tā PID:

$ Gulēt 500

$ nogalināt -s SIGTRAP $ ( saķere Gulēt )



Tagad, kad uzzinājāt, kā ģenerēt kodola izgāztuvi, varat to izmantot nākamajās sadaļās.

Kur viņi dodas?

Pamatdatnes izdrukas failam pēc noklusējuma ir nosaukums core.pid, un tas tiek izveidots lietojumprogrammas darba direktorijā. Šeit pid ir procesa ID.

Izmantojot rīku ulimit, varat iegūt vai mainīt sistēmas resursu ierobežojumus pašreizējam apvalkam un jebkuram čaulam, kas nāk pēc tā. Lai pārbaudītu vai konfigurētu pamata faila lieluma ierobežojumu, izmantojiet šo komandu:

$ samazināt -c

Lai izvairītos no galvenā faila norobežošanas vai saīsināšanas, pārliecinieties, vai ierobežojums ir globāli iestatīts uz “neierobežots” [1]. To var izdarīt failā /etc/security/limits.conf, pievienojot šādu rindu:

sakne - kodols neierobežots

* - kodols neierobežots

Tagad vienkārši izrakstieties un piesakieties vēlreiz, lai sesijai tiktu piemēroti ierobežojumi.

Galvenās izgāztuves atrašanās vietas pielāgošana

Komanda “sysctl kernel.core_pattern” vai “/proc/sys/kernel/core_pattern” parasti tiek izmantota, lai iestatītu vietu, kur atrodas kodola izgāztuves.

Ievadiet šo komandu, lai skatītu pašreizējā pamata modeļa iestatījumus:

$ kaķis / proc / sys / kodols / core_pattern

Parasti šeit jūs atradīsit noklusējuma vērtību, kas norādīta kā “core”.

Izmantojiet “/proc/sys/kernel/core_pattern”, lai iestatītu pamata izdrukas atrašanās vietu

Īslaicīgi novirzīsim galveno izgāztuves uz jaunu vietu, piemēram, /tmp/dumps/core, izmantojot failu “/proc/sys/kernel/core_pattern” [2] [3]. Tagad veiciet tālāk norādītās darbības.

1. darbība . Vispirms izveidojiet direktoriju, lai saglabātu galvenās izgāztuves:

$ mkdir -lpp / tmp / izgāztuve / serdeņi /

2. darbība . Piešķiriet šim direktorijam nepieciešamās atļaujas:

$ chmod a+x / tmp / izgāztuve / serdeņi /

3. darbība . Tagad uz laiku iestatiet pamata izgāztuves ceļu:

$ atbalss '/tmp/dump/cores/core' | sudo tee / proc / sys / kodols / core_pattern

Atkal, globāli iestatiet limitu uz neierobežotu.

Šeit mēs varam pievienot kādu citu informāciju faila nosaukumam, kā parādīts tālāk:

$ atbalss '/tmp/dump/cores/core_%e.%p_%t' | sudo tee / proc / sys / kodols / core_pattern

Katru šeit izmantoto parametru var definēt šādi:

% un: priekš izpildāms failu nosaukums

% p: priekš process id vai pid.

% t: priekš pievienojot laikspiedolu

4. darbība . Pēc tam mums ir jāmaina fails “/etc/sysctl.conf”, lai pastāvīgi lietotu iepriekšējos iestatījumus. Atveriet šo failu:

$ sudo nano / utt / sysctl.conf

Tagad pievienojiet šim failam šādu rindu:

kernel.core_pattern = / tmp / izgāztuve / serdeņi / kodols

Šīs rindas vietā varat pievienot arī šo:

kernel.core_pattern= '/tmp/dump/cores/core_%e.%p_%t'

Tas ir viss, kas mums jādara. Tagad ģenerējiet kodola izgāztuvi, kā minēts sadaļā “Kodola izgāztuves ģenerēšana”. Pēc tam mēs varam pārbaudīt, vai mūsu pamatfails ir ģenerēts vai nav:

$ ls -l / tmp / izgāztuve / serdeņi /

Izmantojot komandu “Sysctl”, lai iestatītu galveno izgāztuves vietu

Kā minēts iepriekš, tam pašam mērķim mēs varam izmantot arī komandu sysctl. Mainīsim pamata izgāztuves vietu un pamatfaila formātu:

1. darbība . Izveidojiet jaunu direktoriju un piešķiriet nepieciešamās atļaujas:

$ mkdir -lpp / tmp / mydumps

$ chmod a+rwx / tmp / mydumps

2. darbība . Tagad vienkārši palaidiet šādu komandu:

$ sudo sysctl -in kernel.core_pattern= / tmp / mydumps / kodols_ % un. % p_ % t

3. darbība . Tagad atkal ģenerējiet galveno izgāztuvi, kā mēs to darījām iepriekš. Pēc tam pārbaudiet, vai pamatfails ir ģenerēts vai nav:

$ ls -l / tmp / mydumps /

Ubuntu sistēmās kodolu izgāztuves bieži tiek nosūtītas uz Apport. Sistēmām, kuru pamatā ir Red Hat, to var pārsūtīt uz automātisko kļūdu ziņošanas rīku (ABRT). Sākotnēji man radās problēma, konfigurējot galveno izgāztuves atrašanās vietu, tāpēc man bija pilnībā jāatspējo Apport Ubuntu 20.04. Iespējams, tas var būt arī Red Hat un citu gadījumu gadījumā.

Secinājums

Šajā rakstā mēs esam redzējuši, kā mēs varam pielāgot galveno izgāztuvju atrašanās vietu operētājsistēmā Ubuntu 20.04 OS. Galvenās izgāztuves var palīdzēt noskaidrot, kas ir nepareizi, taču tās ir briesmīgas, jo tās nopludina sensitīvus datus. Serdes izgāztuves ir jāatspējo ikreiz, kad tās nav nepieciešamas, un jāiespējo tikai tad, kad tas ir absolūti nepieciešams. Šādā situācijā pārliecinieties, ka faili ir droši glabāti, lai parastie lietotāji nevarētu piekļūt datiem. Turklāt neatkarīgi no jūsu lēmuma jums vienmēr jāpārbauda konfigurācija, lai nodrošinātu, ka tā darbojas, kā paredzēts.

Galvenās izgāztuves un noklusējuma konfigurācijas dažādās operētājsistēmās apstrādā atšķirīgi. Pēdējā laikā lielākā daļa Linux sistēmu ir izmantojušas systemd, kas ir radījis dažus nelielus noteikumu pielāgojumus. Atkarībā no tā, kā jūsu sistēma ir konfigurēta, iespējams, būs jāmeklē kodola izgāztuves.