Hoe de chown-opdracht op Linux te gebruiken

Een terminalvenster op een Linux-systeem
Fatmawati Achmad Zaenuri / Shutterstock.com

Bestanden en mappen op Linux-systemen zijn allemaal van iemand. U kunt hun eigendom wijzigen met de chown opdracht. We laten je zien hoe.

Elk bestand behoort tot een gebruiker en een groep

Linux is een systeem voor meerdere gebruikers. Met het besturingssysteem kunnen meerdere gebruikersaccounts worden gedefinieerd en kan elke geldige gebruiker inloggen op de computer. Bovendien kunnen meerdere gebruikers tegelijkertijd één computer gebruiken.

Om bij te houden welke bestanden bij welke gebruiker horen en om enige beveiliging af te dwingen, gebruikt Linux het concept van eigendom. Elk bestand is van een eigenaar — een gebruiker — en van een groep.

Wanneer een bestand wordt gemaakt, is de eigenaar de gebruiker die het heeft gemaakt. De groep waartoe het bestand behoort – de “eigenaar” -groep – is de huidige groep van de gebruiker. Gebruikers en groepen hebben namen en ze hebben ook numerieke identiteiten, een gebruikersidentificatie (of uniek) (UID) en een groepsidentificatiecode (GID) genoemd.

Wanneer u een bestand aanmaakt, is het uw eigendom en behoort het tot uw huidige groep. Meestal is dit de groep waarbij u zich hebt aangemeld. Standaard is dit een groep die dezelfde naam heeft als uw gebruikersnaam en die is gemaakt toen u als gebruiker op het systeem werd aangemaakt.

U kunt de chown command to kan de eigendomswaarden in iets anders veranderen. U kunt tegelijkertijd een nieuwe eigenaar, een nieuwe groep of een nieuwe eigenaar en een nieuwe groep instellen. De eigenaar van een bestand kan het groepseigendom wijzigen, maar alleen de root kan het eigenaarschap van de gebruiker wijzigen omdat het een andere gebruiker betreft. Zonder root-privileges kun je niet een andere gebruiker op het systeem ongewild een bestand laten “adopteren”.

Waarom zou u van eigenaar willen veranderen?

Hier zijn een paar voorbeelden van situaties waarin u dit zou willen doen:

  • Als u bestanden uitwisselt tussen verschillende Linux of Unix-achtige besturingssystemen, moet u de gebruikers- en groepseigenaren wijzigen in de nieuwe gebruikers- en groepseigenaren van het account waaronder u de bestanden wilt gebruiken op de nieuwe Linux-computer.
  • Een gebruiker kan uw organisatie verlaten en al zijn bestanden vallen onder de verantwoordelijkheid van een ander personeelslid. U moet de eigenaar en groepseigenaar wijzigen in het personeelslid dat nu verantwoordelijk is voor die bestanden.
  • U mag een script schrijven dat door een specifieke gebruiker zal worden gebruikt.
  • U kunt een bestand of map maken die is aangemeld als root, maar u wilt dat het toegankelijk is voor een specifieke gebruiker.

Uw groepen, UID en GID bekijken

Om een ​​lijst te maken van de groepen waarin u zich bevindt, kunt u de groups opdracht.

groups

groepen in een terminalvenster

Om een ​​lijst van de groepen, hun numerieke ID’s en uw UID en GID te krijgen, gebruikt u de id opdracht:

id

id in een terminalvenster

U kunt enkele opties met ID gebruiken om de uitvoer te verfijnen.

  • -u: Maak een lijst van uw UID.
  • -g: Maak een lijst van uw effectieve (huidige) GID.
  • -nu: Vermeld uw gebruikersnaam.
  • -ng: Vermeld uw huidige groepsnaam.
id -u
id -g
id -nu
id -ng

id-opdrachtuitvoer in een terminalvenster

Gebruikers- en groepseigendom van een bestand bekijken

Om de eigenaren van een bestand of map te zien, gebruikt u de -l (lange lijst) optie met ls.

ls -l
ls -l in een terminalvenster

We kunnen zien dat de naam dave komt twee keer voor in de lijst. Het meest linkse uiterlijk vertelt ons dat de bestandseigenaar een gebruiker is die wordt gebeld dave. De meest rechtse dave vertelt ons dat het bestand tot een groep behoort die ook wel wordt genoemd dave.

Wanneer een Linux-gebruiker wordt gemaakt, wordt deze standaard toegevoegd aan een privégroep met de naam van hun gebruikersnaam. Ze zijn het enige lid van die groep.

Dit uitvoerbare bestand is eigendom van de gebruiker mary en de groep waartoe het bestand behoort is mary's privé groep.

ls -l

ls -l in een terminalvenster

