sudo를 사용하여 실행해야 하는 명령이 있지만 먼저 관리자 계정으로 su하고 비밀번호를 요청하는 스크립트가 필요합니다.
현재는 다음과 같이 새 사용자로 두 번째 스크립트를 호출하는 경우에만 작동하게 할 수 있습니다.
start.sh
#!/bin/bash
# how can we just put the script here instead of a separate file?
su -c "sudo -S ./.launchStage2.sh" -m admin_user
.launchStage2.sh
#!/bin/bash
source /root/pyusb/bin/activate
cd /root/pyusb
python stormLauncher.py
deactivate
cd ~
두 번째 스크립트를 삭제하고 첫 번째 스크립트에서 실행하는 방법이 있습니까? Extra :) 현재 su와 sudo에 대해 한 번씩 비밀번호를 두 번 요청하는데, 한 번만 요청하는 방법이 있나요?
sudo
편집: 일반 사용자 계정을 에 두는 것이 아니라 필요할 때 사용하는 별도의 관리자 계정을 사용 하고 싶습니다 . 주된 이유는 제가 교실 실험실 교사이고 학생이 어떻게든 내 일반 계정에 액세스하더라도 여전히 sudo를 사용할 수 없기 때문입니다. 이것이 의미가 있는지 확실하지 않지만 이는 우리 조직의 IT 부서에서 나에게 권장한 것이며 이 질문의 일부가 아닙니다.
답변1
스크립트는 자신을 호출할 수 있습니다.
if ! [ admin_user = "$USER" ] && ! [ root = "$USER" ]; then
su -c "$0" -m admin_user
elif ! [ root = "$USER" ]; then
sudo "$0"
else
source /root/pyusb/bin/activate
# [...]
fi