Skjul prosessene dine fra andre brukere i Linux
Alle moderne multi-tasking operativsystemer, inkludert Linux, driver en rekke prosesser for hver av oppgavene som blir utført. Et notisblokk er en prosess, et terminalvindu er en prosess, SSH-serveren er en prosess, hver SSH-forbindelse er en prosess og så videre. Linux planlegger de ulike systemressursene (CPU-tid, minne, I / O) slik at hver prosess får mulighet til å kjøre.
For å se listen over nåværende prosesser som kjører, kan du bruke ps
kommandoen. Prøv dette på en terminal:
ps aux
aux
parametrene forteller ps
å liste alle systemprosesser med ekstra informasjon om hvem som eier prosessene og hvilke kallparametere som ble brukt.
Som du kan se, viser listen prosesser som eies av forskjellige brukere, inkludert "pi" (standard Raspbian-bruker på en Raspberry Pi), "root" og "www-data". Her er et litt modifisert skjermbilde som viser prosessene sammen med fulle detaljer om kommandoene og deres parametere.
Hvis du ser ned på listen, vil du se kommandoen nano MYBANKACCOUNTNUMBER.TXT
som eies av brukeren "john." Tenk om filnavnet var litt mer avslørende enn eksempelet; slike data er utsatt for alle brukere på systemet og kan brukes til ondsinnede formål.
Siden Linux-kjernen 3.2 er det en måte å stoppe brukerne å få tilgang til informasjon om prosesser som de ikke eier. ps
kommandoen får prosessinformasjonen fra / proc filsystemet (der "proc" er kort for prosess). Det er en ny parameter kalt "skjult" som brukes når / proc filsystemet er montert. Det kan gjemme prosesser og kontrollere hvem som har tilgang til informasjonen under / proc.
- hidepid = 0 - Standard oppførsel hvor noen bruker kan lese filene under / proc / PID /
- hidepid = 1 - Det betyr at brukere ikke får tilgang til noen / proc / PID / sub-katalog bortsett fra deres egne. Også filer som cmdline, io, sched *, status, wchan er utilgjengelige for andre brukere.
- hidepid = 2 - Alt fra hidepid = 1, pluss alle / proc / PID / underkataloger vil bli skjult for andre brukere.
/ Proc-filsystemet kan overføres på flyet ved hjelp av remount-alternativet til mount
kommandoen. For å teste skjult, kan du omforme / proc filsystemet slik:
sudo mount -o remount, rw, hidepid = 2 / proc
Nå kan du prøve ps
kommandoen igjen:
ps aux
Nå viser utgangen bare prosesser som eies av brukeren "pi".
For å gjøre denne endringen permanent, må du redigere Pi's "/ etc / fstab" -fil. Filen "fstab" styrer hvilke filsystemer som er montert ved oppstart.
sudo nano / etc / fstab
Og finn linjen som lyder:
proc / proc proc standardinnstillinger 0 0
Og endre den til:
proc / proc proc standard, hidepid = 2 0 0
Avslutt redigeringsprogrammet ved å bruke "Ctrl + X". Start nå din Raspberry Pi. Når det startes på nytt, kontroller at / proc filsystemet er montert med de riktige alternativene. Første bruk mount
og grep
å se de aktuelle alternativene:
mount | grep skjult
Test nå ps
kommandoen, akkurat som vi har gjort ovenfor:
ps aux
Legg merke til at bare prosessene eid av "pi" er synlige, men i motsetning til før da vi remounted / proc filsystemet, er dette nå den permanente innstillingen. Men ett ord med advarsel, selv når skjult er brukt, kan "rot" fortsatt se alle prosessene og anropsparametrene.
Teknikken som brukes ovenfor, vil fungere på andre Linux-maskiner og distribusjoner, ikke bare Raspberry Pi med Raspbian. Hvis du har spørsmål om bruk av "skjult" -alternativet på / proc-filsystemet, er du velkommen til å bruke kommentarseksjonen nedenfor, og vi vil se om vi kan hjelpe.