Comandos.- Crear comandos propios

Crear comandos propios

Podemos crear scripts y llamarlos como si fueran un comando si los ponemos en una de las rutas que integran el PATH y les damos permisos de ejecución.

Las rutas que forman parte del PATH se pueden averiguar ejecutando en la terminal:

echo $PATH

Me devuelve:

/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Mi carpeta /usr/local/sbin esta vacía, por eso la prefiero sobre las demás.

Ejemplo:

printf 'echo "Hola, este script funciona como si fuera un comando."\nexit' | sudo tee /usr/local/sbin/hola; sudo chmod a+x '/usr/local/sbin/hola'; hola

La linea de comandos anterior crea un script dentro de /usr/local/sbin llamado hola, para poderlo guardar dentro nos pide contraseña de root. Luego se le da permisos de ejecución a todos los usuarios con el comando chmod y también necesita de permisos de root para dárselos. El comando se llama, escribiendo hola en la terminal, nos devuelve: Hola, este script funciona como si fuera un comando.

Así de sencillo es crear los comandos y se usan igual. Cuando necesiten permisos de root se antepone la palabra sudo o se ejecutan desde una terminal del root.

EXTRA

Dar permisos de root para un comando a un usuario, grupo o a todos se hacen los siguientes pasos:

a) Respaldar el archivo sudoers

sudo cp /etc/sudoers /etc/sudoers.backup

b) Abrir el archivo de sudoers.

export EDITOR=nano && sudo -E visudo

En el blog lgallardo.com dice que en una terminal del root se escribe visudo y enter para abrir sudoers. Pero yo siempre lo abro con la linea de arriba y puedo constar que de las dos formas funcionaron bien.

c) Dar permisos de root a un usuario o a todos para que no pida la contraseña para un comando o script. Estas lineas se agregan al final del archivo de sudoers.

Para un usuario:

[Usuario] ALL=NOPASSWD: [Ruta completa del script, comando, programa, etc.]

Para todos los usuarios:

ALL ALL=NOPASSWD: [Ruta completa del script, comando, programa, etc.]

Para un grupo de usuarios:

%[Grupo de usuarios] ALL=NOPASSWD: [Ruta completa del script, comando, programa, etc.]

Ejemplos:

travesuras ALL=NOPASSWD: /bin/mount
ALL ALL=NOPASSWD: /usr/sbin/ufw status
%pandilla ALL=NOPASSWD: /usr/sbin/ufw enable

El primer ejemplo da control absoluto del comando mount al usuario travesuras, el segundo solo le permite consultar el estado de ufw a todos los usuarios y el tercero permite al grupo pandilla activar ufw.

Estos comandos, programas y scripts a los que dimos permisos de root los pueden ejecutar todos los usuarios logueados tanto localmente como en forma remota.

 

 

 

Enlace corto a esta entrada: http://wp.me/pjHsf-QC

 

 

 

Anuncios

One thought on “Comandos.- Crear comandos propios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s