LinuxParty
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.
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 rootPara 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.jarConsidere 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
|
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
|
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.
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
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
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
|
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
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!
-
Microsoft
- Si estás listo para dejar atrás Windows 11, te recomiendo esta distribución para nuevos usuarios de Linux
- Microsoft Copilot ahora puede leer tu pantalla, pensar profundamente y hablarte en voz alta
- Cómo instalar Windows 11 sin restricciones: Elimina requisitos de hardware y cuenta de Microsoft
- Fin del Soporte para Windows 10: Microsoft Terminará Actualizaciones en 2025, pero 0patch Ofrecerá Soporte hasta 2030, sepa cómo
- ¿Es la nueva función 'Recuperar' de Windows una pesadilla de seguridad y privacidad?
- La preocupación de Microsoft por el liderazgo de Google impulsó la inversión en OpenAI
- Windows 10 alcanza el 70% de participación de mercado mientras Windows 11 sigue cayendo
- Microsoft eliminará los controladores de impresoras de terceros en Windows
- Después de 28 años, Microsoft anuncia que eliminará WordPad de Windows
- Las mejores alternativas a Microsoft Excel para Linux
- Las 5 principales alternativas de código abierto de Microsoft 365 para Linux
- Con Bing ya podemos generar imágenes al mas puro estilo DALL-E
- OpenAI y Microsoft son socios, hasta que compiten por los mismos clientes
- Microsoft dice que hablar demasiado tiempo con Bing puede hacer que se descarrile
- ¿Es Windows 11 un software espía? Microsoft defiende el envío de datos de usuarios a terceros