Bloquear el enlace simbólico como root
, como han mencionado otros, es la respuesta. Todo esto se puede hacer desde un script para que no tengas que habilitar e iniciar sesión en la cuenta de root
.
Aquí tienes un script simple que escribí que debe ejecutarse como root
(con sudo
) y que necesita dos argumentos:
- Nombre de usuario corto
- Nombre de tu carpeta OneDrive (Solo
OneDrive
para cuentas personales de OneDrive)
Este script hará lo siguiente:
- Crear una carpeta
Escritorio
y Documentos
en la carpeta OneDrive
especificada
- Copiar todos los elementos de tus carpetas existentes de
Escritorio
y Documentos
en OneDrive usando rsync
- Eliminar tus carpetas de
Escritorio
y Documentos
existentes
- Crear un enlace simbólico de
Escritorio
y Documentos
a OneDrive
- Bloquear los propios enlaces simbólicos para que no se eliminen al iniciar sesión/reiniciar
Advertencia:
Este script no realiza ninguna verificación de errores o existencia de carpetas. Podría eliminar todos tus archivos. Asegúrate de tener una copia de seguridad.
#!/bin/bash
if [[ $# -lt 2 ]] ; then
echo "El script requiere dos argumentos:"
echo "Argumento 1. Nombre de usuario corto"
echo "Argumento 2. Nombre de la carpeta de OneDrive"
exit 1
fi
shortname=$1
onedrive=$2
#########
# ESCRITORIO
#########
# Crear carpeta de Escritorio en OneDrive
mkdir -p "/Users/$shortname/$onedrive/Escritorio"
# Copiar todos los archivos de la carpeta de Escritorio existente a la carpeta de Escritorio de OneDrive
rsync -havux --progress --stats "/Users/$shortname/Escritorio" "/Users/$shortname/$onedrive/Escritorio"
# Eliminar la carpeta de Escritorio existente
rm -rf "/Users/$shortname/Escritorio"
# Crear enlace simbólico a la carpeta de Escritorio en OneDrive
ln -s "/Users/$shortname/$onedrive/Escritorio" "/Users/$shortname/Escritorio"
# Establecer el enlace simbólico mismo (-h flag) como bloqueado del sistema. (El bloqueo del usuario sería uchg)
chflags -h schg "/Users/$shortname/Escritorio"
###########
# DOCUMENTOS
###########
# Crear carpeta de Documentos en OneDrive
mkdir -p "/Users/$shortname/$onedrive/Documentos"
# Copiar todos los archivos de la carpeta de Documentos existente a la carpeta de Documentos de OneDrive
rsync -havux --progress --stats "/Users/$shortname/Documentos" "/Users/$shortname/$onedrive/Documentos"
# Eliminar la carpeta de Documentos existente
rm -rf "/Users/$shortname/Documentos"
# Crear enlace simbólico a la carpeta de Documentos en OneDrive
ln -s "/Users/$shortname/$onedrive/Documentos" "/Users/$shortname/Documentos"
# Establecer el enlace simbólico mismo (-h flag) como bloqueado del sistema. (El bloqueo del usuario sería uchg)
chflags -h schg "/Users/$shortname/Documentos"
0 votos
¿Estás utilizando iCloud Drive?