Som nybegynner på Linux lærer du om tillatelsene og eierskapet knyttet til filen og katalogene. Linux/Unix-lignende operativsystemer lar deg angi en kombinasjon av ni bits tillatelser for å hindre andre brukere fra unødvendige filer/katalogtilgang. I likhet med disse er spesielle tillatelser for kjørbare filer kjent som set UID, set GID og sticky bits.

Å forstå spesielle tillatelser kan være litt overveldende for ambisiøse Linux-administratorer. Her lærer du litt bakgrunn om de vanlige filtillatelsene og forklarer hvordan de skiller seg fra spesielle tillatelser. Vi demonstrerer også SetID, GetID og sticky bits funksjonalitet med eksempler for en helhetlig forståelse.

Vanlige Linux-filtillatelser

Linux bruker chmod kommando å tildele/endre lest (r=4), skrive (w=2), og utfør (x=1) tillatelser på filer og mapper. Det vil si at de ni bitene nevnt ovenfor gjelder de tre hovedkategoriene av tillatelsesgrupper. De tre første er for brukeren som eier filen, det andre settet er for gruppen som er tilordnet filen/katalogen, og de tre siste representerer alle andre brukere.

instagram viewer

For eksempel vil en vanlig fil alle typer tillatelser for alle kategorier av brukere vises som -rwxrwxrwx. Mens - i erstatning for bokstaver representerer fraværet av den tillatelsen. Nå chmod kommandoen bruker tall og bokstaver for å endre tillatelser 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

Spesielle Linux-filtillatelser

De setuid bit representerer tillatelse til en kjørbar fil som kan kjøres av andre brukere med eierens autorisasjon. For eksempel når brukeren maks kjører vi-kommandoen som bruker john, vil du ha lese-/skrivetillatelsene til john.

For å identifisere filer med setuid, bruk ls kommando og se etter s bit i stedet for den kjørbare biten x, følgende.

Sett UID Bit

De setuid bit representerer tillatelse til en kjørbar fil som kan kjøres av andre brukere med eierens autorisasjon. For eksempel når brukeren maks kjører vi-kommandoen som rot, han vil ha lese-/skrivetillatelsene til rot. For å identifisere filer med setuid, bruk ls kommando og se etter s bit i stedet for execute-biten x, følgende:

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

Noen andre eksempler er:

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. jul 15:08 newgrp
ls -la /bin/sudo
-rwsr-xr-x 1 rotrot 166056 19. januar 2021 sudo

For å sette setuid-biten for kjørbare filer, bruk chmod-kommandoen som følger:

chmod u+s /etc/passwd

Slik fjerner du tillatelsen til å kjøre filene fra ikke-rootbrukere eller eiere:

chmod u-s /etc/passwd

Sett GID Bit

Som diskutert kontrollerer set uid-biten filtilgang til andre brukere, mens setgid-biten (GID) oppretter samarbeidskataloger. Det betyr at enhver fil opprettet i den katalogen er tilgjengelig for katalogens gruppe. Derfor lar det alle gruppemedlemmer kjøre kjørbare filer uten eierens privilegier og beskytter dem mot andre brukere.

Følg disse trinnene for å opprette en samarbeidskatalog i Linux-systemet:

Opprett en gruppe ved å bruke gruppeadd kommando med gruppe-id 415 for samarbeid:

groupadd -g 415 admins

Bruk usermod-kommandoen for å legge til johntil gruppen for filtilgang/utførelse.

usermod -aG admins john

Bruke mkdir kommando for å lage en katalog:

mkdir /tmp/collaborative_dir

Bruke chgrp kommandoen for å tilordne katalogen til administratorer gruppe:

chgrp admins /tmp/collaborative_dir

Bruke chmod kommando for å endre katalogtillatelse til 2775. 2-biten slår på settet gid, 7 for å tildele full rwx til brukeren og gruppen, mens 5 (r-w) for andre.

chmod 2775 /tmp/collaborative_dir

Til slutt, endre brukerkontoen din til john og opprette en fil i samarbeidskatalogen for å sjekke filtillatelser.

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

Su-kommandoen kan gi deg en autentiseringsfeil. I dette tilfellet, skriv inn sudo su kommando for å bytte til roten og kjøre på nytt su - john for å endre brukerkontoen

List nå tillatelsene for å sjekke GID-biten(e) satt for katalogen og den nyopprettede filen.

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

I et typisk scenario vil en fil opprettet av john ha en gruppe john tildelt. Siden du oppretter filen i en satt GID-bitkatalog, tildeler den tillatelser til administratorer gruppe, slik at alle som tilhører gruppen, liker brukeren chris, vil ha tilgang til den.I slekt: Hvordan lage nye filer på Linux ved hjelp av touch

Sticky Bits

I motsetning til SID- og GID-biter, er klebrige biter forskjellige i funksjonalitet ettersom de beskytter filer og kataloger fra å endre navn og slette av andre brukere. Vanlig filtillatelse lar enhver bruker med skrivetilgang slette eller gi nytt navn til filen. Mens med sticky bit-settet er det ikke mulig med mindre du er rotbruker eller eier av filen.

Det ideelle tilfellet for bruk av sticky bits er katalogen som er tilgjengelig for alle brukere for filoppretting. Bruk for eksempel ls -ld kommando for å sjekke \tmp katalogtillatelser, som følger:

Du kan merke at den klissete biten t erstatter execute-biten x. Følg det gitte settet med instruksjoner for å opprette en begrenset slettingskatalog:

Opprett nå en annen katalog i /tmp mappe:

mkdir /tmp/new_dir

Endre filtillatelsene til 1777 for å sette den klebrige biten (t) og full katalogtilgang:

chmod 1777 /tmp/new_dir

Kopier nå hvilken som helst fil fra /etc mappe til /tmp/new_dir og endre tillatelsene til 666:

cp /etc/ /tmp/new_dir
chmod 666 /tmp/new_dir/tjenester

List opp katalogen og alt innholdet for å se tillatelser:

ls -ld /tmp/new_dir /tmp/new_dir/tjenester

Du kan legge merke til sticky-biten i stedet for execute-biten, noe som betyr at bare roten eller brukeren john kan slette filen, siden filen er inne i sticky bit-katalogen.

Forstå spesielle filtillatelser i Linux

Artikkelen viser hvordan du setter disse bitene for å forbedre samarbeidet over delte filer og kataloger og beskytte dem mot uautorisert tilgang, kjøring og sletting. Selv om du ikke oppretter filer/kataloger med disse bitene, er det nyttig å forstå spesielle filtillatelser i mange situasjoner, spesielt ved feilsøking eller som systemadministrator. Mens uklokt bruk av disse bitene kan forårsake ulike sikkerhetssårbarheter.

Hvordan bevare filtillatelser mens du kopierer filer i Linux

Vil du beholde filtillatelser mens du kopierer filer på Linux? Slik gjør du det ved å bruke cp og rsync.

Les Neste

DelekvitringE-post
Relaterte temaer
  • Linux
  • Filbehandling
  • Linux
Om forfatteren
Rumaisa Niazi (3 artikler publisert)

Rumaisa er frilansskribent ved MUO. Hun har dekket en lang vei fra en matematiker til en informasjonssikkerhetsentusiast, og jobber som SOC-analytiker. Hennes interesser inkluderer å lese og skrive om nye teknologier, Linux-distribusjoner og alt rundt informasjonssikkerhet.

Mer fra Rumaisa Niazi

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Klikk her for å abonnere