De rot account är det ultimata kontot på ett Linux och andra Unix-liknande operativsystem. Detta konto har tillgång till alla kommandon och filer på ett system med fullständig läs-, skriv- och körbehörighet. Det används för att utföra alla typer av uppgifter på ett system; till skapa/uppdatera/komma åt/ta bort andra användares konton, installera/ta bort/uppgradera programpaket, och så mycket mer.
Eftersom det rot användaren har absoluta befogenheter, alla åtgärder han/hon utför är avgörande för ett system. I detta avseende, eventuella fel av rot användaren kan ha enorma konsekvenser för ett systems normala drift. Dessutom kan det här kontot också missbrukas genom att använda det felaktigt eller olämpligt antingen av misstag, illvilligt eller genom påtänkt okunnighet om policyer.
Därför är det lämpligt att inaktivera rotåtkomsten i din Linux -server, istället skapa ett administrativt konto som ska konfigureras för att få root -användarrättigheter med hjälp av sudo -kommando, för att utföra kritiska uppgifter på servern.
I den här artikeln kommer vi att förklara fyra sätt att inaktivera root -användarkontots inloggning i Linux.
Uppmärksamhet: Innan du blockerar åtkomst till rot se till att du har skapat ett administrativt konto som kan användas sudo -kommando att få root -användarrättigheter med useradd kommando och ge detta användarkonto ett starkt lösenord. Flaggan -m
betyder skapa användarens hemkatalog och -c
tillåter att ange en kommentar:
# useradd -m -c "Admin User" admin. # passwd admin.
Lägg sedan till den här användaren till lämplig grupp systemadministratörer med usermod -kommando, där omkopplaren -a
betyder lägg till användarkonto och -G
anger en grupp att lägga till användaren i (hjul eller sudo beroende på din Linux -distribution):
# usermod -aG hjuladmin # CentOS/RHEL. # usermod -aG sudo admin # Debian/Ubuntu
När du har skapat en användare med administratörsbehörighet växlar du till det kontot för att blockera rotåtkomst.
# su admin.
Den enklaste metoden för att inaktivera root -användarinloggning är att byta skal från /bin/bash
eller /bin/bash
(eller något annat skal som tillåter användarinloggning) till /sbin/nologin
, i /etc/passwd fil, som du kan öppna för redigering med någon av dina favoritkommandoradsredigerare som visas.
$ sudo vim /etc /passwd.
Ändra raden:
root: x: 0: 0: root:/root:/bin/bash. till. root: x: 0: 0: root:/root:/sbin/nologin
Spara filen och stäng den.
Från och med nu, när rot användaren loggar in får han/hon meddelandet ”Det här kontot är för närvarande inte tillgängligt.”Detta är standardmeddelandet, men du kan ändra det och ange ett anpassat meddelande i filen /etc/nologin.txt.
Denna metod är endast effektiv med program som kräver ett skal för användarinloggning, annars, sudo, ftp och e-post klienter kan komma åt rotkontot.
Den andra metoden använder a PAM modul kallad pam_securetty, som tillåter root -åtkomst endast om användaren loggar in på en "säker ”TTY, enligt definitionen i noteringen i /etc/securetty.
Ovanstående fil låter dig ange vilken TTY enheter som rotanvändaren får logga in på, tömning av den här filen förhindrar root -inloggning på alla enheter som är anslutna till datorsystemet.
Kör för att skapa en tom fil.
$ sudo mv /etc /securetty /etc/securetty.orig. $ sudo touch /etc /securetty. $ sudo chmod 600 /etc /securetty.
Denna metod har vissa begränsningar, den påverkar bara program som inloggning, displaychefer (dvs. gdm, kdm och xdm) och andra nättjänster som lanserar en TTY. Program som su, sudo, ssh och andra relaterade openssh -verktyg kommer att ha åtkomst till rotkontot.
Det vanligaste sättet att komma åt fjärrservrar eller VPS är via SSH och för att blockera root -användarinloggning under det måste du redigera /etc/ssh/sshd_config fil.
$ sudo vim/etc/ssh/sshd_config.
Avmarkera sedan direktivet (om det kommenteras) PermitRootLogin och ställ in dess värde på Nej
som visas på skärmdumpen.
När du är klar, spara och stäng filen. Starta sedan om sshd service för att tillämpa den senaste ändringen av konfigurationer.
$ sudo systemctl starta om sshd ELLER. $ sudo service sshd starta om
Som du kanske redan vet påverkar den här metoden endast openssh -verktygsset, program som ssh, scp, sftp kommer att blockeras från att komma åt rotkontot.
Pluggbara autentiseringsmoduler (PAM kort sagt) är en centraliserad, pluggbar, modulär och flexibel metod för autentisering på Linux -system. PAM, genom /lib/security/pam_listfile.so modul, tillåter stor flexibilitet när det gäller att begränsa privilegierna för specifika konton.
Modulen ovan kan användas för att referera till en lista över användare som inte får logga in via vissa måltjänster som inloggning, ssh och alla PAM -medvetna program.
I det här fallet vill vi inaktivera rotanvändaråtkomst till ett system genom att begränsa åtkomsten till inloggning och sshd -tjänster. Öppna och redigera först filen för måltjänsten i /etc/pam.d/ katalog som visas.
$ sudo vim /etc/pam.d/login. ELLER. sudo vim /etc/pam.d/sshd.
Lägg sedan till konfigurationen nedan i båda filerna.
auth krävs pam_listfile.so \ onerr = success item = user sense = neka fil =/etc/ssh/denuserade användare.
När du är klar, spara och stäng varje fil. Skapa sedan den vanliga filen /etc/ssh/deniedusers som ska innehålla ett objekt per rad och inte vara världsläsbart.
Lägg till namnroten i den, spara och stäng den.
$ sudo vim/etc/ssh/denususers.
Ställ också in de nödvändiga behörigheterna för detta.
$ sudo chmod 600/etc/ssh/denususers.
Denna metod påverkar endast program och tjänster som är PAM -medvetna. Du kan blockera root -åtkomst till systemet via ftp- och e -postklienter och mer.
Mer information finns på relevanta mansidor.
$ man pam_securetty. $ man sshd_config. $ man pam.
Det är allt! I den här artikeln har vi förklarat fyra sätt att inaktivera root -användarens inloggning (eller konto) i Linux. Har du några kommentarer, förslag eller frågor, kontakta oss gärna via feedbackformuläret nedan.