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.
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
- Linux
- Filhåndtering
- Linux

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.
Abonner på vores nyhedsbrev
Tilmeld dig vores nyhedsbrev for tekniske tips, anmeldelser, gratis e-bøger og eksklusive tilbud!
Klik her for at abonnere