Hur man använder kommandot chown på Linux

By rik

I Linux-system har varje fil och mapp en ägare. Du kan ändra detta ägarskap med kommandot `chown`. Här förklarar vi hur.

Varje fil har en användare och en grupp

Linux är utformat för flera användare. Det betyder att operativsystemet tillåter att flera användarkonton skapas, och att dessa användare kan logga in på samma dator, till och med samtidigt.

För att hålla reda på vilka filer som tillhör vilken användare, och för att upprätthålla en viss säkerhetsnivå, använder Linux ett system med ägarskap. Varje fil har en ägare – en användare – och en grupp.

När en fil skapas blir användaren som skapade filen dess ägare. Filens grupp – den ”ägande” gruppen – är användarens nuvarande grupp. Både användare och grupper har namn och numeriska ID, kallade användar-ID (UID) och grupp-ID (GID).

När du skapar en fil, ägs den av dig och tillhör din nuvarande grupp, oftast den grupp du är inloggad med. Vanligtvis är det en grupp med samma namn som ditt användarnamn, skapad när ditt användarkonto skapades.

Med kommandot `chown` kan du ändra dessa ägarvärden. Du kan ställa in en ny ägare, en ny grupp eller både och. Ägaren av en fil kan ändra gruppens ägarskap, men endast root-användaren kan ändra användarägandet, eftersom det handlar om en annan användare. Utan root-behörighet kan du inte få en annan användare att ”adoptera” en fil utan deras vetskap.

När behöver man ändra ägarskap?

Här är några situationer där det kan vara nödvändigt:

  • När filer flyttas mellan olika Linux- eller Unix-liknande system, måste användar- och gruppägare ändras så att de passar den nya användaren och gruppen på den nya Linux-datorn.
  • Om en anställd slutar, måste ansvaret för deras filer överföras till en annan anställd. Då ändrar man ägare och grupp.
  • När ett skript ska köras av en specifik användare.
  • Om en fil eller mapp skapas som root, men ska vara tillgänglig för en specifik användare.

Se dina grupper, UID och GID

För att se vilka grupper du tillhör kan du använda kommandot `groups`.

groups

För att få en lista över dina grupper, deras numeriska ID och ditt UID och GID, använd kommandot `id`:

id

Du kan använda vissa flaggor med `id` för att anpassa utmatningen:

  • `-u`: Visa ditt UID.
  • `-g`: Visa ditt effektiva (nuvarande) GID.
  • `-nu`: Visa ditt användarnamn.
  • `-ng`: Visa ditt nuvarande gruppnamn.
id -u
id -g
id -nu
id -ng

Visa användar- och gruppägare för en fil

Använd `ls` med flaggan `-l` (lång lista) för att se ägarna av en fil eller mapp.

ls -l

Namnet `dave` visas två gånger. Det vänstra namnet visar att filens ägare är en användare vid namn `dave`. Det högra namnet visar att filen tillhör en grupp som också heter `dave`.

När en Linux-användare skapas läggs de till i en privat grupp med samma namn som deras användarnamn, och de är den enda medlemmen i gruppen.

Här är ett exempel där den körbara filen ägs av användaren `mary`, och filen tillhör hennes privata grupp:

ls -l

I det här fallet ägs filen av användaren `oscar`, men den tillhör gruppen `researchlab`. Det betyder att andra medlemmar i gruppen `researchlab` kan komma åt filen, beroende på de filbehörigheter som är inställda för den gruppen.

Ändra användarägande

Låt oss se några exempel. Följande kommando ändrar ägaren av filen `while.c` till användaren `mary`.

sudo chown mary while.c

Vi kan verifiera ändringarna med `ls`:

ls -l while.c

Du kan ändra äganderätten för flera filer samtidigt:

sudo chown mary getval.c global.c goto.c

Detta ändrar ägaren för alla tre filerna.

ls -l getval.c global.c goto.c

Du kan använda jokertecken för att välja filgrupper. Följande kommando ändrar ägaren för alla filer som börjar med bokstaven `c`.

sudo chown mary c*.*

Alla filer har nu `mary` som ägare, men gruppägandet har inte ändrats.

ls -l mary c*.*

Låt oss ändra ägaren av en mapp. Vi anger helt enkelt mappens namn istället för filnamn.

sudo chown mary ./archive/

För att kontrollera mappens ägaregenskaper använder vi `ls`, men också flaggan `-d` (katalog). Det visar egenskaperna för mappen, inte filerna i den.

ls -l -d ./archive/

För att ändra äganderätten för alla filer i en mapp kan du använda flaggan `-R` (rekursivt). Det ändrar ägaren för alla filer och undermappar inom mappen `archive`.

sudo chown -R mary ./archive/

Låt oss titta på filerna i mappen `archive`:

ls -l ./archive/

Som förväntat tillhör alla filer nu `mary`.

Ändra gruppägande

Det finns olika sätt att ändra gruppägandet.

Om du vill ändra både användare och grupp samtidigt, ange det nya användarnamnet och det nya gruppnamnet, separerade med ett kolon `:`. Gruppen måste redan existera.

sudo chown mary:researchlab charm.c

Både användar- och gruppägandet har ändrats.

ls -l charm.c

Ett kortare sätt att ändra gruppägandet till den nya ägarens nuvarande grupp är att bara ange kolonet och utelämna gruppnamnet.

sudo chown mary: caps.c

ls -l caps.c

Både användar- och gruppägandet har ändrats till `mary`.

För att bara ändra gruppens ägande, föregå gruppnamnet med ett kolon och utelämna användarnamnet. Användarägandet kommer då inte att ändras.

sudo chown :researchlab at.c

ls -l at.c

Gruppägandet har ändrats, men användarägandet är oförändrat.

Använda `chown` med UID- och GID-värden

Du kan använda numeriska UID- och GID-värden med kommandot `chown`. Följande kommando ställer in användar- och gruppägandet till `mary`:

sudo chown 1001:1001 at.c

ls -l at.c

Ägande är viktigt

Ägandeskap är en viktig del av säkerheten i Linux. Tillsammans med filbehörigheter ger de kontroll över filåtkomst. Använd `chown` och `chmod` för att säkra filerna i ditt system.