Dölj dina processer från andra användare i Linux
Alla moderna operativsystem med flera uppdrag, inklusive Linux, driver en serie processer för var och en av de uppgifter som utförs. En anteckningsblankett är en process, ett terminalfönster är en process, SSH-servern är en process, varje SSH-anslutning är en process och så vidare. Linux schemalägger de olika systemresurserna (CPU-tid, minne, I / O) så att varje process får en möjlighet att springa.
För att se listan över aktuella processer som körs kan du använda kommandot ps
. Prova detta i en terminal:
ps aux
aux
parametrarna berättar ps
att lista alla systemprocesser med extra information om vem som äger processerna och vilka samtalsparametrar som användes.
Som du kan se visar listan processer som ägs av olika användare, inklusive "pi" (standard Raspbian-användare på en Raspberry Pi), "root" och "www-data". Här är en lite modifierad skärmdump som visar processerna tillsammans med fullständigare detaljer om kommandon och deras parametrar.
Om du tittar ner i listan ser du kommandot nano MYBANKACCOUNTNUMBER.TXT
som ägs av användaren "john." Tänk om filnamnet var lite mer avslöjande än exemplet; Sådan data är utsatt för alla användare på systemet och kan användas för skadliga ändamål.
Sedan Linux-kärnan 3.2 finns det ett sätt att stoppa användarna att få tillgång till information om processer som de inte äger. ps
kommandot får processinformationen från / proc-filsystemet (där "proc" är kort för process). Det finns en ny parameter som heter "hidepid" som används när / proc-filsystemet är monterat. Det kan gömma processer och styra vem som har tillgång till informationen under / proc.
- hidepid = 0 - Standardbeteendet där någon användare kan läsa filerna under / proc / PID /
- hidepid = 1 - Det betyder att användare inte får tillgång till någon / proc / PID / sub-katalog utom deras egna. Även filer som cmdline, io, schema *, status, wchan är otillgängliga för andra användare.
- hidepid = 2 - Allt från hidepid = 1, plus alla / proc / PID / sub-kataloger kommer att döljas för andra användare.
/ Proc-filsystemet kan återmonteras på flygningen med alternativet ommontering av mount
kommandot. För att testa hidepid kan du omfördela / proc-filsystemet så här:
sudo mount -o remount, rw, hidepid = 2 / proc
Nu kan du försöka ps
kommandot igen:
ps aux
Nu visar utdata endast processer som ägs av användaren "pi".
För att göra ändringen permanent måste du redigera din Pis "/ etc / fstab" -fil. Filen "fstab" styr vilka filsystem som är monterade vid start.
sudo nano / etc / fstab
Och hitta linjen som läser:
proc / proc proc standardvärden 0 0
Och byt till:
proc / proc proc standardvärden, hidepid = 2 0 0
Avsluta redigeraren med hjälp av "Ctrl + X." Nu starta om din Raspberry Pi. När det startar om, kontrollera att / proc-filsystemet har monterats med rätt alternativ. Första användningen mount
och grep
att se de aktuella alternativen:
mount | grep hidepid
Test nu ps
kommandot, precis som vi har gjort ovan:
ps aux
Observera att endast processer som ägs av "pi" är synliga, men i motsats till tidigare när vi remounted / proc-filsystemet är det nu permanent inställning. Men ett ord av varning, även när dolda används, kan "root" fortfarande se alla processer och uppringningsparametrarna.
Tekniken som används ovan kommer att fungera på andra Linux-maskiner och distributioner, inte bara Raspberry Pi med Raspbian. Om du har frågor om hur du använder "hide" -alternativet på / proc-filsystemet, var god och använd vår kommentar nedan och vi kommer se om vi kan hjälpa till.