Apakah ada metode untuk memeriksa apa yang sebenarnya Anda jalankan dari skrip bash?
Katakanlah bash script Anda memanggil beberapa perintah (misalnya: tar, mail, scp, mysqldump) dan Anda bersedia untuk memastikan bahwa taradalah yang sebenarnya, real tar, yang ditentukan oleh rootpengguna menjadi file dan direktori induk pemilik satu-satunya dengan hak akses menulis dan bukan sebagian /tmp/surprise/tardengan www-dataatau apache2menjadi pemilik.
Tentu saya tahu tentang PATHdan lingkungan, saya ingin tahu apakah ini juga dapat diperiksa dari skrip bash yang sedang berjalan dan, jika demikian, bagaimana tepatnya?
Contoh: (pseudo-code)
tarfile=$(which tar)
isroot=$(ls -l "$tarfile") | grep "root root"
#and so on...
whichtidak mengatakan dengan benar apa yang tarakan dilakukan, seperti dijawab oleh xhienne, lsdapat diretas untuk mengembalikan info palsu tentang file, jika ada. Juga grepbisa diretas untuk mengembalikan info palsu; yang bisa dihindari dengan menggunakan pencocokan shell saja, tetapi kemudian shell bisa diretas. Dan shell dapat diretas untuk memberikan hasil yang salah sejak typeawal - atau diganti seluruhnya karena penggantian shell adalah inovasi penting dari Unix dibandingkan dengan OS yang berusia 50 tahun. Lihat alamat Turing 1984 Ken Thompson. Ini kura-kura sepanjang jalan.
TE) - yang memiliki database dengan tanda tangan (yaitu, lebih luas daripada MD5 checksum. Ketika TE aktif dan file ada dalam database Anda dapat memilih apakah program berjalan - atau hanya memperingatkan bahwa itu tidak cocok dengan database. Selanjutnya, ada dua pengaturan lain: TEP(PATH eksekusi tepercaya) dan TLP(PATH LIBrary tepercaya). Hanya program di TEP yang dapat dieksekusi dan perpustakaan hanya boleh dimuat dengan direktori ini termasuk dalam TLP. Di Linux saya ada sesuatu yang disebut 'AppArmor' yang dapat membantu Anda

