How do I re-enable Chown command?

Chown Fejl: 'Operation not permitted' Løst

29/06/2009

Rating: 4.75 (13273 votes)

Når man arbejder i et Linux- eller macOS-miljø, er administration af filrettigheder en fundamental opgave. Kommandoen chown (change owner) er et vigtigt værktøj i denne proces, der giver administratorer og brugere mulighed for at ændre ejerskabet af filer og mapper. Men hvad sker der, når systemet svarer med en kryptisk besked: chown: changing ownership of 'filnavn': Operation not permitted? Denne fejl kan være forvirrende, især fordi den adskiller sig fra den mere almindelige 'Permission denied'-fejl. Mens 'Permission denied' typisk handler om standard læse/skrive/eksekvere-rettigheder, indikerer 'Operation not permitted', at en dybere, mere fundamental systemregel forhindrer handlingen. I denne artikel vil vi dykke ned i de mest almindelige årsager til denne fejl og levere trin-for-trin løsninger, så du kan genvinde kontrollen over dine filer.

Why does operation not permitted error appear when using Chown Linux?
Let’s look at a few different reasons below for why the Operation not permitted error might appear when using the chown Linux command: The most common cause for this error is that your user account probably does not have sufficient permissions to be delegating ownership of the file in question.
Indholdsfortegnelse

Utilstrækkelige Rettigheder: Den Mest Almindelige Årsag

Den absolut hyppigste årsag til 'Operation not permitted'-fejlen er, at du forsøger at udføre kommandoen uden de nødvendige privilegier. I et Unix-lignende system er det kun den nuværende ejer af en fil eller superbrugeren (root), der kan ændre ejerskabet af den. Hvis du er logget ind som en almindelig bruger og forsøger at ændre ejeren af en fil, du ikke selv ejer, vil systemet nægte handlingen.

Lad os se på et typisk eksempel:

$ chown nybruger:nygruppe vigtig_fil.txt chown: changing ownership of 'vigtig_fil.txt': Operation not permitted

Her forsøger en almindelig bruger at ændre ejeren af vigtig_fil.txt. Systemet blokerer dette for at opretholde sikkerheden og integriteten af filsystemet. Løsningen er næsten altid at bruge sudo-kommandoen (superuser do), som midlertidigt hæver dine privilegier til root-niveau for den specifikke kommando.

Sådan ser den korrekte kommando ud:

$ sudo chown nybruger:nygruppe vigtig_fil.txt

Efter at have indtastet din adgangskode vil kommandoen sandsynligvis blive udført uden problemer. Dette bør altid være det første, du prøver. Hvis fejlen fortsætter, selv med sudo, ligger problemet et andet sted.

Filsystemets Begrænsninger: Når Rettigheder Ikke Understøttes

Ikke alle filsystemer er skabt ens. Mens native Linux-filsystemer som ext4, Btrfs og XFS har et robust system til håndtering af ejerskab og rettigheder, gør mange andre filsystemer, især dem der er designet til kompatibilitet med Windows eller andre systemer, det ikke. Filsystemer som VFAT, exFAT eller NTFS understøtter ikke Unix-style rettigheder på samme måde.

Why does operation not permitted error appear when using Chown Linux?
Let’s look at a few different reasons below for why the Operation not permitted error might appear when using the chown Linux command: The most common cause for this error is that your user account probably does not have sufficient permissions to be delegating ownership of the file in question.

Hvis du har monteret en ekstern harddisk, et USB-drev eller en partition formateret med et af disse filsystemer og forsøger at bruge chown på en fil derpå, vil du modtage 'Operation not permitted'-fejlen, selv som root. Filsystemet har simpelthen ikke en mekanisme til at gemme disse ejerskabsoplysninger.

Løsningen er at definere ejerskabet på mount-tidspunktet. Ved at bruge specifikke indstillinger i mount-kommandoen kan du fortælle systemet, hvilken bruger og gruppe der skal eje alle filer på det monterede drev. Du kan bruge uid (user ID) og gid (group ID) til dette.

Først skal du finde din egen bruger- og gruppe-ID med kommandoen id:

$ id uid=1000(minbruger) gid=1000(minbruger) groups=1000(minbruger),10(wheel)

I dette eksempel er både UID og GID 1000. Nu kan du montere drevet med disse oplysninger:

$ sudo mount -t exfat -o uid=1000,gid=1000 /dev/sdX1 /mnt/mitdrev

Erstat exfat med det korrekte filsystem, /dev/sdX1 med den korrekte enhedssti og /mnt/mitdrev med dit ønskede monteringspunkt. Når drevet er monteret med disse indstillinger, vil alle filer og mapper på det blive ejet af din bruger, hvilket løser problemet.

Den 'Uforanderlige' Attribut: En Skjult Lås

En mere obskur, men lige så effektiv stopklods, er den immutable attribut. Linux-filsystemer understøtter udvidede attributter, som kan tildeles filer for at give dem specielle egenskaber. Den 'uforanderlige' (immutable) attribut, markeret med et 'i', gør en fil fuldstændig låst. Når denne attribut er sat, kan filen ikke ændres, slettes, omdøbes eller få ændret sit ejerskab – ikke engang af root-brugeren.

Can I Chown /usr/local in High Sierra?
Unfortunately you can no longer chown /usr/local in High Sierra. A workaround is to sudo mkdir /usr/local/include and /usr/local/Frameworks if they don't exist, and Thanks to ilovezfs for this simple workaround and for the amazing homebrew! Still not working. $ brew update Error: The /usr/local directory is not writable.

Dette er en kraftfuld sikkerhedsfunktion, der kan bruges til at beskytte kritiske systemfiler mod utilsigtede eller ondsindede ændringer. Men det kan også være kilden til vores 'Operation not permitted'-fejl, hvis den er blevet sat på en fil, du skal administrere.

