LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 
Resumen: Utilizar las aplicaciones es el objetivo principal de un servidor Linux. Ya sea alguna aplicación recién instalada para un escritorio o de la línea de comandos, este artículo le ayudará a utilizar su ordenador Microsoft Windows para entender rápidamente cómo ejecutar aplicaciones en Linux.

Requisitos previos

Para obtener el máximo provecho de este artículo, usted debe tener experiencia de trabajo con las aplicaciones de escritorio en un entorno Windows. Asumo que el lector tiene una comprensión básica de cómo utilizar el escritorio de Linux. Es beneficioso tener un equipo de trabajo Linux para explorar los conceptos y los ejemplos en este artículo. Información general

Cuando se ejecuta una aplicación en Linux por primera vez, puede que se requiere un poco de trabajo extra. Algunas aplicaciones como los servicios de un servidor no se pueden instalar como servicios, por lo que necesita para iniciar las aplicaciones de la línea de comandos. Para las cuentas de usuario que inician sus aplicaciones, se "configura/activa" la ejecución de una "flag", que traduciremos como "bandera" de permiso (x) en los archivos de la aplicación que se inicia.

Ejecución de aplicaciones en espacio de usuario

Linux ejecuta procesos en el espacio de kernel, o el espacio de usuario. El "Espacio de usuario" es el área del sistema operativo que las aplicaciones funcionan normalmente. En pocas palabras, cada cuenta de usuario tiene su propio espacio de usuario, y aplicaciones de trabajan dentro de ese reino.

Sólo el usuario root tiene acceso al espacio del núcleo por defecto. El usuario root es el superusuario en Linux, comparable a la cuenta de administrador en Windows. La ejecución de una aplicación en la cuenta de usuario root **puede suponer un riesgo para la seguridad y no es aconsejable** (Al igual que la cuenta de Administrador de Windows).

Muchos de los servicios de servidor necesitan permisos de root para iniciar el servicio. Sin embargo, después de que el servicio se ha iniciado, por lo general root entrega (la aplicación del servicio) a una cuenta de servicio. Las cuentas de servicio en Linux son las cuentas de usuario técnico-estándar. La principal diferencia es que las cuentas de servicio sólo se utilizan para el funcionamiento de un servicio y no están destinados para que cualquiera pueda entrar realmente con ellas.

Configuración de los permisos

Puede establecer los permisos de ejecución sobre un archivo con el comando chmod. La configuración umask en Linux (archivo que se lee para pre-establecer los permisos) por lo general impide que un archivo descargado pueda ser ejecutable, la estupenda razón por lo que esto es así, es porque puede ayudar a mantener la seguridad de su ordenador con Linux.

La mayoría de distribuciones de Linux tienen un umask ajustado en 022 , lo que significa que por defecto un nuevo archivo tiene la configuración de permisos de 644. La representación numérica de los permisos de tomar la forma de lectura (4), escritura (2) y ejecución (1). Así que una descarga de la aplicación con el permiso por defecto de 644 significa que el propietario del archivo ha leído y tiene permiso de escritura, mientras que el propietario del grupo y el grupo "otros" tienen permiso de sólo lectura.

Básicamente, y para que siempre recuerde esta configuración se debe a los permisos binarios, recordemos...

-------+--------+--------------++---------------++---------------++
Binario|Decimal.|Permisos User ||Permisos Grup  ||Permisos Otros ||
       |        |Lect.Escr.Ejec||Lect.Escr.Ejec.||Lect.Escr.Ejec ||
000    | 0      |[ ]  [ ]  [ ] ||[ ]  [ ]  [ ]  ||[ ]  [ ]  [ ]  ||
001    | 1      |[ ]  [ ]  [X] ||[ ]  [ ]  [X]  ||[ ]  [ ]  [X]  ||
010    | 2      |[ ]  [X]  [ ] ||[ ]  [X]  [ ]  ||[ ]  [X]  [ ]  ||
011    | 3      |[ ]  [X]  [X] ||[ ]  [X]  [X]  ||[ ]  [X]  [X]  ||
100    | 4      |[X]  [ ]  [ ] ||[X]  [ ]  [ ]  ||[X]  [ ]  [ ]  ||
101    | 5      |[X]  [ ]  [X] ||[X]  [ ]  [X]  ||[X]  [ ]  [X]  ||
110    | 6      |[X]  [X]  [ ] ||[X]  [X]  [ ]  ||[X]  [X]  [ ]  ||
111    | 7      |[X]  [X]  [X] ||[X]  [X]  [X]  ||[X]  [X]  [X]  ||
-------+--------+--------------++---------------++---------------++
En negrita representación permisos "644"

