¿Es seguro colocar enlaces simbólicos en el directorio / bin?

Tengo muchas herramientas de línea de comandos que uso con frecuencia. Estaba usando el método normal para recorrer la ruta completa de ese comando a través de la terminal y luego hice ./command-name PERO esta es una tarea engorrosa y lenta.

Al investigar el tema “Cómo ejecutar un comando desde cualquier lugar a través de la terminal”, terminé en una solución para incluir la ruta en la variable de entorno (editando ./bashrc).

Esto funciona bien.

Incluso descubrí que todos los comandos que funcionan globalmente (como mkdir, ifconfig, cp, etc.) están ubicados en el directorio “/ bin”.

Al incluir los “enlaces simbólicos” de mis comandos en el directorio “/ bin”, todo funciona bien y puedo ejecutar los comandos desde cualquier parte del terminal.

Mi pregunta

  1. ¿Es seguro colocar enlaces simbólicos en el directorio / bin directamente? Estoy preguntando esto porque al colocar los enlaces simbólicos, me pidió una contraseña de administrador.

  2. ¿Creará alguna diferencia si coloco los enlaces simbólicos de los comandos en / bin en comparación con el directorio / usr / bin?

Medio ambiente (si importa):

Ubuntu 13.10, de 32 bits.

No se recomienda meterse con /bin y con /usr/bin , aunque esto funcionará, es algo inseguro. Además, no es necesario que coloques tus enlaces simbólicos allí.

He tenido el mismo problema que mencionaste. Es incómodo navegar a tus scripts y llamarlos como ./myscript cada vez. Aquí esta lo que hice.

Define tu propio bin-directorio

Puedes crear tu propio bin-directorio y poner tus scripts allí. Crearlo con

 mkdir ~/bin 

Ahora necesitarás manipular la variable de entorno PATH. Esta es un área sensible. Si arruinas la variable PATH, ya no podrás ejecutar comandos con rutas relativas. Si eso sucede, ls posible que ls no funcione más /bin/ls seguirá funcionando.

Lo que voy a mostrar ahora solo afectará la sesión actual del terminal en ejecución. Entonces, si algo sale mal, simplemente cierre la sesión con Ctrl + D y todo será como antes.

 echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games export PATH=$PATH:~/bin echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/home/madmike/bin 

El comando echo muestra lo que hay en $ PATH antes y después. export permite cambiar la variable de entorno. Su directorio bin adicional se añade al final de la variable. Esto significa que sus comandos tienen la menor prioridad si hubiera más de un comando con el mismo nombre. Esto es bueno, ya que no desea anular los comandos esenciales del sistema.

Para hacer los cambios permanentes, edite su archivo ~ / .bashrc.

 nano ~/.bashrc 

agregue export PATH=$PATH:~/bin al final de ese archivo.

Ahora, cada nueva sesión de terminal tendrá la variable $ PATH expandida con su directorio.

Antes de responder a tu pregunta, déjame explicarte un poco “cómo funciona”.

En tu sistema tienes Environment Variables . Una de ellas variable PATH , que almacena un conjunto de directorios donde se encuentran los progtwigs ejecutables y los scripts. En Linux, por defecto, PATH almacena algunos directorios. Uno de ellos /bin . Es por eso que puede ejecutar cualquier progtwig, que se encuentra en /bin . Puedes comprobar tu variable PATH ejecutando esto:

 echo $PATH 

En la variable PATH orden de los directorios es importante . Los nombres de ruta de prioridad más alta se especifican primero.

Ahora respondiendo tus preguntas:

  1. Sí, es seguro crear enlaces simbólicos en /bin . Por supuesto si no reescribes otros ejecutables . Pero debería preferir usar /usr/local/bin . También debe estar en tu PATH .

  2. Sí lo es. Dependiendo del pedido en PATH . Por ejemplo, si coloca enlaces simbólicos de archivos diferentes pero con el mismo nombre para /bin y /usr/bin , y /usr/bin incluido en PATH antes que /bin , entonces utilizará el enlace simbólico de /usr/bin .

Puedes leer sobre la jerarquía del sistema de archivos aquí

Acerca de las variables de entorno de Ubuntu aquí

  1. ¿Es seguro colocar enlaces simbólicos en el directorio / bin directamente? Estoy preguntando esto porque al colocar los enlaces simbólicos, me pidió una contraseña de administrador.

    Hay un riesgo de seguridad. Realmente no creo que sea prudente colocar sus propios enlaces simbólicos en el directorio / bin porque no solo sus comandos se vuelven globales, sino que también los enlaces simbólicos pueden romperse fácilmente. La variable de entorno bash PATH es una solución más robusta.

  2. ¿Creará alguna diferencia si coloco los enlaces simbólicos de los comandos en / bin en comparación con el directorio / usr / bin?

    No. Aunque de acuerdo con el Estándar de jerarquía del sistema de archivos (FHS), hay una diferencia entre / bin y / usr / bin.

    /bin Binarios de comandos esenciales que deben estar disponibles en modo de usuario único; para todos los usuarios, por ejemplo, cat, ls, cp.
    /usr/bin Binarios de comandos no esenciales (no necesarios en modo de usuario único); para todos los usuarios.

    Pero la diferencia no es tan importante hoy. En realidad, hay una tendencia en algunas distribuciones (especialmente Fedora) a desaparecer del directorio / bin.

¡¡¡NO!!! No toque los directorios del sistema. Cada script o progtwig que usted escribió, normalmente debería ubicarse en los directorios /usr/local/bin y /usr/local/sbin . Y agregar directorios a PATH no es una buena idea, porque tiene riesgos de seguridad.

También, la diferencia entre esos directorios que son para progtwigs de superusuario .

    Intereting Posts