No se puede escribir en el directorio con los permisos correctos

Instalé high sierra en una máquina nueva y luego copié algunos directorios dentro de mi casa desde el disco externo de mi máquina del tiempo.

La copia de seguridad se creó con otra máquina y versión del sistema operativo de un usuario que tiene el mismo nombre que el que se creó recientemente en la nueva instalación.

El 90% de las cosas salieron bien.

Por razones desconocidas, algunos subdirectorios de mi hogar (copiados de la copia de seguridad) no se pueden escribir.

He probado todas las combinaciones posibles de comandos chmod y, en teoría, todo debería funcionar correctamente:

  • cmd+i, generales:
    • elemento no bloqueado
    • artículo no compartido
  • cmd+i, compartir y permiso:
    • myuser: leer y escribir
    • personal: solo lectura
    • todos: solo lectura
  • statmuestra:
    • Acceso: (0755/drwxr-xr-x) Uid: ( 501/ miusuario) Gid: ( 20/ personal)
    • 501 es la identificación correcta de mi usuario actual

Creo que no es un problema de permisos de Unix, ya que los permisos deberían funcionar como están.

También lo he intentado chflags nouchg my_foldersin suerte.

No estoy seguro de qué podría causar esto.

¿ Qué ls -leO@dmuestra en ellos?
¿Este comando produce algún resultado? -sudo find "$HOME" ! -user "$(id -un)"
@GordonDavisson Ingresé un CD a my_folder y luego ejecuté el comando ls -leO@dque produjo: drwxr-xr-x+ 20 myuser staff - 640 May 6 11:26 . 0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown. Sospecho que 'todos niegan' es el culpable aquí
@fd0 ese comando no produjo ningún resultado
Bueno, eso es bueno. Confirma que posee todos los archivos en su carpeta de inicio.

Respuestas (1)

El permiso de escritura podría estar bloqueado por modos de archivo/carpeta, indicadores de usuario, no propiedad, listas de control de acceso (ACL) y/o atributos extendidos. A continuación se muestran algunos comandos que pueden corregir este tipo de errores.

Nota: supongo que my_folderno contiene ningún enlace simbólico. Si hay enlaces simbólicos, es posible que sea necesario modificar estos comandos.

Puede cambiar recursivamente el modo de carpetas a 755 (drwxr-xr-x) usando el comando que se indica a continuación.

find my_folder -type d -execdir chmod 755 {} \;

Puede cambiar recursivamente el modo de archivos regulares a 644 (-rw-r--r--) usando el comando que se indica a continuación.

find my_folder -type f -execdir chmod 644 {} \;

Puede eliminar recursivamente las banderas de usuario usando el comando que se proporciona a continuación.

sudo chflags -R nouchg,nohidden,noopaque,dump,nouappnd my_folder

Puede cambiar recursivamente la propiedad del usuario de los archivos y carpetas utilizando el comando que se indica a continuación.

sudo chown -R $USER my_folder

Puede cambiar recursivamente el grupo de archivos y carpetas staffutilizando el comando que se indica a continuación.

sudo chgrp -R staff my_folder

Puede eliminar recursivamente cualquier Lista de control de acceso (ACL) utilizando el comando que se indica a continuación.

chmod -RN my_folder

Puede eliminar recursivamente cualquier atributo extendido usando el comando que se proporciona a continuación.

xattr -rc my_folder

A menudo, la búsqueda de archivos y/o carpetas bloqueados puede ser útil. A continuación se muestra un comando para esto.

find my_folder -flags +uchg -exec ls -dF {} \;
chmod -RN my_folderparece funcionar, todos los demás comandos no hicieron nada