Lägger till en ubuntu-användare. Användarhantering. SSH-åtkomst av blockerade användare

Användarhantering är en kritisk del av att upprätthålla ett säkert system. Ineffektiv användar- och behörighetshantering leder ofta till att många system äventyras. Därför är det viktigt att du förstår hur du kan skydda din server genom enkla och effektiva tekniker för hantering av användarkonton.

Ubuntu-utvecklare tog ett samvetsgrant beslut att inaktivera det administrativa rotkontot som standard i alla Ubuntu-installationer. Detta betyder inte att root-kontot har tagits bort eller att det inte går att komma åt. Den har bara fått ett lösenord som inte matchar något eventuellt krypterat värde, och kan därför inte logga in direkt av sig själv.

Istället uppmuntras användare att använda ett verktyg vid namn sudo för att utföra systemadministrativa uppgifter. Sudo tillåter en auktoriserad användare att tillfälligt höja sina privilegier med sitt eget lösenord istället för att behöva känna till lösenordet som tillhör root-kontot. Denna enkla men effektiva metod ger ansvarighet för alla användaråtgärder och ger administratören detaljerad kontroll över vilka åtgärder en användare kan utföra med nämnda privilegier.

    Om du av någon anledning vill aktivera root-kontot, ge det bara ett lösenord:

    Konfigurationer med root-lösenord stöds inte.

    sudo passwd

    Sudo kommer att fråga dig om ditt lösenord och ber dig sedan att ange ett nytt lösenord för root som visas nedan:

    Lösenord för användarnamn: (skriv in ditt eget lösenord) Ange nytt UNIX-lösenord: (ange ett nytt lösenord för root) Ange nytt UNIX-lösenord: (upprepa nytt lösenord för root) passwd: lösenordet har uppdaterats framgångsrikt

    För att inaktivera root-kontolösenordet, använd följande passwd-syntax:

    sudo passwd -l rot

    Men för att inaktivera själva root-kontot, använd följande kommando:

    usermod --expiredate 1

    Du bör läsa mer om Sudo genom att läsa mansidan:

    man sudo

Som standard är den initiala användaren som skapats av Ubuntu-installationsprogrammet en medlem av gruppen "sudo" som läggs till filen /etc/sudoers som en auktoriserad sudo-användare. Om du vill ge något annat konto full root-åtkomst genom sudo , lägg helt enkelt till dem i sudo-gruppen.

Lägga till och ta bort användare

Processen för att hantera lokala användare och grupper är enkel och skiljer sig väldigt lite från de flesta andra GNU/Linux-operativsystem. Ubuntu och andra Debianbaserade distributioner uppmuntrar användningen av "adduser"-paketet för kontohantering.

    För att lägga till ett användarkonto, använd följande syntax och följ anvisningarna för att ge kontot ett lösenord och identifierbara egenskaper, såsom ett fullständigt namn, telefonnummer, etc.

    sudo adduser användarnamn

    För att ta bort ett användarkonto och dess primära grupp, använd följande syntax:

    sudo deluser användarnamn

    Att ta bort ett konto tar inte bort deras respektive hemmapp. Det är upp till dig om du vill radera mappen manuellt eller inte behålla den enligt dina önskade lagringspolicyer.

    Kom ihåg att alla användare som läggs till senare med samma UID/GID som den tidigare ägaren nu kommer att ha tillgång till den här mappen om du inte har vidtagit nödvändiga försiktighetsåtgärder.

    Du kanske vill ändra dessa UID/GID-värden till något mer lämpligt, såsom root-kontot, och kanske till och med flytta mappen för att undvika framtida konflikter:

    sudo chown -R root:root /home/användarnamn/ sudo mkdir /home/archived_users/ sudo mv /home/användarnamn /home/archived_users/

    För att tillfälligt låsa eller låsa upp ett användarkonto, använd följande syntax:

    sudo passwd -l användarnamn sudo passwd -u användarnamn

    För att lägga till eller ta bort en personlig grupp, använd följande syntax:

    sudo addgroup gruppnamn sudo delgroup gruppnamn

    För att lägga till en användare i en grupp, använd följande syntax:

    sudo adduser användarnamn gruppnamn

Användarprofilsäkerhet

När en ny användare skapas skapar adduser-verktyget en helt ny hemkatalog med namnet /home/username . Standardprofilen är modellerad efter innehållet som finns i katalogen för /etc/skel , som innehåller alla grundläggande profiler.

