Чи є методи перевірити, що ви насправді виконуєте з bash-скрипту?
Припустимо, що ваш Баш скрипт телефонує кілька команд (наприклад: tar, mail, scp, mysqldump) , і ви готові , щоб переконатися , що tarфактична, реальна tar, яка може бути визначена з допомогою rootкористувача , що є власником файлу і батьківський каталог і тільки один з правами запису а не хтось /tmp/surprise/tarіз власником www-dataабо apache2є його власником.
Звичайно, я знаю про PATHнавколишнє середовище, мені цікаво дізнатись, чи можна це додатково перевірити із запущеного сценарію bash, і якщо так, то як саме?
Приклад: (псевдокод)
tarfile=$(which tar)
isroot=$(ls -l "$tarfile") | grep "root root"
#and so on...
whichнеправильно сказати, що tarробити, на що відповів xhienne, lsможна зламати, щоб повернути помилкову інформацію про файл (и), якщо такі є. Також grepможе бути зламана для повернення неправдивої інформації; цього можна уникнути, використовуючи натомість відповідність оболонок, але тоді оболонку можна зламати. І оболонку можна зламати, щоб дати неправильні результати typeв першу чергу - або замінити цілком, оскільки замінюваність оболонки була важливим нововведенням Unix порівняно з 50-річними ОС. Дивіться адресу Кен Томпсона 1984 року Тьюрінга. Це черепахи аж донизу.
TE) - який має базу даних з підписами (тобто більш обширною, ніж контрольна сума MD5. Коли TE активний І файл знаходиться в базі даних, ви можете вибрати чи працює програма - або лише попереджає, що вона не відповідає базі даних. Крім того, є два інші налаштування: TEP( TLPдовірене виконання PATH) та (довірене LIBrary PATH). Виконуються лише програми в TEP, а бібліотеки можуть завантажуватися тільки Директорія включена в TLP. У Linux I є щось, що називається "AppArmor", що може вам допомогти.

