Som nybegynder Linux lærer du om de tilladelser og ejerskab, der er forbundet med filen og mapperne. Linux/Unix-lignende operativsystemer giver dig mulighed for at indstille en kombination af ni bits tilladelser for at forhindre andre brugere i unødvendige filer/mappeadgang. Svarende til disse er specielle tilladelser for eksekverbare filer kendt som set UID, set GID og sticky bits.

At forstå særlige tilladelser kan være lidt overvældende for håbefulde Linux-administratorer. Her lærer du lidt baggrund om de almindelige filtilladelser og forklarer, hvordan de adskiller sig fra specielle tilladelser. Vi demonstrerer også SetID, GetID og sticky bits funktionalitet med eksempler for en omfattende forståelse.

Almindelige Linux-filtilladelser

Linux bruger chmod kommando at tildele/ændre læst (r=4), skriv (w=2), og udfør (x=1) tilladelser til filer og mapper. Det vil sige, at de ni ovennævnte bits gælder for de tre hovedkategorier af tilladelsesgrupper. De første tre er for den bruger, der ejer filen, det andet sæt er for den gruppe, der er tildelt filen/biblioteket, og de sidste tre repræsenterer alle andre brugere.

For eksempel vil en almindelig fil alle typer tilladelser for alle kategorier af brugere vises som -rwxrwxrwx. Mens - i erstatning af bogstaver repræsenterer fraværet af denne tilladelse. Nu chmod kommandoen bruger tal og bogstaver til at ændre tilladelser som følger:

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ærlige Linux-filtilladelser

Det setuid bit repræsenterer tilladelse til en eksekverbar fil, der kan køres af andre brugere med ejerens tilladelse. For eksempel når brugeren max kører vi-kommandoen som bruger John, vil du have læse-/skrivetilladelser fra John.

For at identificere filer med setuid skal du bruge ls kommando og se efter s bit i stedet for den eksekverbare bit x, som følger.

Indstil UID Bit

Det setuid bit repræsenterer tilladelse til en eksekverbar fil, der kan køres af andre brugere med ejerens tilladelse. For eksempel når brugeren max kører vi-kommandoen som rod, han vil have læse-/skrivetilladelser fra rod. For at identificere filer med setuid skal du bruge ls kommando og se efter s bit i stedet for udføre bit x, som følger:

ls -la /etc/passwd 
-rwsr-xr-x 1 root root 88464 14. december 12:46 passwd

Nogle andre eksempler er:

ls -la /bin/gpasswd
-rwsr-xr-x 1 root root 88464 14. jul 15:08 gpasswd
ls -la /bin/su
-rwsr-xr-x 1 rodrod 67816 21. juli 2020 su
ls -la /nygrp
-rwsr-xr-x 1 rodrod 44784 14. jul 15:08 newgrp
ls -la /bin/sudo
-rwsr-xr-x 1 rodrod 166056 19. januar 2021 sudo

For at indstille setuid-bitten til eksekverbare filer skal du bruge chmod-kommandoen som følger:

chmod u+s /etc/passwd

Sådan fjerner du tilladelsen til at udføre filerne fra ikke-rootbrugere eller ejere:

chmod u-s /etc/passwd

Indstil GID Bit

Som diskuteret styrer set uid-bitten filadgang til andre brugere, mens setgid (GID)-bitten opretter kollaborative mapper. Det betyder, at enhver fil, der er oprettet i den mappe, er tilgængelig for mappens gruppe. Derfor tillader det alle gruppemedlemmer at køre eksekverbare filer uden ejerens privilegier og beskytter dem mod andre brugere.

Følg disse trin for at oprette en kollaborativ mappe i dit Linux-system:

Opret en gruppe ved hjælp af gruppeadd kommando med gruppe-id 415 til samarbejde:

groupadd -g 415 admins

Brug usermod-kommandoen til at tilføje Johntil gruppen for filadgang/udførelse.

usermod -aG admins john

Brug mkdir kommando for at oprette en mappe:

mkdir /tmp/collaborative_dir