Dit bestand is eigendom van de gebruiker oscar , maar de groep waartoe het bestand behoort, wordt genoemd researchlab . Dit betekent dat andere leden van de researchlab groep heeft toegang tot dit bestand volgens de bestandsrechten die zijn ingesteld voor de leden van die groep.

ls -l in een terminalvenster

Eigendom van gebruiker wijzigen

Laten we enkele voorbeelden bekijken. Met deze opdracht wordt het gebruikseigendom van het bestand while.c gewijzigd in de gebruiker mary.

sudo chown mary while.c

sudo chown mary while.c in een terminalvenster

We kunnen gebruiken ls om de wijzigingen in de bestandseigenschappen te zien.

ls -l while.c

ls -l while.c in een terminalvenster

Je kunt gebruiken chown om het eigendom van meerdere bestanden tegelijk te wijzigen.

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

sudo chown mary getval.c global.c goto.c in een terminalvenster

Dit verandert het gebruikseigendom van alle drie de bestanden.

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

ls -l getval.c global.c goto.c in een terminalvenster

U kunt jokertekens gebruiken om groepen bestanden te selecteren. Deze opdracht verandert het gebruikseigendom van alle bestanden die beginnen met de letter “c”.

sudo chown mary c*.*

sudo chown mary c *. * in een terminalvenster

Alle bestanden hebben nu mary als hun eigenaar. Houd er rekening mee dat geen van de groepseigenschappen is gewijzigd.

ls -l mary c*.*

ls -l mary c *. * in een terminalvenster

Laten we het eigendom van een directory wijzigen. We geven gewoon de directorynaam door aan chown in plaats van een bestandsnaam.

sudo chown mary ./archive/

sudo chown mary ./archive/ in een terminalvenster

Om de eigendomskenmerken van de directory die we gebruiken te controleren ls, maar gebruik ook de -d (directory) optie. Dit geeft de eigenschappen van de directory weer, niet de bestanden erin.

ls -l -d ./archive/

ls -l -d ./archive/ in een terminalvenster

Om het eigendom van alle bestanden in een directory te wijzigen, kunt u de -R (recursieve) optie. Deze optie verandert het gebruikseigendom van alle bestanden in het archive map.

sudo chown -R mary ./archive/

sudo chown -R mary ./archive/ in een terminalvenster

Laten we nu eens kijken naar de bestanden in de archiefmap.

ls -l ./archive/

ls -l ./archive/ in een terminalvenster

Zoals verwacht behoren nu alle bestanden tot mary.

Groepseigendom wijzigen

Er zijn verschillende manieren om het groepseigendom te wijzigen.

Als u het groepseigendom wilt wijzigen terwijl u het eigendom van de gebruiker wijzigt, geeft u de nieuwe eigenaarnaam en de nieuwe groepsnaam door met een dubbele punt “:” als scheidingsteken. De groep moet al bestaan.

sudo chown mary:researchlab charm.c

sudo chown mary: researchlab charm.c in een terminalvenster

De eigenaar van de gebruiker en de groep waartoe het bestand behoort, zijn beide gewijzigd.

ls -l charm.c

ls -l charm.c in een terminalvenster

Een verkorte manier om het groepseigendom te veranderen in de huidige groep van de nieuwe eigenaar, geef gewoon de dubbele punt op en laat de groepsnaam weg.

sudo chown mary: caps.c

sudo chown mary: caps.c in een terminalvenster

ls -l caps.c

ls -l caps.c in een terminalvenster

Zowel het eigendom van de gebruiker als het eigendom van de groep is gewijzigd in mary.

Om alleen het groepseigendom te wijzigen, plaatst u een dubbele punt en laat u de gebruikersnaam weg. De eigenaar van de gebruiker wordt niet gewijzigd.

sudo chown :researchlab at.c

sudo chown: researchlab at.c in een terminalvenster

ls -l at.c

ls -l at.c in een terminalvenster

Het eigendom van de groep is gewijzigd, maar het eigendom van de gebruiker blijft hetzelfde.

Chown gebruiken met UID- en GID-waarden

U kunt de numerieke UID- en GID-waarden gebruiken met de chown opdracht. Met deze opdracht worden de gebruiker en het groepseigendom ingesteld op mary.

sudo chown 1001:1001 at.c

sudo chown 1001: 1001 at.c in een terminalvenster

ls -l at.c

ls -l at.c in een terminalvenster

Bezit is negen tiende van de wet

Of dat zeggen ze. Maar in Linux is eigendom een ​​enorm onderdeel van bestandsbeveiliging, waarbij bestandsmachtigingen de rest ervan voorzien. Gebruik de chown en chmod commando’s om bestandstoegang op uw systeem te beveiligen.

Nieuwste artikelen

Gerelateerde artikelen