Где найти переменную среды SUDO_COMMAND?

https://appdb.winehq.org/objectManager.php?sClass=version&iId=32045

этот учебник на сайте WineHQ показывает, что вам нужно делать!

8
задан 1 October 2017 в 16:00

4 ответа

SUDO_COMMAND - это переменная среды, установленная sudo только в среде начатого ею процесса (и унаследована любыми дочерними процессами). Если вы запустите 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 в некотором порядке.

11
ответ дан 18 July 2018 в 07:17

SUDO_COMMAND - это переменная среды, которая задает команду, выполняемую sudo.

Как упоминалось @muru - если sudo выполнить новую оболочку - эта переменная среды будет показана в этом new shell

Дополнительная информация

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.
5
ответ дан 18 July 2018 в 07:17

SUDO_COMMAND - это переменная среды, установленная sudo только в среде начатого ею процесса (и унаследована любыми дочерними процессами). Если вы запустите 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 в некотором порядке.

11
ответ дан 24 July 2018 в 18:46
  • 1
    И я думал, что sudo echo $SUDO_COMMAND можно использовать для создания бесконечного цикла ... :( – dessert 7 September 2017 в 09:12

SUDO_COMMAND - это переменная среды, которая задает команду, выполняемую sudo.

Как упоминалось @muru - если sudo выполнить новую оболочку - эта переменная среды будет показана в этом new shell

Дополнительная информация

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.
5
ответ дан 24 July 2018 в 18:46
  • 1
    Я не думаю, что ваш пример на самом деле воспроизводимый. SUDO_COMMAND существует только в среде, запущенной с помощью sudo, если SUDO_COMMAND на самом деле где /bin/ls, то вы не должны запускать оболочку echo $SUDO_COMMAND. – muru 7 September 2017 в 09:02

Другие вопросы по тегам:

Похожие вопросы: