나는 작은 bash 스크립트를 작성했습니다. 루트 비밀번호가 필요합니다.
권한이 필요한 명령은 두 개뿐입니다. 따라서 현재는 슈퍼유저 비밀번호를 입력해야 합니다.두 배- 난 그런 걸 원하지 않아요.
스크립트를 데스크탑에 연결했습니다. 즉, 데스크탑에서 실행하고 있다는 뜻입니다.
노력했지만 작동하지 않습니다.
gksu -u root "iptables -D INPUT 7 && iptables -D INPUT 6"
답변1
개인적으로 저는 스크립트를 작성하여 ~/bin
$PATH 또는 다른 디렉토리에 배치한 다음 실행합니다 sudo <script_name>
. 이를 수행하는 방법에는 여러 가지가 있습니다. 이것이 제가 선호하는 방법입니다.
mkdir ~/bin
editor ~/bin/myscript
그런 다음 스크립트를 작성하십시오.
#!/bin/bash
iptables -D INPUT 7
iptables -D INPUT 6
저장하고 실행 가능하게 만듭니다.
chmod +x ~/bin/myscript
마지막으로 스크립트를 실행하는 바탕 화면 바로 가기를 만듭니다.
editor ~/Desktop/myscript
포함하다:
[Desktop Entry]
Version=1.0
Type=Applicaton
Name=Myscript
Comment=My script that does something cool
Icon=help-info
Terminal=false
Exec=bash -c "sudo ~/bin/myscript"
그러면 sudo 비밀번호를 한 번만 묻는 메시지가 표시됩니다.
답변2
sh
두 명령을 하나로 실행할 수 있습니다 .
sudo sh -c 'iptables -D INPUT 7 && iptables -D INPUT 6'
물론, 일회성이 아닌 경우에는 대본을 만들어 두는 것이 더 편리할 것입니다.
답변3
sudo -v
"새로 고침" 권한을 사용할 수 있습니다 . 스크립트가 실행되는 동안 백그라운드 루프에서 이를 사용할 수 있습니다. (오래전에 다른 곳에서 개조했는데 어디인지 기억이 나지 않습니다.)
sudo_done="/tmp/sudo.finished"
sudo_me() {
while [ ! -f $sudo_done ]; do
sudo -v
sleep 5
done &
}
stop_sudoing() {
touch $sudo_done
sleep 7
rm $sudo_done
}
sudo_me &
# Your script here.
stop_sudoing &
또한 GUI 프로그램이 아니라면 gksu
필요하지 않고 sudo
괜찮습니다.