저는 Bash(Stretch를 실행하는 Raspberry Pi)에서 일부 설치 스크립트를 작성하고 있습니다. 파일을 /usr/local/bin
내 사용자 프로필에 복사하고 필요에 따라 일부 패키지를 설치합니다. 스크립트에는 거의 2000줄이 있으며 그 중 20-30개의 명령에는 루트가 필요합니다.
이제 내 질문은: 전체 스크립트를 표준 사용자로 실행해야 합니까, 아니면 표준 사용자로 전체 스크립트를 실행 sudo
하고 관리자 권한이 필요한 스크립트의 명령만 sudo해야 합니까?
답변1
스크립트를 실행해도 sudo
해를 끼치지 않는다고 확신하는 경우(예: 현재 권한이 필요한 새 파일은 생성되지 않지만 root
그렇지 않은 경우는 발생하지 않음) 를 사용해야 합니다 sudo
.
부작용이 있다는 것을 알고 있거나 확실하지 않은 경우 안전한 방법으로 진행하고 sudo
필요한 곳에 사용하십시오.
답변2
스크립트 헤더에 다음을 입력하세요.
#!/bin/bash
#Detects if script are not running as root...
if [ "$UID" != "0" ]; then
#$0 is the script itself (or the command used to call it)...
#$* parameters...
if whereis sudo &>/dev/null; then
echo "Please type the sudo password for the user $USER"
sudo $0 $*
exit
else
echo "Sudo not found. You will need to run this script as root."
exit
fi
fi