2009-11-09 13:02:39 +0000 2009-11-09 13:02:39 +0000
319
319

chown no está cambiando el vínculo simbólico

Estoy tratando de cambiar el usuario/grupo de un vínculo simbólico con el comando:

$ chown -h myuser:mygroup mysymbolic/

Pero no está cambiando. Estoy conectado como root. El usuario/grupo actual está configurado como root:root. ¿Qué salió mal?

Respuestas (8)

391
391
391
2009-11-09 13:16:42 +0000

Estaba poniendo una barra al final del objetivo:

chown -h myuser:mygroup mysymbolic/

acabo de quitar la barra del final y funciona. Aquí está la forma correcta:

chown -h myuser:mygroup mysymbolic
29
29
29
2009-11-09 13:08:43 +0000

Lo he intentado yo mismo y me funciona. Si tienes el -h cambia el dueño del enlace simbólico, pero si no lo tienes entonces cambia el dueño del archivo en sí y no el enlace.

Pero no parece funcionar del enlace simbólico está enlazado a un directorio

7
7
7
2013-12-30 16:43:51 +0000

No pude chown un directorio incluso con -h pero usando el camino completo funcionó.

# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root root 32 Dec 30 09:02 apps -> /u/apps/
# chown -h deploy:deploy apps
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root root 32 Dec 30 09:02 apps -> /u/apps/
# chown -h deploy:deploy apps/
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root root 32 Dec 30 09:02 apps -> /u/apps/
# pwd 
/var/www/html
# chown -h deploy:deploy /var/www/html/apps
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 deploy deploy 32 Dec 30 09:02 apps -> /u/apps/
4
4
4
2017-12-05 11:02:14 +0000

simplemente.

chown -h myuser:mygroup <symlink> [without trailing slash]

¡debería ser suficiente y funcionar!  

3
3
3
2012-04-26 09:15:50 +0000

Recrear ese enlace por mi usuario en la casa de mi usuario, y mv este enlace a la ubicación del objetivo por sudo.

Por ejemplo: (como mi usuario), ln -s somedir/ linkname(será un enlace roto si somedir/ no existe en el directorio del usuario)

Entonces, sudo mv linkname targetlocation (se convertirá en un enlace válido siempre que targetlocation/somedir/ exista)

1
1
1
2014-09-16 17:46:29 +0000

Yo tenía un problema similar. Para mí, no podía chmod el vínculo simbólico ni siquiera como raíz, sin importar cómo lo llamara. Para añadir confusión a esto, el nautilus estaba mostrando al propietario/grupo como nada. El propietario estaba en blanco. Así que intenté cambiar el enlace simbólico usando el nautilus corriendo como raíz ya que chmod no funcionaba y el nautilus se estrelló!!

Pero creo que he resuelto el problema. El directorio al que apuntaba el enlace simbólico tenía permisos diferentes a los del enlace simbólico. Así que chmodé el directorio de destino (usando -h) a mi nombre de usuario/grupo. Luego chmodé el enlace simbólico al mismo y funcionó! Y ver los detalles del enlace simbólico en nautilus (con permisos de root) ahora ya no falla.

Así que para otros que tengan un problema similar, comprueba los permisos del directorio/archivo de destino y asegúrate de que es compatible con los permisos con los que estás estableciendo el enlace simbólico.

1
1
1
2016-08-11 05:24:48 +0000

Para Solaris (verificado en S11.3) para un enlace simbólico a un directorio necesitará ejecutar

root@ac11x017:/var/tmp$ ls -lal dumpdir
lrwxrwxrwx 1 root root 16 Jun 15 09:08 dumpdir -> /data/dumpdir/
root@ac11x017:/var/tmp$ chown -RP oracle:oinstall dumpdir
lrwxrwxrwx 1 oracle oinstall 16 Jun 15 09:09 dumpdir -> /data/dumpdir/
1
1
1
2015-11-01 19:12:57 +0000

Ten en cuenta que cambiar el owner de un enlace simbólico sólo puede funcionar si el objetivo es accesible por el nuevo usuario al que quieres asignarlo.

Por ejemplo, si tu objetivo está dentro de una carpeta a la que el usuario al que quieres asignarlo no tiene suficientes derechos, el comportamiento de ln -s command es tal que no hará nada en absoluto.