sudo 자체가 아니라 sudo 명령이 작동하도록 허용하는 방법이 필요 합니다 .
sudo 줄에는 다음과 같은 추가 인수가 있습니다.
sudo -u user bash -c 'uptime'
위의 링크에서 bash를 사용하면 출력을 얻습니다.
/usr/bin/sudo: line 3: -u: command not found
어쨌든 주위에 있습니까? 아마도 -c 대신 따옴표에서 실행되도록하십시오.
답변
전송 된 명령이 항상 정확하게
sudo -u user command...
그러면 가짜 sudo 스크립트는 처음 두 가지 인수를 버릴 수 있습니다.
#!/bin/bash
shift 2
exec "$@"
그렇지 않으면 약간의 인수 파싱을 수행해야합니다.
#!/bin/bash
while getopts :u: opt
do
# normally you'd process options and arguments here,
# but in this case just ignore them
done
shift $((OPTIND-1)) # throw out processed options and arguments
exec "$@"
getopts
더 이상 없을 때까지 명령 행 옵션 및 인수를 읽고 리턴합니다. man bash
명령 행 인수를 처리하는 방법에 대한 자세한 내용을 보려면 bash (1) ( ) 에서 읽을 수 있습니다 .
답변
이것은 내가 babun에서 Ansible을 실행하기 위해 sudo에 사용한 것입니다.
#!/bin/bash
count=0
for var in "$@"
do
(( count++ ))
done
shift $count
exec "$@"