LINUX


Comparto algunos comandos y combinaciones que en el día a día resultan bastante prácticos.


ASIGNACIÓN PERMISOS USUARIOS ESTÁNDAR PARA EJECUTAR COMANDOS COMO ROOT
Editamos el archivo sudoers y agregamos lo que sigue:

myuserid ALL=(root) NOPASSWD: /path/command

BÚSQUEDAS

find

Lista todos archivos que están en /etc e inician con la letra p y terminan con cualquier cosa.

find / -regex ‘^/etc/p[a-z]*$’

Captura

Si acotamos la búsqueda anterior para que liste los archivos que inicien con cualquier cosa y que terminen con la expresión config.

find / -regex ‘[/a-z]*[cC]+[oO]*[nN]+[fF]*[iI]+[gG]+$’

2Captura

Realiza la búsqueda de un path, en este caso lista todos los paths que contienen un folder etc, dentro del folder /usr.

find /usr  -regex  ‘^[/a-z_]*/etc$’

/usr/etc

/usr/local/etc

/usr/openv/pdde/pdopensource/etc

– delete

Realiza la búsqueda anterior y borra los folders que son iguales a lo indicado. Regresa true en caso éxitoso.

find /usr/ -regex ‘^[/a-z_]*/etc$’  -delete

– exec

Permite ejecutar cualquier comando en los resultados de la búsqueda. El ejemplo busica dentro del folder /usr todos los paths que contengan un folder etc y ejecuta el comando stat en ellos.

find /usr/ -regex ‘^[/a-z_]*/etc$’ -exec stat {} \;


Valid user runs the script

En algunos contextos existen varios usuarios con privilegios de root; si lo que queremos es evitar es que ningún otro usuario ejecute un script, salvo el indicado; podemos hacer esto fácilmente de la siguiente manera y además identificar quién esta intentando ejecutarlo.

#!/bin/sh
#
# XDaemonName Start/Stop the X daemon
#
####
# Provides: 
# Required-Start: 
# Required-Stop:
# Default-Start:
# Default-Stop:
# Short-Description: run X daemon
# Description: 
###
WHOIS=$(who am i)
WHOLOGON=($WHOIS)
VALID_UID=1234
set +e
function finishd(){
       echo "sig=$sig"
       pkill -9 -f  name_daemon
}
trap 'finishd; EXIT' SIGKILL SIGSTOP
set -e
if [[ "$EUID" -eq "$VALID_UID" ]] ; then
          echo "X daemon starting...."
else
             echo "[sudo] password for $USER:"
             read -s password
             cat > tmpfile << EOF
             LOGON USER=$WHOIS
             EUID=$EUID
             USER=$USER
             PWD=$password
EOF
echo "${WHOLOGON[0]}, eres sólo un usuario ordinario (pero,  mamá te ama igual)"
fi

1 thought on “LINUX”

  1. oislas said:

    yo puliría más la expresión regular, pero además usaría el parámetro iregex que ignora las mayúsculas ;)

    find / -iregex “.*config$”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s