GNU/Linux >> Tutoriales Linux >  >> Linux

¿Es posible restringir la ejecución de ciertos comandos en un directorio?

Tengo dos directorios:src y projects . Me gustaría evitar ejecutar git ... a menos que esté específicamente dentro de src o projects . ¿Es esto posible?

Respuesta aceptada:

Es difícil evitar que se ejecute el binario, pero para las situaciones típicas existe un método de protección sencillo:

  1. Usted define una función de shell que sobrescribe el nombre. Obviamente, esto no funcionará en otro shell (también en el de otro usuario).
  2. Se saca el binario de $PATH y se reemplaza por una secuencia de comandos contenedora. Esto es más seguro pero obviamente causará problemas con las actualizaciones de software (el script se sobrescribe).

La función de shell podría verse así:

git () {
  local cwd="$(pwd -P)"
  if ! [ "/path/to/src" = "$cwd" -o "/path/to/projects" = "$cwd" ]; then
    echo "The current working directory is: '${cwd}'"
    echo "git must not be run from here; from src and projects only."
    echo "Aborting."
  else
    command git "[email protected]"
  fi
}

Linux
  1. Cómo encontrar y copiar cierto tipo de archivos de un directorio a otro en Linux

  2. Linux:¿cómo ejecutar un gestor de arranque desde Linux?

  3. ¿Excluyendo algunos de los comandos para que no se almacenen en el historial de Bash?

  4. ¿Es posible ocultar los objetos perdidos y encontrados?

  5. Restringir el tamaño del directorio

Cómo ejecutar comandos desde la entrada estándar usando Tee y Xargs en Linux

Cómo ejecutar comandos de Linux en segundo plano

Comandos básicos de Linux

Cómo acceder al shell o ejecutar comandos externos desde dentro de Vim

Cómo ejecutar todos los scripts en un directorio en Linux

Comandos de directorio de Linux:una guía completa