Il file non può essere spostato dalla radice su OS X


53

Ho provato a spostare alcuni file in una sottocartella su OS X. Uno ha rifiutato di spostarsi. Diceva Operation not permitted. Ho provato di nuovo come root:

$ sudo mv file subfolder/
mv: rename file to subfolder/file: Operation not permitted
$ sudo mv file filex
mv: rename file to filex: Operation not permitted
$ lsattr file
lsattr: Inappropriate ioctl for device While reading flags on file

Ho provato lsattrsu altri file; tutti i file che ho provato mi hanno dato lo stesso messaggio:Inappropriate ioctl for device While reading...

Venendo da Linux, non sapevo delle bandiere, quindi ecco l'output di ls -leO@ file:

$ ls -leO@ file otherfile
-rwxrwxrwx  1 eeytan  staff  uchg 79549 Nov 11  2010 file
-rw-r--r--  1 eeytan  staff  -     5071 Sep  7 02:37 otherfile

Ho provato l'utilità del disco OS X; diceva che non c'erano errori sul mio disco. Cosa sta succedendo qui?


1
lsattrnon è un comando OS X standard; prova ls -leO@invece. Inoltre, su quale volume è il file? Prova mounta vedere con quali attributi è montato il volume.
Gordon Davisson,

1
@GordonDavisson, sembra che tu sia sulla buona strada. ls -leo @ dice che il file è l'unico con l'attributo "uchg", che mi sembra molto "immutabile".
eje211,

Benvenuti a chiedere diverso! Rimuoverò le modifiche e farò una domanda e lascerò la risposta per la sezione di risposta ...
bmike

Risposte:


30

Sembra che il file sia bloccato per me, motivo per cui viene visualizzato l'attributo uchg. Dovresti essere in grado di utilizzare il seguente comando per rimuovere l'attributo bloccato:

chflags nouchg file

oppure fai clic con il pulsante destro del mouse sul file nel Finder, fai clic su "Ottieni informazioni", quindi deseleziona la casella di controllo "Bloccato"


1
Ha! Sembra che tu abbia risposto alla tua domanda proprio mentre stavo pubblicando questa risposta!
binarybob,

84

Per le persone inciampo su questo in un'epoca OS X 10.11+ (El Capitan o più recente): Apple ha aggiunto un nuovo livello di sicurezza in OS X . Hanno tolto alcuni privilegi dalla radice. Il file che si sta tentando di modificare ha un restrictedflag. Solo i restrictedprocessi firmati da Apple saranno in grado di modificare questi file. Tuttavia, è possibile disattivare questo sistema di sicurezza per l'avvio in modalità di ripristino e la disattivazione in un terminale facendo: csrutil disable.

In alternativa, puoi anche avviare Terminal in modalità di ripristino ed eliminare il file lì. O anche provare a eseguire l'avvio in un ambiente Linux con supporto HFS + (almeno se non sei ancora su APFS) per modificare il file.


1
Cosa significa CSR in CSRUTIL?
Michael Terry,

12
Credo che sia stato Benjamin Franklin a dire "Coloro che non sacrificano la facilità d'uso per chi non merita la sicurezza". O qualcosa.
dgig

5

Provare:

chflags -f -R nouchg directory

su una directory di livello superiore per fermare questo problema.


FWIW: ho avuto questo problema zsh: locking failed for /Users/me/.zhistory: operation not permitted: reading anywaye ho eseguito questo comando sulla mia directory home risolto
raine

1

Avevo un file che non potevo cancellare nel terminale:

$ sudo ls -leO@ foo@example.com/Documents/.%cb_defense/cb.doc
-rw-rw-rw-  1 root  wheel  - 41984  1 Mar 11:20 foo@example.com/Documents/.%cb_defense/cb.doc

$ sudo rm -rf foo@example.com/Documents/.%cb_defense/cb.doc
rm: foo@example.com/Documents/.%cb_defense/cb.doc: Operation not permitted

Ciò che ha funzionato per me è stato aprire Finder ed eliminare l'intera directory contenente. Per come lo capisco, Finder elimina le directory come un'unità ignorando completamente i loro contenuti, quindi non è soggetta alle stesse restrizioni del normale rm -rf.


0

Ho avuto anche questo problema e ho scoperto che la cartella in cui si trovava il file era bloccata. Quindi assicurati che non sia vero. "Ottieni informazioni" sulla cartella nel Finder e assicurati che la casella di controllo bloccata non sia selezionata.


0

Mi rendo conto che questo è un argomento molto vecchio, ma non vedo questa discussione che affronta il mio sintomo, quindi ho pensato di pubblicare un'altra opinione.

Ho avuto questo caso su un'unità esterna che aveva funzionato perfettamente su un Snow Leopard iMac, che è stato aggiornato a El Capitan lungo la strada. All'inizio di quest'anno, ho preso quell'unità e l'ho messa in una nuova scatola di Windows 10 su cui era in esecuzione Paragon HFS per Windows. Ho copiato centinaia di GB di file DA Windows A HFS + su quell'unità e l'ho ricollegato a iMac. Tutto ha funzionato bene, tranne uno script shell che avevo messo in scena i file per il backup riscontrato questo problema UCHG.

In breve: i file e le cartelle creati in El Capitan o Windows 10 usando Paragon HFS, quando vengono spostati in una casella Snow Leopard, la casella radio "bloccata" NON verrà selezionata quando si seleziona Get Infonel Finder. Tuttavia, i suggerimenti degli altri hanno funzionato bene per me:

  • verifica che sia il problema eseguendo ls -leO@(che è un capitale oh) su un file sospetto
  • come root, esegui chflags -R nouchgnella directory principale (non c'è -f in Snow Leopard)

Funzionerà, non aspettarti esattamente gli stessi segnali visivi se l'unità è passata tra i sistemi operativi o se usi Paragon HFS.


chflags -f -R La directory nouchg funziona grazie
odjeezeus
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.