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:
stat
muestra:
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_folder
sin suerte.
No estoy seguro de qué podría causar esto.
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_folder
no 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 staff
utilizando 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_folder
parece funcionar, todos los demás comandos no hicieron nada
gordon davisson
ls -leO@d
muestra en ellos?fd0
sudo find "$HOME" ! -user "$(id -un)"
leonardo
ls -leO@d
que 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íleonardo
fd0