Usuario: lectura y escritura
Grupo: lectura
Otros lectura

Por ejemplo, para dar todos los permisos de ejecución sobre un archivo, use el chmod a+x comando. El "a" representa "all" en inglés, osea, "todos", el signo más ( + ) representa agregar y x ejecución. Del mismo modo, las aplicaciones de un servicio del servidor, deben asegurarse de que sólo las cuentas autorizadas tengan acceso a ejecutar el servicio.

Normalmente una aplicación es capaz de funcionar en condiciones normales con los permisos de la cuenta de usuario, pero sólo los de un grupo en particular necesitan tener acceso a usarla, puede establecer el permiso de propietario del grupo al ejecutable y agregar los usuarios a un grupo.

Aún más específico, también puede establecer la lista de control de acceso (ACL) de un archivo ejecutable para permitir que un usuario o grupo tenga permiso para ejecutar la aplicación. Utilice el comando setfacl para establecer los permisos de ACL.

Para aquellas aplicaciones, tales como los servicios del servidor, que se necesitan para iniciar el proceso como usuario root, usted tiene algunas opciones. La Tabla 1 resume las diferentes opciones que permiten a los usuarios para ejecutar los servicios de servidor que requieren privilegios de root.
Tabla 1. Opciones para ejecutar aplicaciones que requieren privilegios de root
Opción Descripción

Como usuario root No se recomienda para los servicios del servidor. Aceptable para las aplicaciones cuando los usuarios ya conocen la contraseña de root y el compromiso de la aplicación no es una preocupación primordial.
SetUID No se recomienda debido a problemas de seguridad. SetUID permite a un usuario estándar para ejecutar un archivo como otro usuario, tales como root.
sudo De uso común y se considera una buena práctica. sudo concede a un usuario o miembro de un grupo de permisos para ejecutar un archivo que de otro modo requieren privilegios de root. El usuario no necesita saber la contraseña de root.

Cuenta de usuario estándar con permisos de archivos

Establecer permisos de ejecución sobre un archivo para el usuario propietario, propietario del grupo, o de otro tipo (todo el mundo). Esta es una forma común de otorgar a los usuarios que no necesitan privilegios de root permiso para ejecutar una aplicación.

Cuenta de usuario estándar con permisos de ACL Menos común, pero una solución viable cuando no se desea otorgar a un usuario sudo acceso o cambiar los permisos de un archivo. Uso de la setfacl de comandos en un archivo, se puede conceder a un usuario o grupo de usuarios el derecho a ejecutar el archivo. Ejecutar desde la línea de comandos

Ejecutar una aplicación desde la línea de comandos es una tarea esencial en la gestión de servidores Linux. Una gran cantidad de aplicaciones tienen scripts de shell, similares a los archivos por lotes (.bat) de Windows que inician aplicaciones y realizan otras tareas como el establecimiento de las variables y los procesos de asignación a otros usuarios. Por ejemplo, una aplicación puede necesitar una aplicación Java™ Virtual Machine (JVM) para ejecutar. En ese caso, los scripts de shell pueden establecer las variables de entorno adecuadas y luego ejecutar el comando java para ejecutar el archivo Java (JAR) o un archivo de clase. Esto es válido para las aplicaciones que utilizan Perl, Python, e incluso C#. (Sí, las aplicaciones C# pueden ser compiladas y ejecutarse en Linux!)

Cuenta de usuario estándar y los comandos de privilegios root

