루트가 아닌 사용자로 /usr/sbin/에서 명령을 실행하려고 할 때 메시지를 표시하는 방법이 있습니까?

루트가 아닌 사용자로 /usr/sbin/에서 명령을 실행하려고 할 때 메시지를 표시하는 방법이 있습니까?

예를 들어, 제가 사용한 대부분의 Linux 배포판에서 다음을 입력하면구성된 경우일반 사용자라면 루트만이 그러한 명령을 실행할 수 있다는 메시지를 받게 됩니다.

데비안에서는 단순히 명령을 찾을 수 없다는 뜻입니다(/usr/bin/에서 명령을 찾고 있기 때문입니다).

"ifconfig를 루트로 실행해야 합니다." 같은 메시지를 표시하는 방법이 있는지 궁금합니다.

답변1

다음을 수행할 수 있습니다.

trap '
    if [[ $BASH_COMMAND =~ /sbin ]] && ((UID!=0)); then
        echo >&2 "${BASH_COMMAND##*/sbin/} must be run as root"
    fi
' DEBUG

그러나 ifconfig사용자는 를 입력하여 액세스할 수도 있습니다 /sbin/ifconfig.

ifconfigChris Down이 말했듯 이 기본 ID에서 이러한 프롬프트 메시지가 발행되는 것을 본 적이 없습니다 .

답변2

데비안에서는 명령을 찾을 수 없다고만 나옵니다(/usr/bin/에서 명령을 찾고 있기 때문입니다)

/sbin이는 루트가 아닌 사용자의 PATH에 없다는 의미입니다. /sbin/ifconfig루트가 아닌 경우 명시적으로 실행하여 표시되는 내용을 확인하십시오.

메시지가 정상이면 /sbinPATH에 추가하면 됩니다.

관련 정보