Brug chgrp kommando for at tildele biblioteket til administratorer gruppe:

chgrp admins /tmp/collaborative_dir

Brug chmod kommando for at ændre mappetilladelse til 2775. De 2 bit tænder for set gid, 7 for at tildele fuld rwx til brugeren og gruppen, mens 5 (r-w) for andre.

chmod 2775 /tmp/collaborative_dir

Til sidst skal du ændre din brugerkonto til John og oprette en fil i den kollaborative mappe for at kontrollere filtilladelser.

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

Su-kommandoen kan give dig en godkendelsesfejl. I dette tilfælde skal du skrive sudo su kommando for at skifte til root og køre igen su - john for at ændre brugerkontoen

List nu tilladelserne til at kontrollere GID-bit(s) indstillet for mappen og den nyoprettede fil.

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

I et typisk scenarie vil en fil oprettet af john have en gruppe john tildelt. Da du opretter filen inde i en indstillet GID-bitmappe, tildeler den tilladelser til administratorer gruppe, sådan at alle, der tilhører gruppen, kan lide brugeren chris, vil have adgang til det.Relaterede: Sådan opretter du nye filer på Linux ved hjælp af touch

Sticky Bits

I modsætning til SID og GID bits adskiller sticky bits sig i funktionalitet, da det beskytter filer og mapper mod omdøbning og sletning af andre brugere. Almindelig filtilladelse giver enhver bruger med skriveadgang mulighed for at slette eller omdøbe filen. Medens det med sticky bit-sættet ikke er muligt, medmindre du er root-brugeren eller ejeren af ​​filen.

Det ideelle case-scenarie til brug af sticky bits er mappen, der er tilgængelig for alle brugere til filoprettelse. Brug for eksempel ls -ld kommando for at kontrollere \tmp mappetilladelser som følger:

Du kan bemærke, at den klæbrige smule t erstatter execute-bitten x. Følg det givne sæt instruktioner for at oprette en begrænset sletningsmappe:

Opret nu en anden mappe i /tmp folder:

mkdir /tmp/ny_dir

Skift filtilladelserne til 1777 for at indstille den klæbrige bit (t) og fuld katalogadgang:

chmod 1777 /tmp/new_dir

Kopier nu enhver fil fra /etc mappe til /tmp/new_dir og ændre dens tilladelser til 666:

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

List mappen og alt dens indhold for at se tilladelser:

ls -ld /tmp/new_dir /tmp/new_dir/services

Du kan bemærke sticky bit i stedet for execute bit, hvilket betyder, at kun roden eller brugeren john kan slette filen, da filen er inde i sticky bit mappen.

Forståelse af særlige filtilladelser i Linux

Artiklen viser, hvordan man indstiller disse bits for at forbedre samarbejdet over delte filer og mapper og beskytte dem mod uautoriseret adgang, eksekvering og sletning. Selvom du ikke opretter filer/mapper med disse bits, er det nyttigt at forstå specielle filtilladelser i mange situationer, især ved fejlfinding eller som systemadministrator. Hvorimod uklog brug af disse bits kan forårsage forskellige sikkerhedssårbarheder.

Sådan bevarer du filtilladelser, mens du kopierer filer i Linux

Vil du beholde filtilladelser, mens du kopierer filer på Linux? Her er hvordan du gør det ved hjælp af cp og rsync.

Læs Næste

DelTweetE-mail
Relaterede emner
  • Linux
  • Filhåndtering
  • Linux
Om forfatteren
Rumaisa Niazi (3 artikler udgivet)

Rumaisa er freelanceskribent på MUO. Hun har dækket en lang vej fra en matematiker til en informationssikkerhedsentusiast og arbejder som SOC-analytiker. Hendes interesser inkluderer at læse og skrive om nye teknologier, Linux-distributioner og alt omkring informationssikkerhed.

Mere fra Rumaisa Niazi

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for tekniske tips, anmeldelser, gratis e-bøger og eksklusive tilbud!

Klik her for at abonnere