Om din server kommer att vara hem för flera användare, bör du vara mycket uppmärksam på användarens hemkatalogbehörigheter för att säkerställa konfidentialitet. Som standard skapas användarhemkataloger i Ubuntu med världsbehörighet för läs/körning. Detta innebär att alla användare kan bläddra och komma åt innehållet i andra användares hemkataloger. Detta kanske inte passar din miljö.

    För att verifiera dina nuvarande behörigheter för användarhemkatalog, använd följande syntax:

    ls -ld /home/användarnamn

    Följande utdata visar att katalogen /home/användarnamn har världsläsbara behörigheter:

    drwxr-xr-x 2 användarnamn användarnamn 4096 2007-10-02 20:03 användarnamn

    Du kan ta bort världens läsbara behörigheter med följande syntax:

    sudo chmod 0750 /hem/användarnamn

    Vissa människor tenderar att använda det rekursiva alternativet (-R) urskillningslöst som modifierar alla underordnade mappar och filer, men detta är inte nödvändigt och kan ge andra oönskade resultat. Enbart den överordnade katalogen är tillräcklig för att förhindra obehörig åtkomst till något under föräldern.

    Ett mycket mer effektivt tillvägagångssätt skulle vara att ändra addusers globala standardbehörigheter när man skapar användarhemmappar. Redigera helt enkelt filen /etc/adduser.conf och modifiera variabeln DIR_MODE till något lämpligt, så att alla nya hemkataloger får rätt behörigheter.

    Efter att ha korrigerat katalogbehörigheterna med någon av de tidigare nämnda teknikerna, verifiera resultaten med följande syntax:

    ls -ld /home/användarnamn

    Resultaten nedan visar att världsläsbara behörigheter har tagits bort:

    drwxr-x--- 2 användarnamn användarnamn 4096 2007-10-02 20:03 användarnamn

Lösenordspolicy

En stark lösenordspolicy är en av de viktigaste aspekterna av din säkerhetsställning. Många framgångsrika säkerhetsintrång involverar enkla brute force och ordboksattacker mot svaga lösenord. Om du har för avsikt att erbjuda någon form av fjärråtkomst som involverar ditt lokala lösenordssystem, se till att du på ett adekvat sätt uppfyller kraven på minsta lösenordskomplexitet, maximala lösenordslivslängder och frekventa granskningar av dina autentiseringssystem.

Minsta lösenordslängd

Som standard kräver Ubuntu en minsta lösenordslängd på 6 tecken, samt några grundläggande entropikontroller. Dessa värden kontrolleras i filen /etc/pam.d/common-password, som beskrivs nedan.

lösenord pam_unix.so obskyra sha512

Om du vill justera minimilängden till 8 tecken, ändra lämplig variabel till min=8. Ändringen beskrivs nedan.

lösenord pam_unix.so obscure sha512 minlen=8

Grundläggande lösenordsentropikontroller och regler för minimilängd gäller inte för administratören som använder kommandon på sudonivå för att konfigurera en ny användare.

Lösenordets utgång

