El archivo no puede ser movido por la raíz en OS X

53

Traté de mover algunos archivos a una subcarpeta en OS X. Uno se negó a mover. Se dijo Operation not permitted. Intenté nuevamente como 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

Probé lsattren otros archivos; Todos los archivos que probé me dieron el mismo mensaje:Inappropriate ioctl for device While reading...

Viniendo de Linux, no sabía sobre banderas, así que aquí está la salida de 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

Probé la Utilidad de disco OS X; decía que no había errores en mi disco. ¿Que está pasando aqui?

eje211
fuente
1
lsattrno es un comando estándar de OS X; intente en su ls -leO@lugar. Además, ¿en qué volumen está el archivo? Intente mountver con qué atributos se monta el volumen.
Gordon Davisson
1
@GordonDavisson, parece que estás en el camino correcto. ls -leo @ dice que ese archivo es el único con el atributo "uchg", que me parece "inmutable".
eje211
¡Bienvenido a Ask Different! Eliminaré las ediciones y haré esta pregunta y dejaré la respuesta para la sección de respuestas ...
bmike

Respuestas:

30

Parece que el archivo está bloqueado para mí, por lo que aparece el atributo uchg. Debería poder utilizar el siguiente comando para eliminar el atributo bloqueado:

chflags nouchg file

o haga clic derecho en el archivo en el Finder, haga clic en "Obtener información" y luego desmarque la casilla de verificación "Bloqueado"

binarybob
fuente
1
¡Decir ah! ¡Parece que respondiste tu propia pregunta justo cuando estaba publicando esta respuesta!
binarybob
84

Para las personas de tropezar con esto en una época OS X 10.11+ (El Capitán o más reciente): Apple ha añadido una nueva capa de seguridad en OS X . Le han quitado algunos privilegios a la raíz. El archivo que está intentando modificar tiene una restrictedbandera. Solo los restrictedprocesos firmados por Apple podrán modificar estos archivos. Sin embargo, puede desactivar este sistema de seguridad mediante el arranque en modo de recuperación y su desactivación en un terminal haciendo: csrutil disable.

Alternativamente, también puede iniciar Terminal en modo de recuperación y eliminar el archivo allí. O incluso intente arrancar en un entorno Linux con soporte HFS + (al menos si aún no está en APFS) para cambiar el archivo.

Martijn Courteaux
fuente
1
¿Qué significa csr en csrutil?
Michael Terry
12
Creo que fue Benjamin Franklin quien dijo: "Los que sacrifican la facilidad de uso por el servidor de seguridad tampoco". O algo.
dgig
5

Tratar:

chflags -f -R nouchg directory

en un directorio de nivel superior para detener este problema.

dvand
fuente
FWIW: tuve este problema zsh: locking failed for /Users/me/.zhistory: operation not permitted: reading anywayy corrí este comando en mi directorio de inicio
raine
1

Tenía un archivo que no pude eliminar en la terminal:

$ sudo ls -leO@ [email protected]/Documents/.%cb_defense/cb.doc
-rw-rw-rw-  1 root  wheel  - 41984  1 Mar 11:20 [email protected]/Documents/.%cb_defense/cb.doc

$ sudo rm -rf [email protected]/Documents/.%cb_defense/cb.doc
rm: [email protected]/Documents/.%cb_defense/cb.doc: Operation not permitted

Lo que funcionó para mí fue abrir Finder y eliminar todo el directorio que lo contiene. Según tengo entendido, Finder elimina los directorios como una unidad que ignora por completo su contenido, por lo que no está sujeto a las mismas restricciones que las normales rm -rf.

Leones
fuente
0

También tuve este problema y descubrí que la carpeta en la que estaba el archivo estaba bloqueada. Así que asegúrate de que eso no sea cierto. Haga 'obtener información' en la carpeta en el buscador y asegúrese de que la casilla de verificación bloqueada no esté marcada.

abbaroo
fuente
0

Me doy cuenta de que este es un tema muy antiguo, pero no veo que este hilo aborde mi síntoma, así que pensé en publicar otra opinión.

Esto sucedió con una unidad externa que había estado funcionando perfectamente en un Snow Leopard iMac, que se actualizó a El Capitan en el camino. A principios de este año, tomé esa unidad y la puse en una nueva caja de Windows 10 que ejecutaba Paragon HFS para Windows. Copié cientos de GB de archivos DE Windows A HFS + en esa unidad y lo volví a conectar al iMac. Todo funcionó bien, excepto un script de shell que tenía que los archivos organizados para la copia de seguridad encontraron este problema uchg.

En resumen: los archivos y carpetas creados bajo El Capitan o Windows 10 usando Paragon HFS, cuando se mueve de nuevo a un cuadro de Snow Leopard, el cuadro de radio "bloqueado" NO se marcará cuando seleccione Get Infoen el Finder. Sin embargo, las sugerencias de otros funcionaron bien para mí:

  • verificar que ese es el problema ejecutando ls -leO@(eso es mayúscula) en un archivo sospechoso
  • como root, ejecute chflags -R nouchgen el directorio padre (no hay -f en Snow Leopard)

Funcionará, simplemente no espere exactamente las mismas señales visuales si su unidad ha pasado entre sistemas operativos o si usa Paragon HFS.

Mike Hockurtz
fuente
chflags -f -R nouchg directory funciona gracias
odjeezeus