Som nybörjare i Linux får du lära dig om behörigheterna och ägandet som är associerat med filen och katalogerna. Linux/Unix-liknande operativsystem låter dig ställa in en kombination av nio bitars behörigheter för att förhindra andra användare från onödiga filer/katalogåtkomst. Liknande dessa är speciella behörigheter för körbara filer som kallas set UID, set GID och sticky bits.

Att förstå speciella behörigheter kan vara lite överväldigande för blivande Linux-administratörer. Här får du lära dig lite bakgrund om de vanliga filbehörigheterna och förklarar hur de skiljer sig från speciella behörigheter. Vi demonstrerar också SetID, GetID och sticky bits funktionalitet med exempel för en övergripande förståelse.

Vanliga Linux-filbehörigheter

Linux använder kommandot chmod att tilldela/ändra läsning (r=4), skriv (w=2), och kör (x=1) behörigheter för filer och mappar. Det vill säga, de nio bitarna som nämns ovan gäller de tre huvudkategorierna av behörighetsgrupper. De första tre är för användaren som äger filen, den andra uppsättningen är för gruppen som tilldelats filen/katalogen, och de tre sista representerar alla andra användare.

instagram viewer

Till exempel, en vanlig fil kommer att alla typer av behörigheter för alla kategorier av användare visas som -rwxrwxrwx. Medan - i ersättande av bokstäver representerar avsaknaden av det tillståndet. Nu chmod kommandot använder siffror och bokstäver för att ändra behörigheter enligt följande:

sudo chmod 755 fil #for rwxr-xr-x 
sudo chmod 644 fil #for rw-r--r-- 
sudo chmod a-w fil #for r-xr-xr-x 
sudo chmod a+x fil #for --x--x--x

Särskilda Linux-filbehörigheter

De setuid bit representerar behörighet för en körbar fil som kan köras av andra användare med ägarens auktorisering. Till exempel när användaren max kör kommandot vi som användaren john, kommer du att ha läs-/skrivbehörigheter för john.

För att identifiera filer med setuid, använd ls kommandot och leta efter s bit i stället för den körbara biten x, som följer.

Ställ in UID-bit

De setuid bit representerar behörighet för en körbar fil som kan köras av andra användare med ägarens auktorisering. Till exempel när användaren max kör kommandot vi som rot, han kommer att ha läs/skrivbehörigheter för rot. För att identifiera filer med setuid, använd ls kommandot och leta efter s bit i stället för exekveringsbiten x, som följer:

ls -la /etc/passwd 
-rwsr-xr-x 1 rotrot 88464 14 dec 12:46 passwd

Några andra exempel är:

ls -la /bin/gpasswd
-rwsr-xr-x 1 rotrot 88464 14 juli 15:08 gpasswd
ls -la /bin/su
-rwsr-xr-x 1 rotrot 67816 21 juli 2020 su
ls -la /newgrp
-rwsr-xr-x 1 rotrot 44784 14 juli 15:08 newgrp
ls -la /bin/sudo
-rwsr-xr-x 1 rotrot 166056 19 januari 2021 sudo

För att ställa in setuid-biten för körbara filer, använd kommandot chmod enligt följande:

chmod u+s /etc/passwd

Så här tar du bort behörigheten att köra filerna från icke-rootanvändare eller ägare:

chmod u-s /etc/passwd

Ställ in GID-bit

Som diskuterats styr set uid-biten filåtkomst till andra användare, medan setgid-biten (GID) skapar samarbetskataloger. Det betyder att alla filer som skapas i den katalogen är tillgängliga för katalogens grupp. Därför tillåter det alla gruppmedlemmar att köra körbara filer utan ägarens privilegier och skyddar dem från andra användare.

Följ dessa steg för att skapa en samarbetskatalog i ditt Linux-system:

Skapa en grupp med hjälp av gruppadd kommando med grupp-id 415 för samarbete:

groupadd -g 415 admins

Använd kommandot usermod för att lägga till johntill gruppen för filåtkomst/exekvering.

usermod -aG admins john

Använd mkdir kommando för att skapa en katalog:

