Как проверить корневую переменную среды от sudo пользователя?

Как я могу проверить корневые переменные среды от sudo пользователя? Я попробовал различные ключи и комбинации su и sudo, но не имейте никакой удачи.

Например, $HISTFILESIZE=2000 для обычного пользователя и 9999 для пользователя root.

vagrant@default-debian-78-64-nocm:~$ echo $HISTFILESIZE
2000
vagrant@default-debian-78-64-nocm:~$ sudo -i
root@default-debian-78-64-nocm:~# echo $HISTFILESIZE
9999

Но когда я пытаюсь получить корневой $HISTFILESIZE через sudo - он всегда возвращает меня 2000:

vagrant@default-debian-78-64-nocm:~$ sudo -i echo $HISTFILESIZE
2000
vagrant@default-debian-78-64-nocm:~$ sudo -i su - -c "echo $HISTFILESIZE"
2000
vagrant@default-debian-78-64-nocm:~$ sudo -i bash -c "echo $HISTFILESIZE"
2000
vagrant@default-debian-78-64-nocm:~$ sudo -i bash -l -c "echo $HISTFILESIZE"
2000
2
задан 11 September 2015 в 05:39
1 ответ

Ваша оболочка расширит переменную еще до того, как она достигнет sudo. Вместо

sudo -i echo $HISTFILESIZE

и всех вариаций, вам нужно экранировать ее с помощью \, как показано ниже:

sudo -i bash -c "echo \${HISTFILESIZE}"

Еще одно редактирование: нужно заключить переменную в скобки, она может содержать пробелы

4
ответ дан 3 December 2019 в 10:01

Теги

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