Nyheter i Android, Telefoner, Prylar Och Recensioner

Vad är Set UID, Get UID och Sticky Bits i Linux-filbehörigheter?

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 för att tilldela/ändra läs (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.

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 file #for rwxr-xr-x 
sudo chmod 644 file #for rw-r--r-- 
sudo chmod a-w file #for r-xr-xr-x 
sudo chmod a+x file #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.

Relaterad  Ghost of Tsushima, filmen: regissören förklarar att det inte kommer att vara den vanliga anpassningen på låg nivå

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 root root 88464 Dec 14 12:46 passwd

Några andra exempel är:

ls -la /bin/gpasswd
-rwsr-xr-x 1 root root 88464 Jul 14 15:08 gpasswd
ls -la /bin/su
-rwsr-xr-x 1 root root 67816 Jul 21 2020 su
ls -la /newgrp
-rwsr-xr-x 1 root root 44784 Jul 14 15:08 newgrp
ls -la /bin/sudo
-rwsr-xr-x 1 root root 166056 Jan 19 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 john till gruppen för filåtkomst/körning.

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 (rw) 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
touch /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

Relaterad  NS: “######## mov. Jag var i CIS med en riktigt otrolig bärnivå, och nu är han inte i CIS, utan på banken i Evil Geniuses "

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.

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/ny_katalog 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/services

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

Relaterad  5 vanliga felkoder på Mac och hur man åtgärdar dem

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 bra att förstå speciella filbehörigheter i många situationer, speciellt vid felsökning eller som systemadministratör. Medan oklok användning av dessa bitar kan orsaka olika säkerhetsbrister.

Om författaren

Rumaisa Niazi (6 artiklar publicerade)

Rumaisa är frilansskribent på MUO. Hon har burit många hattar, från en matematiker till en informationssäkerhetsentusiast, och arbetar nu 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, free e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera