GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo cambiar la propiedad de los enlaces simbólicos?

En un sistema Linux, al cambiar la propiedad de un enlace simbólico usando chown , por defecto cambia el objetivo del enlace simbólico (es decir, lo que apunta el enlace simbólico ).

Si desea cambiar la propiedad del enlace en sí, debe usar el -h opción a chown :

-h, --sin desreferencia afecta cada enlace simbólico en lugar de cualquier archivo al que se hace referencia (útil solo en sistemas que pueden cambiar la propiedad de un enlace simbólico)

Por ejemplo:

$ touch test
$ ls -l test*
-rw-r--r-- 1 mj   mj   0 Jul 27 08:47 test
$ sudo ln -s test test1
$ ls -l test*
-rw-r--r-- 1 mj   mj   0 Jul 27 08:47 test
lrwxrwxrwx 1 root root 4 Jul 27 08:47 test1 -> test
$ sudo chown root:root test1
$ ls -l test*
-rw-r--r-- 1 root root 0 Jul 27 08:47 test
lrwxrwxrwx 1 root root 4 Jul 27 08:47 test1 -> test

Tenga en cuenta que el objetivo del enlace ahora es propiedad de root.

$ sudo chown mj:mj test1
$ ls -l test*
-rw-r--r-- 1 mj   mj   0 Jul 27 08:47 test
lrwxrwxrwx 1 root root 4 Jul 27 08:47 test1 -> test

Y de nuevo, el enlace test1 sigue siendo propiedad de root, aunque test ha cambiado.

$ sudo chown -h mj:mj test1
$ ls -l test*
-rw-r--r-- 1 mj mj 0 Jul 27 08:47 test
lrwxrwxrwx 1 mj mj 4 Jul 27 08:47 test1 -> test

Y finalmente cambiamos la propiedad del enlace usando el -h opción.


Cuando actúe sobre los enlaces simbólicos, debe decirle a la mayoría de las herramientas (chown, chmod, ls...) que no eliminen la referencia del enlace:debe agregar el -h parámetro, como se indica en la página de manual:

-h, --no-dereference
          affect symbolic links instead of any referenced file (useful only on systems that can change the ownership of a symlink)

Así que prueba:sudo chown -h askar.admin /etc/init.d/jboss1


También tenga en cuenta que el error que dio arriba

ln: creating symbolic link `/etc/init.d/jboss1': Permission denied

no se debe a que el propietario del enlace simbólico no sea el propietario del archivo original. Es (probablemente) causado por el usuario askar que no tiene acceso de escritura al directorio /etc/init.d .


Linux
  1. Cómo probar la conectividad del puerto [TCP/UDP] desde un servidor Linux

  2. ¿Cómo copiar enlaces simbólicos?

  3. ¿Cómo cambiar el cursor de la Terminal de cuadro a línea?

  4. ¿Cómo crear enlaces simbólicos a todos los archivos (clase de archivos) en un directorio?

  5. ¿Cómo cambiar el campo De:para correos electrónicos de Cron?

Cómo eliminar enlaces simbólicos en Linux

Cómo crear enlaces simbólicos en Linux

¿Cómo cambiar la versión de PHP desde cPanel?

¿Qué son los enlaces simbólicos en Linux? ¿Cómo crear enlaces simbólicos?

¿Cómo cambiar la URL del sitio de Magento desde phpMyAdmin?

Cómo obtener una lista de enlaces simbólicos en Linux