abc.py
должен находиться в пути поиска команд (т. е. в одном из каталогов, указанных в переменной среды PATH
). ./abc.py
- это точный путь: он выполняет abc.py
из текущего каталога (.
).
В мире Unix считается плохой практикой иметь текущий каталог в пути, так как он допускает чрезвычайно простые злонамеренные атаки, когда хорошо размещенный исполняемый файл, названный в честь обычной команды Unix (или ее общих неправильных написаний), будет случайно выполнен ничего не подозревающий пользователь.
Например, довольно неправдоподобный, но наиболее показательный пример - это когда злоумышленник может оставить исполняемый файл с именем rm
в /tmp
и подождать, пока системный администратор попытается очистить каталог /tmp
.