GNU/Linux >> Belajar Linux >  >> Linux

Apakah Mungkin Membatasi Perintah Tertentu Agar Tidak Dijalankan Di Direktori?

Saya memiliki dua direktori:src dan projects . Saya ingin mencegah diri saya menjalankan git ... kecuali saya secara khusus berada di dalam src atau projects . Apakah ini mungkin?

Jawaban yang Diterima:

Sulit untuk mencegah biner dijalankan tetapi untuk situasi umum ada metode perlindungan yang mudah:

  1. Anda menentukan fungsi shell yang menimpa nama. Ini jelas tidak akan berfungsi di shell lain (juga pengguna lain).
  2. Anda mengeluarkan biner dari $PATH dan menggantinya dengan skrip pembungkus. Ini lebih aman tetapi jelas akan menyebabkan masalah dengan pembaruan perangkat lunak (skrip akan ditimpa).

Fungsi shell dapat terlihat seperti ini:

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. Perintah khusus Git dari PATH tidak berfungsi

  2. Batasi Ukuran Direktori

  3. sudo tidak bekerja pada perintah tertentu

  1. Menjadwalkan Perintah Dengan Sistem Tidak Aktif?

  2. Dari Mana Skrip Shell Dijalankan?

  3. Mengecualikan Beberapa Perintah Dari Disimpan Di Bash History?

  1. Bagaimana cara menjalankan program dengan direktori kerja yang berbeda dari saat ini, dari shell Linux?

  2. Apakah mungkin menjalankan GNU murni?

  3. Bisakah saya mencegah pembuatan folder dengan nama tertentu?