Para obtener las listas de este artículo, observe que cada comando se inicia, ya sea con un signo de dólar ( $ ) o un símbolo de numeral ( # ) previamente. En el shell de Linux, estos símbolos tienen un significado. El signo de dólar en la shell indica que el usuario tiene una cuenta de privilegios estándar, mientras que el símbolo de hash indica root (administrador). Para ejecutar comandos en los listados que tienen el símbolo de hash, es necesario el acceso "sudo su"  o acceso directo a la cuenta de root para ejecutar el comando.

 Una forma común de ejecutar aplicaciones desde la línea de comandos o intérprete de comandos es utilizar ./comando. Cuando se utiliza el punto (.) Y la barra inclinada (/) en Linux, le digo al ambiente que deseo ejecutar el fichero como un archivo ejecutable. Por ejemplo, para ejecutar un archivo ejecutable llamado myapp, utilizará ./myapp. Del mismo modo, puede preceder el nombre del archivo con el entorno de lenguaje, tales como:

  • sh
  • php
  • python
  • perl
  • Java

Más a menudo, sin embargo, las aplicaciones empaquetadas tienen scripts de shell que establecen las variables de entorno y proporcionar la ruta de acceso ejecutable en tiempo de ejecución de con el símbolo #!, como #!/usr/bin/python . Usted debe familiarizarse con este enfoque también.

En el Listado 1 se utiliza el script "catalina.sh" al que también llamaremos "secuencia de comandos"  para iniciar el servidor Apache Tomcat  utilizando el ./ enfoque. A continuación, se inicia el servidor con el enfoque "sh". Desde el puerto por defecto que es el 8080, sin modificaciones especiales para iniciar el servicio como un usuario estándar.
Listado 1. Ejecución de una aplicación desde la línea de comandos

 .................................................. ...................
$ ./catalina.sh start 
Using CATALINA_BASE:   /opt/apache-tomcat-7.0.26
Using CATALINA_HOME:   /opt/apache-tomcat-7.0.26
Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp
Using JRE_HOME:        /usr
Using CLASSPATH:   /opt/apache-tomcat-7.0.26/bin/bootstrap.jar:
	/opt/apache-tomcat-7.0.26/bin/tomcat-juli.jar
$ ./catalina.sh stop
.....................................................................
$ sh catalina.sh start 
Using CATALINA_BASE:   /opt/apache-tomcat-7.0.26
Using CATALINA_HOME:   /opt/apache-tomcat-7.0.26
Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp
Using JRE_HOME:        /usr
Using CLASSPATH:   /opt/apache-tomcat-7.0.26/bin/bootstrap.jar:
	/opt/apache-tomcat-7.0.26/bin/tomcat-juli.jar
.....................................................................
Considere la posibilidad de comenzar una típica Hypertext Transfer Protocol (HTTP) servidor web. En Linux, un puerto menor que el puerto 1024 es considerado un puerto privilegiado, y sólo root puede abrir los puertos privilegiados. Dado que los servidores web por defecto se ejecutan en el puerto 80, root necesita para iniciar el proceso, como se ha señalado. Sin embargo, se considera inseguro ejecutar un servicio como el usuario root. El procedimiento correcto es iniciar el servicio como root y luego pasarlo a un usuario estándar o de cuenta de servicio.

Afortunadamente, una gran cantidad de servicios de servidor tienen las secuencias de comandos para hacer precisamente eso. Si se construye el servidor web Apache desde el código fuente, se encuentra que se inicia como usuario root y luego pasa al usuario "manos fuera" apache del servicio httpd.

Listado 2 se inicia una compilación por defecto del servidor web Apache 2. El proceso de instalación hace un par de cosas, incluyendo la realización del comando apachectl. Debido a que este proceso requiere el uso del puerto 80, se inicia con privilegios de usuario root. Sin embargo, el comando ps revela los procesos httpd ejecuta bajo la cuenta de usuario apache.
Listado 2. Desde el servidor web Apache


# cd /usr/local/apache2/bin # apachectl start #ps aux | grep httpd apache 23094 0.0 0.3 11784 1912 ? S 10:41 0:00 /usr/sbin/httpd -k start apache 23095 0.0 0.3 11784 1912 ? S 10:41 0:00 /usr/sbin/httpd -k start apache 23096 0.0 0.3 11784 1912 ? S 10:41 0:00 /usr/sbin/httpd -k start apache 23097 0.0 0.3 11784 1912 ? S 10:41 0:00 /usr/sbin/httpd -k start apache 23098 0.0 0.3 11784 1912 ? S 10:41 0:00 /usr/sbin/httpd -k start


Aplicaciones que se ejecutan en segundo plano

Algunos programas de software instalados podrían no ser tan fácil de usar como el servidor web Apache. A menos que desee ver la solución de problemas o quieres ver exactamente lo que está pasando con una aplicación, es probable que desee que se ejecute en segundo plano después de que el proceso comienze. Si no lo hace, la aplicación termina cuando el depósito está cerrado. Al ejecutar los servicios del servidor, no es el comportamiento deseado ya que el servicio se detendría cada vez que se cierre la la terminal o cualquier otra manera de sesión!

Si se ejecuta una aplicación en segundo plano, se sigue trabajando, incluso si se cierra la ventana de comandos. Usted puede iniciar una aplicación en segundo plano añadiendo un signo ( & ) al final del comando a ejecutar. Por ejemplo, puede abrir un archivo con el editor vi y ejecutarlo en el fondo con "vi /etc/sysconfig/network &" porque & abre el archivo /etc/sysconfig/network y lo mantiene en el fondo, para regresar a la aplicación deberá escribir "fg" desde la línea de comandos. Usted puede utilizar la utilidad "nohup" para permitir que el proceso continúe incluso después de cerrar la sesión. Por ejemplo, nohup vi /etc/sysconfig/network & .

Listado 3 se abre un archivo para editarlo en el editor Vim y lo coloca en el fondo.
Listado 3. Ejecución de una aplicación en segundo plano


# vi /etc/sysconfig/network & [1] 24940 # jobs [1]+ Stopped vi /etc/sysconfig/network

Puede escribir el comando jobs para ver todas las aplicaciones que se estén ejecutando en segundo plano. Cada trabajo se ejecuta en segundo plano se le asigna un número secuencial, comenzando por el 1. El trabajo en el Listado 3 es el número 1. 24940 es el proceso ID (PID). Usted puede traer a una aplicación en primer plano con la utilidad "fg" y el número de trabajo específico. En este ejemplo, el proceso no está en uso por el usuario, por lo que se muestra como Stopped . Sin embargo, el comando fg 1 se abre el terminal y volver al proceso activo de la edición del archivo.

La ejecución de aplicaciones desde el escritorio

La Ejecución de aplicaciones que hacen uso de la Interfaz gráfico de usuario (GUI), (o sencillamente desde el escritorio de Linux) no es muy diferente a la forma de hacerlo en Windows. Sobre todo, es necesario entender cómo las aplicaciones se agrupan en menús en su entorno de escritorio en particular. Linux tiene una gran cantidad de aplicaciones de escritorio disponibles para diferentes tareas. Algunos son nativos de Linux, mientras que otros pueden ser multi-plataforma las aplicaciones desarrolladas en C# utilizan un entorno de ejecución común, al igual que las aplicaciones .NET Framework. Usted podría encontrar que usted puede incluso funcionar su aplicación de Windows favorita en Linux a través de un entorno virtual como el wine.

Aplicaciones nativas de Linux

Es muy probable que usted encuentre una aplicación alternativa de Windows en Linux para su aplicación favorita basada en Windows. La ejecución de aplicaciones nativas de Linux en el escritorio es sencillo. Al igual que en Windows, se suelen encontrar estas aplicaciones organizadas en menús, y basta con hacer clic y se ejecuta como si fuera una aplicación de Windows.

Para aquellas aplicaciones que requieren privilegios de root, se le pedirá que introduzca la contraseña de root antes de proceder. Esto es un concepto similar a la opción Ejecutar como administrador en Windows. De lo contrario, todas las aplicaciones se ejecutan en el espacio de usuario.

En Windows, puede crear accesos directos del escritorio. Linux tiene accesos directos similares llamados "lanzadores" que se pueden colocar en el panel o escritorio. Al hacer clic en el lanzador, se ejecuta el programa.

La Figura 1 muestra dos lanzadores para el navegador web Mozilla Firefox en el escritorio de GNOME. Un lanzador que se encuentra en el panel, y el otro está en el escritorio.
Figura 1. Viendo lanzadores en el escritorio y el panel
Captura de pantalla de iconos para PC, Firefox y el hogar tbosts

Mono

Muchas aplicaciones de Windows se han desarrollado utilizando .NET Framework. Mono es una implementación de código abierto .NET se ejecuta en muchas plataformas, incluyendo Linux. De hecho, el sitio web de Mono lo describe como una implementación de  # y el Common Language Runtime (CLR) que es compatible a nivel binario con .NET. Actualmente el proyecto está apoyado por Xamarin.

En Linux, puede ejecutar aplicaciones desarrolladas con el framework de .NET (o Mono) de la misma forma como lo hace en Windows. Sin embargo, recuerde que el Linux umask y los permisos de ficheros por defecto. Será necesario proporcionar los permisos de ejecución al archivo para que Linux permita al archivo ejecutarse.

Algunas aplicaciones multiplataforma desarrolladas en Mono que pueden instalar en el escritorio GNOME de Linux, tales como F-Spot, residen en el menú con las aplicaciones nativas de GNOME. F-Spot es una aplicación de código abierto para gestión de fotografías. A pesar de que es una aplicación de C#, aparece como una aplicación nativa en el escritorio GNOME. Después de crear un lanzador para una aplicación, puede hacer clic y ejecutarla al igual que en Windows.

La Figura 2 muestra la ubicación de la aplicación basada en Mono, F-Spot, y cómo se puede crear lanzadores de escritorio o el panel de la misma.
Figura 2. Creación de un lanzador de F-Spot
Captura de pantalla de cómo abrir el menú para crear un lanzador

Wine

Wine permite ejecutar software de Windows en Linux y otros sistemas operativos. Con Wine, se puede instalar y ejecutar las aplicaciones tal como lo hace en Windows. Wine tiene un desarrollo activo, pero no todos los programas de Windows funcionan con Wine. Si su solicitud ha sido preparada para un sistema operativo Windows y te encuentras con que puede funcionar adecuadamente usando Wine, es probable que se trata de una aplicación de escritorio en lugar de una aplicación de servidor. Asegúrese de revisar la documentación de Wine sobre la posibilidad de ejecutar la aplicación en Linux porque Wine no es totalmente compatible con todas las aplicaciones.

Cuando se utiliza Wine en Linux, tiene una carpeta oculta en el directorio de inicio de cuenta que emula un entorno Windows, como en el Listado 4 .
Listado 4. Carpeta oculta de Wine que emula un entorno Windows


$ cd /home/tbost/.wine/drive_c/windows $ls cf8e.tmp command explorer.exe Fonts help hh.exe inf Installer ls.txt Microsoft.NET notepad.exe pwd.txt regedit.exe rundll.exe system system32 system.ini temp twain_32.dll twain.dll winhelp.exe winhlp32.exe win.ini winsxs

Después de instalar una aplicación usando Wine, por lo general puede encontrar en el menú del escritorio y ejecutarlo de la misma manera que lo haría en Windows.

Por ejemplo, CamStudio es una herramienta de código abierto para grabar y administrar videos de la pantalla. En la actualidad, no hay una versión para el sistema operativo Linux. Sin embargo, usando Wine, he instalado la versión de Windows en un escritorio Linux. Las aplicaciones relacionadas con Wine se agrupan típicamente en Aplicaciones> Wine> Programas, como en la Figura 3 .
Figura 3. Ejecución de una aplicación de Windows en Linux usando Wine
Captura de pantalla de ejecución de una aplicación de Windows en Linux usando Wine

Conclusión

Otros artículos en esta serie

Si bien en la gestión de un servidor Linux, está seguro de encontrar el software que se ejecuta desde el escritorio y en la línea de comandos. Cuando usted entiende cómo establecer los permisos adecuados y cuentas de usuario, puede ejecutar de forma segura las aplicaciones. Con procesos, como los servicios del servidor, ejecutarlos desde la línea de comandos y adecuadamente definidos en segundo plano. Si tiene aplicaciones que están orientadas para ejecutarse desde el escritorio, usted puede hacerlo también, y a veces incluso hasta con las aplicaciones de Windows!


Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías

Usamos cookies propias y de terceros para mejorar la navegación y tareas analíticas. Al continuar navegando entendemos que aceptas nuestra política de cookies. Ver política