El directorio con los permisos correctos no se puede escribir

1

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 versión de máquina y sistema operativo de un usuario que tiene el mismo nombre que el creado recientemente en la nueva instalación.

El 90% de las cosas salieron bien.

Por razones desconocidas, algunos subdirectorios de mi casa (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, general:
    • elemento no bloqueado
    • elemento no compartido
  • cmd + i, uso compartido y permiso:
    • myuser: Lee y escribe
    • personal: Sólo lectura
    • todos: solo lectura
  • stat muestra:
    • Acceso: (0755 / drwxr-xr-x) Uid: (501 / myuser) Gid: (20 / staff)
    • 501 es el ID correcto 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 probé chflags nouchg my_folder sin suerte.

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

    
pregunta Leonardo 27.07.2018 - 02:03

1 respuesta

1

El permiso de escritura podría estar bloqueado por los modos de archivo / carpeta, marcas 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_folder no contiene ningún enlace simbólico. Si hay enlaces simbólicos, entonces estos comandos may deben modificarse.

Puedes 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 {} \;

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

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

Puedes eliminar las marcas de usuario recursivamente usando el comando que se indica 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 mediante el comando que se indica a continuación.

sudo chown -R $USER my_folder

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

sudo chgrp -R staff my_folder

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

chmod -RN my_folder

Puedes eliminar recursivamente cualquier atributo extendido usando el comando que se indica a continuación.

xattr -rc my_folder

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

find my_folder -flags +uchg -exec ls -dF {} \;
    
respondido por el David Anderson 27.07.2018 - 10:00

Lea otras preguntas en las etiquetas