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_COMMANDuserとpwdの間にあることに気付きました。どこかで間違えましたか?


1
あなたはsudo権限を持っていますか?
ravery

回答:


11

SUDO_COMMANDsudoそれによって開始された(子プロセスによって継承された)プロセスの環境でのみ設定される環境変数です。あなたが実行した場合sudo some-command arg1 arg2、その後SUDO_COMMANDの絶対パスが含まれますsome-command、とarg1 arg2sudo -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

情報が整理されていることに気づきました

私はあなたが使っているどのコマンドを知っていませんが、の出力に頼ることはできないsetdeclareenvまたはprintenvいくつかの順序です。


そして、私sudo echo $SUDO_COMMANDは無限ループを作成するために使用できると思った…:(
デザート

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/ls、あなたが実行するためのシェルを得ないでしょうecho $SUDO_COMMAND
muru
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.