Abrir un programa desde consola

Iniciado por lalalalalala, 3 Febrero 2012, 23:04 PM

0 Miembros y 1 Visitante están viendo este tema.

lalalalalala

¿Cómo se abre un programa desde el terminal?

Mordor

 Saludetes;)


Primero necesitas conocer la ruta donde se encuentra el ejecutable del programa. La mayoría de ellos se instalan en alguno de los directorios que se encuentran en la variable PATH del sistema ([font='Lucida Grande', 'Trebuchet MS', Helvetica, Arial, sans-serif]/usr/bin y /usr/local/bin son las más usuales, pero hay más. Simplemente tecleando echo $PATH en la terminal obtienes todas las rutas), con lo cual sólo necesitas teclear el nombre del programa para poder ejecutarlo desde cualquier directorio (por ejemplo, para ejecutar el firefox, el navegador desde el que escribo, sólo necesito teclear firefox en la terminal y ya está).[/font]
Si por un casual tu programa no se encuentra en alguna de las rutas que contiene la variable PATH, puedes hacer dos cosas:


1. Buscar la ruta donde se encuentra la aplicación que quieres lanzar (tecleando whereis aplicacion obtienes la ruta. Imaginemos que te sale por ejemplo /opt/guitar)
2a. Te mueves al directorio donde está tu aplicación y desde allí la lanzas: cd /opt/guitar y luego ./aplicación El ./ es importante que los escribas antes del nombre de la aplicación que quiere lanzar, porque en caso que no lo pongas entenderá que buscar arrancar una aplicación desde el PATH. El punto y la barra invertida le indican al sistema que arranque la aplicación desde el directorio en que en ese momento te encuentras.
2b. La segunda opción consiste en que modifique el PATH. Para hacerlo primero miras cuáles son las rutas contenidas en el PATH y luego añades la nueva ruta donde se encuentra el programa. Te lo pongo de forma clara con las tres cosas que tendrías que hacer en este caso:


echo $PATH (tecleas el comando y obtienes las rutas del PATH tal como viene a continuación... Es un ejemplo, en tu caso no tienen pq aparecer éstas)
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games (ya has visto las rutas. Ahora vas a añadir la nueva: /opt/guitar)
PATH=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/opt/guitar (añades al final la nueva ruta y por último tipeas lo que viene a continuación)
export PATH (si no añades esto no se grabará la nueva ruta)



Espero que te sirva de ayuda;)

La inteligencia es un vaso a llenar...

WifliX

Anda.. pues si que es fácil, casi mejor que buscarlo en las aplicaciones :D

Otra cosa que he aprendido hoy, si lo quieres ejecutar como root solo tienes que añadir sudo delante, por ejemplo: sudo firefox

Ya que por ejemplo en el caso de Wireshark si no lo ejecutas como root no puedes capturar paquetes.

(Esta guay esto de adentrarse en Linux e ir aprendiendo cosillas por básicas que sean :D)

Un saludo!

Foxy Rider

1) Nunca ejecutar aplicaciones como root salvo que sea encarecidamente necesario... ej: firefox no necesita root.

2) Wireshark no necesita privilegios root, es más, ejecutarlo como root abre una brecha en la seguridad del sistema (quizá no importa si se usa de forma casual, pero en terrenos densos - Ej, CTF - , si importa)

http://wiki.wireshark.org/Security#Administrator.2BAC8-root_account_not_required.21

Saludos.

WifliX

Gracias por el aviso Alex, voy a documentarme sobre el tema =)

Que conste que lo de firefox era un simple ejemplo, más que nada era por Wireshark, que lo he instalado hoy y al abrirlo sin root me saltaba un error y tenía entendido que había que ejecutarlo como tal para poder capturar paquetes, voy a leer el enlace haber que dice.

Un saludo!

lalalalalala


monos1

Cita de: [Alex] en  4 Febrero 2012, 21:22 PM
1) Nunca ejecutar aplicaciones como root salvo que sea encarecidamente necesario... ej: firefox no necesita root.

2) Wireshark no necesita privilegios root, es más, ejecutarlo como root abre una brecha en la seguridad del sistema (quizá no importa si se usa de forma casual, pero en terrenos densos - Ej, CTF - , si importa)

http://wiki.wireshark.org/Security#Administrator.2BAC8-root_account_not_required.21

Saludos.


Gracias  por el enlace Alex, muy muy interesante. Y curioso.

WifliX

A mi me sale este mensaje al abrir al abrir el programa y al entrar en interface sin root



¿Sabeis como puedo solucionarlo?

Salu2

Foxy Rider

#8
http://wiki.wireshark.org/CaptureSetup/CapturePrivileges

CitarGNU/Linux distributions, Wireshark is installed using a package manager

GNU/Linux distributions usually provide package managers which handle installation, configuration and removal of software packages. Wireshark is provided by several distributions and some of them help in configuring dumpcap to allow capturing even for non-root users.

Debian, Ubuntu and other Debian derivatives

By installing Wireshark packages non-root users won't gain rights automatically to capture packets. To allow non-root users to capture packets follow the procedure described in /usr/share/doc/wireshark-common/README.Debian

Other Linux based systems or other installation methods

Running Wireshark (or any other network capture/analyzer, for that matter) on Linux needs root privileges. Therefore, you have to have root privileges when starting Wireshark, else you can't capture data. Please note that you don't have to login as root when starting your computer, you can use su(1) or sudo(8) for that purpose. However, this remains unsecure as the dissectors, the parts of Wireshark which parse the captured data, run with root privileges as they did before. A much safer solution would be to su(1) to root, then use the bundled dumpcap to dump the data (for example, you can evoke dumpcap by using "dumpcap -w ./dumpfile", which will dump the packets to the file "dumpfile" in the current working directory. See "dumpcap -h" for details). You could also use tcpdump for this purpose. The advantage of this solution is, while dumpcap/tcpdump still run as root, you can run Wireshark as a ordinary user and load the data you captured previously, so effectively this is kinda "privilege separation by hand".

Setting network privileges for dumpcap

1. Ensure your linux kernel and filesystem supports File Capabilities and also you have installed necessary tools.

2. "setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap"

3. Start Wireshark as non-root and ensure you see the list of interfaces and can do live capture.

Limiting capture permission to only one group

1. Create user "wireshark" in group "wireshark".

2. "chgrp wireshark /usr/bin/dumpcap"

3. chmod 754 /usr/bin/dumpcap

4. "setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap"

5. Ensure Wireshak works only from root and from a user in the "wireshark" group



¿Te agregaste el grupo "wireshark"? acá en Fedora está hecho con el método del grupo y supongo que en otras distros también.
Agregate, cerrá y abrí sesión.

Saludos.

P.S → Esas instrucciones/comandos son innecesarios si tu distro ya lo empaquetó hecho así, que es lo que parece