실행할 명령을 인쇄하도록 sudo를 구성할 수 있나요?

실행할 명령을 인쇄하도록 sudo를 구성할 수 있나요?

sudo상승된 권한으로 명령을 실행하도록 승인하기 전에 호출 스크립트를 실행 중인지 sudo또는 명령에서 변수/이스케이프/하위 쉘을 사용하고 있는지 여부에 관계없이 명령이 이해되었는지 확인하고 싶습니다 .

내 사용자 비밀번호를 물을 때 sudo실행할 명령의 인쇄를 요청하는 방법이 있습니까?

이 같은:

$ sudo some command with parameters
sudo: about to run ``some command with parameters``
Password:

답변1

sudo -l <somecommand> <someparameters> 

명령이 보안 정책에 의해 지정되고 허용되는 경우 명령에 대한 완전한 경로가 명령줄 인수와 함께 표시됩니다.

이것은 에서 발췌한 것입니다.man sudo

-l, --list  If no command is specified, list the allowed (and forbidden) commands for the invoking user (or the user speci‐
                 fied by the -U option) on the current host.  A longer list format is used if this option is specified multiple
                 times and the security policy supports a verbose output format.

                 If a command is specified and is permitted by the security policy, the fully-qualified path to the command is
                 displayed along with any command line arguments.  If command is specified but not allowed, sudo will exit with
                 a status value of 1.

답변2

sudo 호출 앞에 "set -x"를 추가하세요.

[steve@centos8 ~]$ cat x1
#!/bin/bash
echo foo
set -x
sudo id
set +x
echo bar
[steve@centos8 ~]$ ./x1
foo
+ sudo id
[sudo] password for steve:
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
+ set +x
bar
[steve@centos8 ~]$

답변3

sudo는 이 기능을 제공하지 않으므로 함수를 정의하면 됩니다.

echo_run(){
    echo "About to run [$@]"
    "$@"
}

# Then you can do : echo_run sudo vim test.sh

관련 정보