Я перепробовал все решения, но не сработало. Хотел запускать долго выполняющиеся задачи с Celery, но для этого мне нужно было запустить команду sudo chown с subprocess.call ().
Вот что у меня сработало:
Чтобы добавить безопасные переменные среды, в командной строке введите:
export MY_SUDO_PASS="user_password_here"
Чтобы проверить, работает ли он, введите:
echo $MY_SUDO_PASS
> user_password_here
Чтобы запустить его при запуске системы, добавьте его в конец этого файла:
nano ~/.bashrc
#.bashrc
...
existing_content:
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
...
export MY_SUDO_PASS="user_password_here"
Здесь вы можете добавить все переменные окружения, пароли, имена пользователей, хосты и т. Д. Здесь.
Если ваши переменные готовы, вы можете запустить:
Для обновления:
echo $MY_SUDO_PASS | sudo -S apt-get update
Или установить Midnight Commander
echo $MY_SUDO_PASS | sudo -S apt-get install mc
Для запуска Midnight Commander с sudo
echo $MY_SUDO_PASS | sudo -S mc
Или из оболочки Python (или Django / Celery), чтобы рекурсивно изменить владельца каталога:
python
>> import subprocess
>> subprocess.call('echo $MY_SUDO_PASS | sudo -S chown -R username_here /home/username_here/folder_to_change_ownership_recursivley', shell=True)
Надеюсь, это поможет.