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]*$’
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]+$’
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
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$”