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?


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"


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.


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.


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@ 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

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.


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.


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.


chflags -f -R nouchg directory funciona gracias
odjeezeus
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.