GNU/Linux >> Linux の 問題 >  >> Linux

特定のコマンドがディレクトリで実行されるのを制限することは可能ですか?

私は2つのディレクトリを持っています:src およびprojectsgit ...を実行できないようにしたい 特にsrc内にいない限り またはprojects 。これは可能ですか?

承認された回答:

バイナリの実行を防ぐことは困難ですが、一般的な状況では、簡単な保護方法があります。

  1. 名前を上書きするシェル関数を定義します。これは明らかに別の(また別のユーザーの)シェルでは機能しません。
  2. $ PATHからバイナリを取り出し、ラッパースクリプトに置き換えます。これはより安全ですが、明らかにソフトウェアの更新で問題が発生します(スクリプトが上書きされます)。

シェル関数は次のようになります:

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. Linuxで特定の種類のファイルを検索してあるディレクトリから別のディレクトリにコピーする方法

  2. システムの非アクティブによるコマンドのスケジューリング?

  3. ディレクトリ サイズの制限

  1. Linux – Linuxからブートローダーを実行する方法は?

  2. シェルスクリプトはどこから実行されますか?

  3. 一部のコマンドをBash履歴に保存されないようにしますか?

  1. Linux シェルから、現在とは異なる作業ディレクトリでプログラムを実行するにはどうすればよいですか?

  2. PATH からの Git カスタム コマンドが機能しない

  3. 純粋な GNU を実行することは可能ですか?