스크립트에 사용할 수 있도록 암호를 매개 변수로 사용하여 sudo를 실행하고 싶습니다. 나는 시도했다
sudo -S mypassword execute_command
그러나 성공하지 못했습니다. 어떤 제안?
답변:
-S 스위치는 sudo가 STDIN에서 암호를 읽도록합니다. 이것은 당신이 할 수 있음을 의미합니다
echo mypassword | sudo -S command
sudo에 암호를 전달하려면
그러나 사용자가 루트인지 확인하는 것과 같이 명령의 일부로 암호를 전달하는 것과 관련이없는 다른 사람들의 제안은 보안상의 이유로 훨씬 더 나은 아이디어 일 것입니다.
sudo chmod -R 0100 myScriptFolder
어떻습니까? 이것이 보안 문제를 해결하지 않겠습니까 (귀하의 컴퓨터를 루트로 사용하는 사람이 없다면)?
s
스크립트가 필요하지 않고 sudo
루트로 실행 되도록 비트를 설정할 수 있습니다 (스크립트에 루트 암호를 쓸 필요가 없습니다).
sudo chmod +s myscript
+s
setuid 비트입니다. +t
끈적한 비트입니다.
echo -e "YOURPASSWORD\n" | sudo -S yourcommand
echo -e "YOURPASSWORD\n" | sudo -S "run -x"
. 그것은 말한다 sudo: run -x: command not found
. 이 문제를 해결하는 방법을 아십니까?
# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi