Назад | Перейти на главную страницу

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

Как я могу проверить переменные среды root от пользователя 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

Но когда я пытаюсь получить root $ 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

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

sudo -i echo $HISTFILESIZE

и все варианты, вам нужно избежать этого с помощью \ как показано ниже:

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

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