В целях безопасности замените os.system на os.popen. - PullRequest
1 голос
/ 20 мая 2019

Можно ли использовать os.popen() для достижения результата, аналогичного os.system? Я знаю, что os.popen() более безопасен, но я хочу знать, как можно на самом деле запускать команды через эту функцию. При использовании os.system() все становится очень небезопасным, и я хочу иметь безопасный способ доступа к командам терминала.

1 Ответ

2 голосов
/ 20 мая 2019

Все, что использует оболочку для выполнения команд, небезопасно по очевидным причинам (вы не хотите, чтобы кто-то запускал rm -rf / в вашей оболочке :). И os.system, и os.popen используют оболочку.

В целях безопасности используйте модуль subprocess с shell = False

В любом случае, обе эти функции устарели с Python 2.6

...