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

One thought on “LINUX

  1. 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 comment