mkdir /tmp/collaborative_dir

Använd chgrp kommandot för att tilldela katalogen till administratörer grupp:

chgrp admins /tmp/collaborative_dir

Använd chmod kommando för att ändra katalogbehörighet till 2775. De 2 bitarna slår på set gid, 7 för att tilldela fullständig rwx till användaren och gruppen, medan 5 (r-w) för andra.

chmod 2775 /tmp/collaborative_dir

Ändra slutligen ditt användarkonto till john och skapa en fil i samarbetskatalogen för att kontrollera filbehörigheter.

su - john
tryck på /tmp/collaborative_dir/file.txt

Kommandot su kan ge dig ett autentiseringsfel. I det här fallet skriver du in sudo su kommando för att byta till roten och köra igen su - john för att ändra användarkontot

Lista nu behörigheterna för att kontrollera GID-bit(s)uppsättningen för katalogen och den nyskapade filen.

ls -ld /tmp/collaborative_dir /tmp/collaborative_dir/file.txt 

I ett typiskt scenario kommer en fil skapad av john att ha en grupp john tilldelad. Eftersom du skapar filen i en uppställd GID-bitkatalog, tilldelar den behörigheter till administratörer grupp, så att alla som tillhör gruppen gillar användaren chris, kommer att ha tillgång till det.Relaterad: Hur man skapar nya filer på Linux med touch

Sticky Bits

Till skillnad från SID- och GID-bitar skiljer sig klibbiga bitar i funktionalitet eftersom de skyddar filer och kataloger från att döpa om och radera andra användare. Vanlig filbehörighet tillåter alla användare med skrivbehörighet att ta bort eller byta namn på filen. Medan den klibbiga biten är inställd är det inte möjligt om du inte är rotanvändare eller ägare till filen.

Det idealiska scenariot för att använda sticky bits är katalogen som är tillgänglig för alla användare för att skapa fil. Använd till exempel ls -ld kommando för att kontrollera \tmp katalogbehörigheter, enligt följande:

Du kan märka att den klibbiga biten t ersätter exekveringsbiten x. Följ de givna instruktionerna för att skapa en begränsad raderingskatalog:

Skapa nu en annan katalog i /tmp mapp:

mkdir /tmp/new_dir

Ändra filbehörigheterna till 1777 för att ställa in den klibbiga biten (t) och fullständig katalogåtkomst:

chmod 1777 /tmp/new_dir

Kopiera nu valfri fil från /etc mapp till /tmp/new_dir och ändra dess behörigheter till 666:

cp /etc/ /tmp/new_dir
chmod 666 /tmp/new_dir/services

Lista katalogen och allt dess innehåll för att visa behörigheter:

ls -ld /tmp/new_dir /tmp/new_dir/tjänster

Du kan lägga märke till den klibbiga biten istället för exekveringsbiten, vilket betyder att endast roten eller användaren john kan ta bort filen, eftersom filen finns i katalogen för klibbiga bitar.

Förstå speciella filbehörigheter i Linux

Artikeln visar hur man ställer in dessa bitar för att förbättra samarbetet över delade filer och kataloger och skydda dem från obehörig åtkomst, exekvering och radering. Även om du inte skapar filer/kataloger med dessa bitar, är det användbart att förstå speciella filbehörigheter i många situationer, särskilt vid felsökning eller som systemadministratör. Medan oklok användning av dessa bitar kan orsaka olika säkerhetsbrister.

Hur man bevarar filbehörigheter när du kopierar filer i Linux

Vill du behålla filbehörigheter när du kopierar filer på Linux? Så här gör du med cp och rsync.

Läs Nästa

Dela med sigTweetE-post
Relaterade ämnen
  • Linux
  • Filhantering
  • Linux
Om författaren
Rumaisa Niazi (3 artiklar publicerade)

Rumaisa är frilansskribent på MUO. Hon har gått en lång väg från matematiker till informationssäkerhetsentusiast och arbetar som SOC-analytiker. Hennes intressen inkluderar att läsa och skriva om ny teknik, Linux-distributioner och allt kring informationssäkerhet.

Mer från Rumaisa Niazi

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera