SUDO_COMMAND 환경 변수는 어디에 있습니까?


8

나는 현재 Ubuntu를 사용하여 Linux의 기초를 배우고 있으며 환경 변수에 대한 정보를 찾아야 할 약간의 활동이 있습니다. 이미 6/7 정보를 찾았지만 찾을 수 없습니다 SUDO_COMMAND. 이것은 목록이 진행되는 방식입니다.

SHELL=/bin/bash
USER=student
SUDO_COMMAND=
PWD=/home
HOME=/home/student
LOGNAME=student
OLDPWD=/home/student 

나는 정보가 순서대로 나오고 SUDO_COMMAND사용자와 암호 사이 에 있음을 알았습니다 . 어딘가에 실수를 했습니까?


1
sudo 권한이 있습니까?
ravery

답변:


11

SUDO_COMMANDsudo시작된 프로세스 환경에서만 설정되고 하위 프로세스에서 상속되는 환경 변수입니다 . 당신이 실행하는 경우 sudo some-command arg1 arg2, 다음 SUDO_COMMAND의 절대 경로를 포함 some-command하고 arg1 arg2. 당신이 실행하는 경우 sudo -s또는 sudo -i, 다음 변수가 시작된 쉘로 설정됩니다. 어쨌든에서 시작한 프로세스 트리 외부에서는이를 볼 수 없을 것입니다 sudo.

예를 들면 다음과 같습니다.

$ sudo sh -c 'echo $SUDO_COMMAND'
/bin/sh -c echo $SUDO_COMMAND

또는:

$ sudo env
HOME=/home/muru
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
TERM=xterm-256color
LANG=en_US.UTF-8
LC_NUMERIC=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
LC_MONETARY=en_GB.UTF-8
LC_PAPER=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_ADDRESS=en_GB.UTF-8
LC_TELEPHONE=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_IDENTIFICATION=en_GB.UTF-8
MAIL=/var/mail/root
LOGNAME=root
USER=root
USERNAME=root
SHELL=/bin/bash
SUDO_COMMAND=/usr/bin/env
SUDO_USER=muru
SUDO_UID=1000
SUDO_GID=1000

정보가 순서대로 나온다는 것을 알았습니다

난 당신이 사용하는 어떤 명령 모르겠지만, 당신의 출력에 의존 할 수 없다 set, declare, env또는 printenv어떤 순서로.


그리고 나는 sudo echo $SUDO_COMMAND무한 루프를 만드는 데 사용될 수 있다고 생각했습니다 … :(
dessert

5

SUDO_COMMAND환경 변수입니다 sudo를 운영하는 명령으로 설정합니다 .

@muru에서 언급했듯이- sudo새로운 쉘을 실행하면이 환경 변수 가이 새로운 쉘에 표시됩니다

더 많은 정보

man sudo 다음 세부 사항을 제공합니다.

ENVIRONMENT
 sudo utilizes the following environment variables.  The security policy
 has control over the actual content of the command's environment.

 EDITOR           Default editor to use in -e (sudoedit) mode if neither
                  SUDO_EDITOR nor VISUAL is set.

 MAIL             Set to the mail spool of the target user when the -i
                  option is specified or when env_reset is enabled in
                  sudoers (unless MAIL is present in the env_keep list).

 HOME             Set to the home directory of the target user when the -i
                  or -H options are specified, when the -s option is
                  specified and set_home is set in sudoers, when
                  always_set_home is enabled in sudoers, or when env_reset
                  is enabled in sudoers and HOME is not present in the
                  env_keep list.

 LOGNAME          Set to the login name of the target user when the -i
                  option is specified, when the set_logname option is
                  enabled in sudoers or when the env_reset option is
                  enabled in sudoers (unless LOGNAME is present in the
                  env_keep list).

 PATH             May be overridden by the security policy.

 SHELL            Used to determine shell to run with -s option.

 SUDO_ASKPASS     Specifies the path to a helper program used to read the
                  password if no terminal is available or if the -A option
                  is specified.

 SUDO_COMMAND     Set to the command run by sudo.

나는 당신의 모범이 실제로 재현 가능한 것이라고 생각하지 않습니다. SUDO_COMMAND에 의해 시작된 환경에만 존재하며, 실제로 어디에 sudo있다면 쉘을 실행할 수 없습니다 . SUDO_COMMAND/bin/lsecho $SUDO_COMMAND
muru
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.