När du skapar användarkonton bör du göra det till en policy att ha en lägsta och högsta lösenordsålder som tvingar användare att ändra sina lösenord när de upphör att gälla.

    För att enkelt se den aktuella statusen för ett användarkonto, använd följande syntax:

    sudo chage -l användarnamn

    Utdata nedan visar intressanta fakta om användarkontot, nämligen att det inte finns några policyer som tillämpas:

    Senaste lösenordsändring: 20 januari 2015 Lösenordet upphör: aldrig Lösenordet inaktivt: aldrig Kontot upphör att gälla: aldrig Minsta antal dagar mellan lösenordsändring: 0 Maximalt antal dagar mellan lösenordsändring: 99999 Antal dagar med varning innan lösenordet löper ut: 7

    För att ställa in något av dessa värden, använd helt enkelt följande syntax och följ de interaktiva anvisningarna:

    sudo ändra användarnamn

    Följande är också ett exempel på hur du manuellt kan ändra det explicita utgångsdatumet (-E) till 01/31/2015, lägsta lösenordsålder (-m) på 5 dagar, maximal lösenordsålder (-M) på 90 dagar, inaktivitet period (-I) på 5 dagar efter utgången av lösenordet, och en varningsperiod (-W) på 14 dagar innan lösenordets utgång:/home/username/.ssh/authorized_keys .

    Ta bort eller byt namn på katalogen .ssh/ i användarens hemmapp för att förhindra ytterligare SSH-autentiseringsmöjligheter.

    Se till att kontrollera eventuella etablerade SSH-anslutningar av den funktionshindrade användaren, eftersom det är möjligt att de kan ha befintliga inkommande eller utgående anslutningar. Döda alla som hittas.

    vem | grep användarnamn (för att få terminalen pts/#) sudo pkill -f pts/#

    Begränsa SSH-åtkomst till endast användarkonton som ska ha det. Till exempel kan du skapa en grupp som heter "sshlogin" och lägga till gruppnamnet som det värde som är associerat med variabeln AllowGroups som finns i filen /etc/ssh/sshd_config .

    AllowGroups sshlogin

    Lägg sedan till dina tillåtna SSH-användare i gruppen "sshlogin" och starta om SSH-tjänsten.

    sudo adduser användarnamn sshlogin sudo systemctl starta om sshd.service

    Extern användardatabasautentisering

    De flesta företagsnätverk kräver centraliserad autentisering och åtkomstkontroller för alla systemresurser. Om du har konfigurerat din server för att autentisera användare mot externa databaser, se till att inaktivera användarkontona både externt och lokalt. På så sätt säkerställer du att lokal reservautentisering inte är möjlig.

I den här handledningen kommer vi att titta på hur man tar bort en Linux-användare tillsammans med hans data och hemkatalog.

Om du är systemadministratör i ett stort företag, är det troligtvis en ganska vanlig uppgift för dig att ta bort Linux-användare. Efter att ett konto blivit onödigt eller en användare lämnar organisationen, bör hans konto tas bort för att inte lämna säkerhetshål.

När du tar bort Linux-användare är det också viktigt att ta bort deras hemkatalog för att frigöra lagringsutrymme för nya användare och deras filer. Först ska vi titta på hur man tar bort en Linux-användare med terminalen, sedan ska vi prata om hur detta görs i det grafiska gränssnittet för en av de mest populära distributionerna - Ubuntu.

För att få lite övning i en riktig miljö, låt oss skapa två användare, losst och losst1, tillsammans med deras hemkataloger, och sedan ta bort dem:

förlust av adduser
$ passwd förlorat

adduser losst1
$passwd losst1

Här används kommandot adduser för att skapa ett användarkonto och passwd för att skapa ett lösenord.

Låt oss titta på hur man tar bort en Linux-användare i terminalen. För att göra detta, använd kommandot - deluser i debian- och derivatsystem, och i RedHat - userdel. Låt oss ta en närmare titt på dessa två verktyg.

Beskrivning av missbrukare

Syntaxen för deluser-kommandot är mycket enkel:

$deluser parametrar användare

Inställningarna för deluser-kommandot finns i filen /etc/deluser.conf; bland andra inställningar anger den vad som behöver göras med användarens hemmapp och filer.

Du kan visa och ändra dessa inställningar genom att köra kommandot:

vi /etc/deluser.conf

Låt oss titta närmare på dessa inställningar:

  • REMOVE_HOME- ta bort användarens hemkatalog
  • REMOVE_ALL_FILES- radera alla användarfiler
  • SÄKERHETSKOPIERING- Säkerhetskopiera användarfiler
  • BACKUP_TO- backup-mapp
  • ONLY_IF_EMPTY- ta bort en användargrupp om den är tom.

Dessa inställningar bestämmer standardbeteendet för verktyget när en användare raderas; naturligtvis kan de åsidosättas med hjälp av parametrar för kommandot.

Följande parametrar stöds, de liknar inställningarna, men det finns fler alternativ:

  • --systemet- radera endast om det är en systemanvändare
  • --säkerhetskopiering- gör en säkerhetskopia av användarfiler
  • --backup-till- mapp för säkerhetskopiering
  • --ta bort-hem- radera hemmapp
  • --ta bort-alla-filer- radera alla användarfiler i filsystemet

Beskrivning av användardel

Userdel-verktyget fungerar lite annorlunda, det finns ingen inställningsfil här, men det finns alternativ som du kan tala om för verktyget vad det ska göra. Syntaxen är liknande:

$ userdel parametrar användare

  • -f, --kraft- påtvingad radering, även om användaren fortfarande är inloggad
  • -r, --ta bort- radera användarens hemkatalog och hans filer i systemet.
  • -Z- ta bort alla SELinux-objekt för denna användare.

För att ta bort en användare från servern är det bättre att använda en avancerad metod, som vi kommer att överväga nedan. När användare använder servern startar de olika program och tjänster. En användare kan bara raderas korrekt om han inte är inloggad på servern och alla program som körs på hans vägnar stoppas, eftersom program kan använda olika filer som tillhör användaren, och detta kommer att förhindra att de raderas. Följaktligen kommer användarens filer inte att raderas helt och kommer att förbli för att täppa till systemet.

Blockera ett användarkonto

Du kan använda passwd-verktyget för att låsa ett användarkonto. Detta kommer att neka användaren åtkomst till systemet och förhindra att nya processer startar:

Kör kommandot passwd med alternativet --lock:

passwd --låsförlust

passwd: Information om lösenordets utgångsdatum har ändrats.

Döda alla pågående användarprocesser

Låt oss nu hitta alla processer som körs som användaren och döda dem.

Låt oss hitta processer med pgrep:

Du kan se mer detaljerat vad dessa processer är genom att skicka pid för var och en av dem till ps-kommandot, så här:

ps -f --pid $(pgrep -u losst)

UID PID PPID C TID TTY STAT TID CMD
losst 14684 14676 0 22:15 pts/2 S 0:00 -bash
losst 14735 14684 0 22:15 pts/2 S+ 0:00 vi text

Nu när du har sett till att det inte finns något viktigt där, kan du döda alla processer med kommandot killall:

Killall -9 -u förlorat

Alternativet -9 säger åt programmet att skicka en SIGKILL-avslutningssignal till dessa processer, och -u anger användarnamnet.

På Red Hat-baserade system, för att använda killall måste du installera paketet psmisc:

sudo yum installera psmisc

Säkerhetskopiera användardata

Detta är inte alls nödvändigt, men för ett seriöst projekt skulle det inte vara en dålig idé att skapa en säkerhetskopia av användarens filer, speciellt om det kan finnas viktiga filer där. För att göra detta kan du till exempel använda tjärverktyget:

tar jcvf /user-backups/losst-backup.tar.bz2 /home/losst

Ta bort ett användarkonto

Nu när allt är förberett, låt oss börja ta bort Linux-användaren. För säkerhets skull kommer vi uttryckligen att indikera att vi måste ta bort användarens filer och hemkatalog. För Debian:

deluser --remove-home lostt

userdel --remove lostt

Om du behöver ta bort alla filer som tillhör en användare på systemet, använd alternativet --remove-all-files, var bara försiktig med det, eftersom viktiga filer kan skrivas över:

deluser --ta bort-alla-filer förlorade

Användaren är nu helt borttagen, tillsammans med hans filer och hemkatalog, från ditt system.

Ta bort en användare i Ubuntu

Öppen Systemparametrar:

Öppen sak konton:

Som du kan se är alla åtgärder för närvarande inte tillgängliga och är nedtonade. För att aktivera dem, klicka på knappen låsa upp och ange användarlösenordet.

Nu, för att ta bort en användare i Linux, klicka bara på den med musen och klicka sedan på minusikonen.

I fönstret som öppnas kan du välja vad du ska göra med användarfilerna:

Naturligtvis kommer bara hemmappen att raderas, vi pratar inte om alla filer. Och för korrekt borttagning får användaren inte arbeta i systemet.

Slutsatser

Att ta bort en användare i Linux är inte så svårt, oavsett var det behöver göras, på en server eller en hemdator. Naturligtvis är det grafiska gränssnittet bekvämare, men terminalen erbjuder som alltid fler alternativ. Om du har några andra idéer om detta, skriv gärna en kommentar!

Operativsystemet Linux har många bra säkerhetsfunktioner, men en av de viktigaste är filbehörighetssystemet. Linux, som en anhängare av Linux-kärnideologin, till skillnad från Windows, designades ursprungligen som ett fleranvändarsystem, så filåtkomsträttigheter i Linux är genomtänkta mycket väl.

Och detta är mycket viktigt, eftersom lokal åtkomst till filer för alla program och alla användare skulle tillåta virus att enkelt förstöra systemet. Men nya användare kan tycka att de nya filbehörigheterna i Linux är mycket förvirrande, som skiljer sig mycket från vad vi är vana vid att se i Windows. I den här artikeln kommer vi att försöka förstå hur filbehörigheter fungerar i Linux, samt hur man ändrar och ställer in dem.

Från början hade varje fil tre åtkomstparametrar. Här är de:

  • Läsning- låter dig ta emot innehållet i filen, men tillåter inte skrivning. För en katalog, låter dig få en lista över filer och kataloger som finns i den;
  • Spela in- låter dig skriva nya data till en fil eller ändra befintliga, och låter dig också skapa och ändra filer och kataloger;
  • Prestanda- du kan inte köra ett program om det inte har en exekveringsflagga. Detta attribut är satt för alla program och skript, det är med dess hjälp som systemet kan förstå att den här filen måste köras som ett program.

Men alla dessa rättigheter skulle vara meningslösa om de gällde alla användare samtidigt. Därför har varje fil tre användarkategorier för vilka du kan ställa in olika kombinationer av åtkomsträttigheter:

  • Ägare- en uppsättning rättigheter för ägaren av filen, användaren som skapade den eller nu är satt av dess ägare. Vanligtvis har ägaren alla rättigheter, läsa, skriva och utföra.
  • Grupp- vilken användargrupp som helst som finns i systemet och som är associerad med en fil. Men detta kan bara vara en grupp och är vanligtvis ägarens grupp, även om en annan grupp kan tilldelas filen.
  • Resten- alla användare utom ägaren och användare som ingår i filgruppen.

Det är med hjälp av dessa uppsättningar av behörigheter som filbehörigheter ställs in i Linux. Varje användare kan bara få full tillgång till filer som de äger eller som de har behörighet att få åtkomst till. Endast rotanvändaren kan arbeta med alla filer, oavsett deras behörighetsuppsättning.

Men med tiden blev ett sådant system otillräckligt och flera fler flaggor lades till som låter dig göra filer oföränderliga eller köra dem som en superanvändare, vi kommer att titta på dem nedan:

Särskilda filbehörigheter i Linux

För att tillåta vanliga användare att köra program på uppdrag av superanvändaren utan att känna till hans lösenord, uppfanns en sådan sak som SUID- och SGID-bitar. Låt oss titta på dessa befogenheter mer i detalj.

  • SUID- om denna bit är inställd, när programmet körs, ersätts ID:t för användaren från vilken det lanserades med filägarens ID. I själva verket tillåter detta vanliga användare att köra program som superanvändare;
  • SGID- den här flaggan fungerar på ett liknande sätt, den enda skillnaden är att användaren anses vara medlem i gruppen som filen är associerad med, snarare än de grupper som han faktiskt tillhör. Om SGID-flaggan är inställd på en katalog kommer alla filer som skapas i den att associeras med katalogens grupp, inte användarens. Detta beteende används för att organisera delade mappar;
  • Sticky-bit- den här biten används också för att skapa delade mappar. Om det är installerat kan användare bara skapa, läsa och köra filer, men kan inte ta bort filer som ägs av andra användare.

Låt oss nu titta på hur man visar och ändrar filbehörigheter i Linux.

Hur man visar filbehörigheter i Linux

Naturligtvis kan du se filbehörigheter i Linux med hjälp av en filhanterare. De stöder alla den här funktionen, men detta kommer att ge dig ofullständig information. För den mest detaljerade informationen om alla flaggor, inklusive speciella, måste du använda kommandot ls med parametern -l. Alla filer i katalogen kommer att listas och alla attribut och bitar kommer att visas där.

För att ta reda på rättigheterna till en linux-fil, kör följande kommando i mappen där filen finns:

Dashes är ansvariga för filbehörigheter i Linux. Den första är filtypen, som diskuteras i en separat artikel. Sedan finns det grupper av rättigheter, först för ägaren, för gruppen och för alla andra. Det finns bara nio streck för licens och ett för typ.

Låt oss ta en närmare titt på vad de villkorade värdena för rättighetsflaggorna betyder:

  • --- - inga rättigheter alls;
  • --x- att endast exekvera filen som ett program är tillåtet, men inte att ändra eller läsa;
  • -w-- endast att skriva och ändra filen är tillåtet;
  • -wx- ändring och exekvering är tillåtna, men i fallet med en katalog kan du inte se dess innehåll;
  • r--- läsrättigheter;
  • r-x- endast läs och kör, ingen skrivbehörighet;
  • rw-- läs- och skrivrättigheter, men utan utförande;
  • rwx- alla rättigheter;
  • --s- SUID- eller SGID-biten är inställd, den första visas i fältet för ägaren, den andra för gruppen;
  • --t- Sticky-bit är installerat, vilket innebär att användare inte kan ta bort den här filen.

I vårt exempel har filen test1 typiska programbehörigheter, ägaren kan göra allt, gruppen kan bara läsa och köra och alla andra kan bara köra. För test2 ställs dessutom flaggorna SUID och SGID in. Och för test3-mappen är Sticky-bit installerad. Test4-filen är tillgänglig för alla. Nu vet du hur du ser rättigheterna till en linux-fil.

Hur man ändrar filbehörigheter i Linux

För att ändra filbehörigheter i Linux kan du använda verktyget chmod. Det låter dig ändra alla flaggor, inklusive speciella. Låt oss titta på dess syntax:

$ chmod alternativ kategori action flagga fil

Alternativ kommer inte att intressera oss nu, utom kanske bara ett. Med alternativet -R kan du tvinga programmet att tillämpa ändringar på alla filer och kataloger rekursivt.

  • u- filägare;
  • g- filgrupp;
  • o- andra användare.

Åtgärden kan vara en av två saker, antingen lägg till flaggan "+" eller ta bort flaggan "-". När det gäller åtkomsträttigheterna i sig liknar de utdata från verktyget ls: r - read, w - write, x - execute, s - suid/sgid, beroende på vilken kategori du ställer in det för, t - sets sticky -bit. Till exempel har alla användare full tillgång till filen test5:

chmod ugo+rwx test5

Eller så tar vi bort alla rättigheter från gruppen och andra användare:

chmod go-rwx test5

Låt oss ge gruppen rätten att läsa och verkställa:

chmod g+rx test5

För andra användare läs endast:

För test6-filen, ställ in SUID:

Och för test7 - SGID:

Låt oss se vad som hände:

Som du kan se är det mycket enkelt att ändra filbehörigheter i Linux. Dessutom kan du ändra de grundläggande rättigheterna med hjälp av filhanteraren.

Slutsatser

Det är allt, nu vet du inte bara vilka filbehörigheter som finns i Linux, utan också hur du visar dem och till och med hur du ändrar dem. Detta är ett mycket viktigt ämne som nybörjare verkligen behöver förstå för att kunna använda sitt system mer fullständigt. Om du har några frågor, fråga i kommentarerna!

Avslutningsvis skulle jag vilja erbjuda en bra video om åtkomsträttigheter i Linux:

Alternativ -c - lägg till en kommentar till användaren
Alternativ -g sudo - lägg till en användare i sudo-gruppen.
Alternativet -s kommer att ställa in användarens skal till /bin/bash

Alternativ -d används för att ange användarens hemmapp
Alternativ -m kommer att indikera att mappen måste skapas omedelbart:

Sudo useradd -c "Kommentar för användare" -g sudo -d /home/NameUser -m -s /bin/bash NameUser

Ange ett lösenord för NameUser-användaren:

Sudo passwd NameUser

Lägg till en användare med kommandot adduser

sudo useradd -c "Kommentar för användare" -g sudo -d /home/NameUser -m -s /bin/bash NameUser

Ange lösenordet, svara på alla frågor som ställs, skaffa en användare med lösenord och hemkatalog

Ändra användarlösenordet

sudo passwd NameUser

Lägg till en användare i sudo-gruppen

usermod -a -G sudo NameUser

Lägg till en användare/användargrupp till Sudores direkt:

Låt oss redigera filen /etc/sudores.tmp redaktör visudo

Sudo visudo

Låt oss ge root-rättigheter till den namngivna användaren Användarnamn

Användarnamn ALLA=(ALLA:ALLA) ALLA

Låt oss ge root-rättigheter till en grupp användare Grupp namn genom att lägga till en rad i sudoers-filen -

Group_name ALLA=(ALLA:ALLA) ALLA

Användare och hans grupper

Vi tittar på tillgängliga grupper på värden

Cat /etc/group

Kontrollera att det finns en grupp exempelgrupp på värden där exempelgrupp är gruppen du är intresserad av

Grep exempelgrupp /etc/group

Vi kollar/tar reda på vilka grupper användaren tillhör (samt hans uid, gid)

ID NamnAnvändare

Lägg till en befintlig användarnamnanvändare till en befintlig gruppexempelgrupp

Usermod -g exempelgrupp NamnAnvändare

Ta bort en Ubuntu-användare

Vi använder kommandot, användarens mapp kommer inte att raderas

Sudo användardel NameUser

Ta bort mappen om det behövs

Sudo rm -r /home/NameUser/

Vi kontrollerar om användaren har tagit bort, om det inte finns någon utdata så har användaren tagits bort

Sudo grep -R NameUser /etc/passwd --color

Lista alla lokala användare

sudo cat /etc/passwd sudo cat /etc/shadow

För att visa mer detaljerad information om användaren, installera paketet finger

Sudo apt-get install finger

För att visa information om användaren NameUser, kör kommandot

Finger NamnAnvändare

För att mata ut information om alla användare till en fil infoaboutalluser.txt låt oss skapa ett skript finger.sh

#!/bin/bash n=`cat /etc/passwd | cut -d: -f1` för i i $n; gör echo "=============================================== ============================= ================= "finger $i done

Låt oss köra skriptet finger.sh och spara dess innehåll i en fil infoaboutalluser.txt

./finger.sh infoaboutalluser.txt

Lista alla privilegierade användare:

egrep ":0:0:" /etc/passwd

eller inte privilegierad

Egrep -v ":0:0:" /etc/passwd

Lista alla användare vars namn börjar med bokstäverna abcd:

Cat /etc/passwd | grep "^.*"

Som läsarens svar visar är frågan om åtskillnad av administrativa rättigheter i Ubuntu fortfarande oklar för de flesta nybörjaradministratörer, så vi bestämde oss för att bringa lite klarhet i denna fråga med detta material. Därför, om du inte vet hur su skiljer sig från sudo, var du gömde root, etc., etc., är det dags att börja studera vår artikel.

Låt oss börja med en liten utvikning. Linux administrativa rättigheter går tillbaka till Unix OS och har därför mycket gemensamt med andra Unix-liknande system: BSD, Solaris, MacOS. Samtidigt har olika distributioner sina egna implementeringsegenskaper för vissa aspekter, så vi kommer att ge specifika exempel angående Ubuntu-familjen, men kunskap om de allmänna reglerna gör att du enkelt kan förstå miljön för alla andra Unix-liknande operativsystem.

Användaren har fullständiga administrativa rättigheter i Linux. rot, vars rättigheter inte kan begränsas, så vardagligt arbete för denna användares räkning är extremt oönskat: vårdslösa handlingar från användaren kan leda till skada på systemet, och att äventyra detta konto kommer att ge angriparen obegränsad tillgång till systemet.

Därför har ett annat schema antagits i Linux: alla användare, inklusive administratörer, arbetar under ett begränsat konto, och för att utföra administrativa åtgärder använder de en av rättighetsupptrappningsmekanismerna. För att göra detta kan du öka rättigheterna med hjälp av verktyget sudo eller logga in som en superanvändare (root) utan att avsluta den aktuella sessionen med kommandot su. Många människor förväxlar dessa två mekanismer av misstag, så låt oss titta på dem mer i detalj.

Team su låter dig logga in som en annan användare (inte nödvändigtvis root) utan att avsluta den aktuella sessionen. Så kommandot:

Su petrov

kommer att tillåta dig att logga in som användaren petrov, användarmiljön (hemmappen) kommer också att ändras till att tillhöra denna användare.

Team su låter dig logga in under ditt konto utan att ange ett användarnamn rot"a. Den här metoden har dock en betydande nackdel - för att logga in för en annan användares räkning måste du känna till hans lösenord. Om du har flera administratörer kommer var och en av dem att känna till superanvändarlösenordet och du kommer inte att kunna begränsa sina rättigheter.

Dessutom är det osäkert, att känna till superanvändarlösenordet och möjligheten att logga in under hans namn i händelse av kompromiss kan leda till en fullständig förlust av kontrollen över systemet.

Vad händer om vi försöker öka rättigheterna i Ubuntu på detta sätt? Vi kommer inte att kunna göra någonting eftersom vi inte känner till användarens lösenord rot, samtidigt är det ingen som hindrar oss från att logga in som en annan användare.

"Vänta!" - En annan användare kommer att säga, "givs inte root-rättigheter till den först skapade användaren, som vi anger under installationen?" Faktum är att administrativa uppgifter bara kan utföras på uppdrag av användaren som skapades under installationen; om vi försöker göra detta på på uppdrag av en annan användare kommer vi att drabbas av misslyckande.

Här kommer vi nära den andra mekanismen för att öka rättigheterna - nyttan sudo. Men innan du går vidare till att studera det är det värt att förtydliga: superanvändarrättigheter (root) i Ubuntu tillhör root-kontot, som är inaktiverat som standard. Öka därför behörigheterna med kommandot su verkar inte möjligt.

Huvudmekanismen för att höja rättigheter i Ubuntu är verktyget sudo. Detta verktyg låter dig höja rättigheterna till superanvändarnivån för kommandot som körs, men du behöver inte känna till superanvändarlösenordet, användaren måste ange sitt eget lösenord. Därefter kommer verktyget att kontrollera om den här användaren har rätt att utföra detta kommando på denna värd med superanvändarrättigheter och, om kontrollerna lyckas, kommer att utföra det.

Det är viktigt! Den största skillnaden su från sudo tjänar vad su låter dig ändra den nuvarande användaren till root, vilket kräver ett aktivt superanvändarkonto i systemet och kunskap om dess lösenord, sudo låter dig höja rättigheterna för kommandot som körs utan att ange ett superanvändarlösenord; användaren måste ange sitt eget lösenord; att logga in som root med dessa referenser kommer inte att fungera.

En annan viktig omständighet är att när du använder en pipeline eller omdirigering med superanvändarrättigheter kommer endast den första delen av kommandot att exekveras, till exempel i designen:

Sudo kommando1 | lag2

med root-rättigheter kommer endast att köras lag1. Och laget

Sudo cat sources.list > /etc/apt/sources.list

kommer att ge ett åtkomsträttsfel eftersom posten är in /etc/apt/sources.list kommer att ske med normala användarrättigheter.

För att utföra komplexa kombinationer av kommandon kan du växla till superanvändarläge med kommandot

vilket liknar att höja rättigheter med ett kommando su Detta kommer dock inte att ändra användarmiljön och den aktuella användarens katalog kommer att användas som hemkatalog, vilket är bekvämt och säkert. Varje administratör har bara tillgång till sin hemkatalog.

Nu är det dags att ta reda på vem som har rätt att använda möjligheterna sudo och i vilken utsträckning. Filen ansvarar för inställningarna för detta verktyg /etc/sudoers, trots att detta är en vanlig konfigurationsfil, för att redigera den rekommenderas det starkt att använda kommandot:

Sudo visudo

Detta kommando låser filen och kontrollerar syntaxen, annars riskerar du att förlora administrativ åtkomst till din PC på grund av ett stavfel.

Syntaxen för denna fil är mycket enkel. Till exempel, i slutet av filen finns en post:

%admin ALLA=(ALLA) ALLA

Detta innebär att användarna av gruppen administration kan utföra vilket kommando som helst på vilken värd som helst, på uppdrag av vilken användare som helst. Som vi enkelt kan verifiera med kommandot grupper i vårt fall användaren andrey tillhör gruppen administration, och användaren petrov Nej.

Men alla fördelar med detta verktyg ligger i möjligheten att flexibelt konfigurera parametrarna för att erhålla rättigheter i varje specifikt fall. Till exempel:

Petrov ubuntu-lts=(andrey) ALLA

Denna linje tillåter användaren petrov kör valfritt kommando på värden ubuntu-lts på uppdrag av användaren andrey. När du anger kommandon bör du ange den fullständiga sökvägen till dem; du kan hitta den med kommandot som

Vi vill till exempel tillåta användare petrov Och sidorov stäng av och starta om datorn, samt ta bort uppgifter. Dessa kommandon bör dock inte kräva att ett lösenord anges.

En annan trevlig funktion i sudo-verktyget är skapandet av alias, så i vårt fall kommer vi att lägga till /etc/sudoers följande rader:

User_Alias ​​​​USERGROUP1 = petrov, sidorov
Cmnd_Alias ​​​​CMDGROUP1 = /bin/kill, /sbin/reboot, /sbin/shutdown

Med detta skapade vi två alias ANVÄNDARGRUPP1, där vi inkluderade de användare vi behöver och CMDGROUP1 med en uppsättning nödvändiga kommandon kan vi sedan endast redigera alias utan att påverka alla regler där de kan användas. Låt oss sedan lägga till en regel:

ANVÄNDARGRUPP1 ALLA = (ALLA) NOPASSWD:СMDGROUP1

vilket gör det möjligt för användare som är listade i det angivna aliaset att utföra kommandon från det givna aliaset på vilken värd som helst på uppdrag av en användare utan att ange ett lösenord.

Utöver de två ovanstående finns även alias tillgängliga för värdnamnet och användare på vars vägnar det är tillåtet att utföra kommandon, till exempel:

Host_Alias ​​​​WWW = webbserver1, webbserver2
Runas_Alias ​​​​WWW = www-data, www-utvecklare

ANVÄNDARGRUPP1 WWW = (WWW) ALLA

Den givna uppsättningen poster tillåter användare att komma in ANVÄNDARGRUPP1 exekvera alla kommandon på uppdrag av användare www-data Och www-utvecklare på företagets webbservrar.

Slutligen, låt oss titta på vad vi ska göra om ett root-konto fortfarande behövs. Det är enkelt, för att aktivera det, ställ bara in ett lösenord:

Sudo passwd rot

Du kan låsa superanvändarkontot igen med kommandot:

Sudo passwd -l rot

Kom ihåg att alla administrativa uppgifter i Ubuntu kan utföras med hjälp av sudo-verktyget, så aktivera inte root-kontot om det inte är absolut nödvändigt!

Som du kan se har Ubuntu rika funktioner för administration av rättigheter, vilket gör att du flexibelt kan fördela rättigheter mellan flera administratörer, samt ge möjlighet att öka rättigheterna för vissa användare, och göra detta effektivt och säkert.