GNU/Linux >> Znalost Linux >  >> Linux

Je možné omezit spouštění určitých příkazů v adresáři?

Mám dva adresáře:src a projects . Chtěl bych zabránit spuštění git ... pokud nejsem konkrétně uvnitř src nebo projects . Je to možné?

Přijatá odpověď:

Je obtížné zabránit spuštění binárního souboru, ale pro typické situace existuje jednoduchá metoda ochrany:

  1. Definujete funkci shellu, která přepíše název. To samozřejmě nebude fungovat v jiném (také jiném uživatelském) prostředí.
  2. Binární soubor vyjmete z $PATH a nahradíte jej skriptem wrapper. Je to bezpečnější, ale zjevně to způsobí problémy s aktualizacemi softwaru (skript se přepíše).

Funkce shellu může vypadat takto:

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. Je možné spustit čisté GNU?

  2. Omezit velikost adresáře

  3. sudo nefunguje na určitých příkazech

  1. Jak najít a zkopírovat určitý typ souborů z jednoho adresáře do druhého v Linuxu

  2. Linux – Jak spustit bootloader z Linuxu?

  3. Vyloučení některých příkazů z ukládání do historie Bash?

  1. Jak spustím program s jiným pracovním adresářem, než je aktuální, z prostředí Linux?

  2. Vlastní příkazy Git z PATH nefungují

  3. Mohu zabránit vytvoření složky s určitým názvem?