For at kontrollere en fils udvidede attributter, brug kommandoen lsattr:

$ lsattr min_fil.txt ----i--------e-- min_fil.txt

Hvis du ser et 'i' i outputtet, er den uforanderlige attribut aktiv. Forsøg på at bruge chown vil mislykkes:

$ sudo chown nybruger:nygruppe min_fil.txt chown: changing ownership of 'min_fil.txt': Operation not permitted

For at løse dette skal du fjerne attributten med kommandoen chattr. Dette kræver root-privilegier:

$ sudo chattr -i min_fil.txt

Efter at have fjernet attributten, kan du igen bruge lsattr for at bekræfte, at 'i' er væk. Nu skulle din chown-kommando fungere som forventet.

Særligt for macOS: System Integrity Protection (SIP)

macOS-brugere, især dem der bruger tredjepartsværktøjer som Homebrew, støder ofte på denne fejl, når de forsøger at ændre ejerskabet af mapper som /usr/local. Årsagen her er ofte en indbygget sikkerhedsfunktion i macOS kaldet System Integrity Protection, eller SIP.

SIP er designet til at beskytte kritiske systemmapper og -processer mod at blive modificeret, selv af root-brugeren. Dette forhindrer malware i at kompromittere systemet. Desværre betyder det også, at legitime administrative opgaver, som at give din bruger ejerskab over /usr/local for Homebrew, bliver blokeret.

Do I need sudo chown?
2024 answer DO NOT use sudo chown or anything else. homebrew shouldn't need sudo (and their webpage explicitly mentions that) Instead: Run eval "$(/opt/homebrew/bin/brew shellenv)" if you are on Apple Silicon or run eval "$(/usr/local/bin/brew shellenv)" on Intel and then you will safely be able to run brew install somepackage

For at omgå dette er det nødvendigt midlertidigt at deaktivere SIP. Vigtig advarsel: Gør kun dette, hvis du er sikker på, hvad du laver, og husk at genaktivere SIP bagefter for at holde dit system sikkert.

Følg disse trin:

  1. Genstart din Mac i Recovery Mode: Genstart computeren og hold Cmd + R nede under opstarten, indtil Apple-logoet vises.
  2. Åbn Terminal: Fra menulinjen øverst, vælg 'Utilities' > 'Terminal'.
  3. Deaktiver SIP: I terminalvinduet, skriv følgende kommando og tryk Enter:
    csrutil disable
  4. Genstart din Mac: Genstart din computer normalt.

Når du er tilbage i dit normale macOS-miljø, kan du nu udføre din chown-kommando, som tidligere fejlede.

sudo chown -R $(whoami) /usr/local

Når du er færdig, er det meget vigtigt at genaktivere SIP. Gentag trin 1 og 2, men i terminalen skriver du i stedet:

csrutil enable

Genstart derefter din Mac igen. Din systemsikkerhed er nu genoprettet.

Sammenligningstabel for Løsninger

ProblemMulig ÅrsagLøsningSystem
chown fejler for almindelig bruger.Mangler root-privilegier.Brug sudo foran kommandoen.Linux & macOS
chown fejler på eksternt drev, selv med sudo.Filsystem (f.eks. exFAT, NTFS) understøtter ikke Unix-rettigheder.Monter drevet med uid og gid indstillinger.Linux
chown fejler på en specifik fil, selv med sudo.Filen har 'immutable' attributten sat.Fjern attributten med sudo chattr -i filnavn.Linux
chown fejler på systemmapper som /usr/local på Mac.System Integrity Protection (SIP) er aktiv.Deaktiver SIP midlertidigt via Recovery Mode. Husk at genaktivere.macOS

Ofte Stillede Spørgsmål (OSS)

Hvad er forskellen på 'Operation not permitted' og 'Permission denied'?
Kort sagt: 'Permission denied' handler om dine brugerrettigheder til at læse/skrive/eksekvere en fil. 'Operation not permitted' indikerer en højere systemregel, der forhindrer selve handlingen, uanset dine filrettigheder. Det kan være en filsystems-begrænsning, en speciel attribut eller en sikkerhedsfunktion som SIP.
Er det sikkert at deaktivere SIP på min Mac?
Det medfører en sikkerhedsrisiko. SIP er en vigtig forsvarsmekanisme. Du bør kun deaktivere det midlertidigt for at udføre en specifik administrativ opgave og altid genaktivere det umiddelbart bagefter. At lade SIP være deaktiveret gør dit system mere sårbart over for angreb.
Hvorfor virker sudo ikke altid til at løse problemet?
sudo giver dig superbrugerens magt, men nogle sikkerhedsfunktioner er designet til at operere selv over superbrugeren for at beskytte systemets kerne. Den uforanderlige attribut og SIP er perfekte eksempler på mekanismer, der begrænser, hvad selv root kan gøre, og som kræver en specifik handling for at blive omgået.

Afsluttende Tanker

Fejlen 'Operation not permitted' kan virke som en uigennemtrængelig mur, men med den rette fejlfinding kan den næsten altid brydes ned. Ved systematisk at undersøge de potentielle årsager – fra de simple rettighedsproblemer, der løses med sudo, til de mere komplekse scenarier med filsystemer, udvidede attributter og systemspecifikke sikkerhedsfunktioner som SIP – kan du identificere den præcise årsag og anvende den korrekte løsning. At forstå disse dybere lag af dit operativsystem giver dig ikke kun mulighed for at løse aktuelle problemer, men gør dig også til en mere kompetent og selvsikker systemadministrator.

Hvis du vil læse andre artikler, der ligner Chown Fejl: 'Operation not permitted' Løst, kan du besøge kategorien Sundhed.

Go up