Comments 17
Интересно, если взять VirtualBox (или что-то подобное), запустить inotifywait и до кучи tcpdump, мы увидим больше чем предлагаемый скрипт?
Хотя и так понятно, что если программа думает что записала что-то на диск, а на самом деле не записала, то работать она будет не так как предполагается в нормальных условиях.
maybe has prevented rm -r ostechnix/ from performing 5 file system operations:
delete /home/sk/inboxer-0.4.0-x86_64.AppImage
delete /home/sk/Docker.pdf
delete /home/sk/Idhayathai Oru Nodi.mp3
delete /home/sk/dThmLbB334_1398236878432.jpg
delete /home/sk/ostechnix
Но ведь rm -r должна была удалить файлы, лежащие в каталоге ostechnix, правильно?
То есть получается, что maybe еще и файловые пути выводит неправильно.
Возможно, это rm из недоверенного места, который автор и захотел проверить с помощью maybe, прежде чем запускать?) Теперь он увидел, что этот rm удалит совсем не то, что он просит, значит его запускать не надо, это вирус)
/home/sk/ostechnix
— на самом деле символическая ссылка на /home/sk
, а скрипт использует что-то вроде cd -P
чтобы показать фактические пути файлов? Смысл в том, что может показаться, что команда очистит какую-то ненужную папку, а на самом деле будут удалены файлы из домашнего каталога пользователя.
[~]: mkdir test1
[~]: cd test1
[test1]: mkdir test2
[test1]: mkdir test3
[test1]: mkdir test3/test4
[test1]: tree
.
├── test2
└── test3
└── test4
[test1]: maybe rm -rf test3/
maybe has prevented rm -rf test3/ from performing 2 file system operations:
delete /home/ronkajitsu/test1/test4
delete /home/ronkajitsu/test1/test3
Do you want to rerun rm -rf test3/ and permit these operations? [y/N]
Судя по виду, перечисление файлов без правильных относительных путей, поэтому и выводимый абсолютный путь кривой.
Бесполезная хрень. Тут уже показали, как она сломается. Итого, скрипт, который захочется проверить, сломается на третьей строчке на чём-нибудь безобидном, а когда вы его выполните целиком — грохнет вам все данные.
Нужна нормальная песочница — чтобы не просто не выдавались сообщения об ошибках, но и результаты вызовов были доступны.
maybe sudo pacman -Syu
не сработала потому, что sudo — suid-ный бинарник, а их трассировать с помощью ptrace обычный пользователь не может.Стоит попробовать
sudo maybe pacman -Syu
.По заголовку почему-то подумал, что сейчас будем проблему остановки решать на баше.
Как узнать, что будет делать программа для Linux, не выполняя её по-настоящему?
Тут стоит отметить, что следует проявлять большую осторожность при использовании maybe в любых системах, отказ которых может привести к тяжёлым последствиям. Дело в том, что эта утилита пока ещё блокирует не особенно много системных вызовов, как результат, её использование может привести к сбоям в работе компьютера.
«Как не надо узнавать, что будет делать программа для Linux»
Как узнать, что будет делать программа для Linux, не выполняя её по-настоящему?