Как я могу проверить переменные среды 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}"
Еще одно редактирование: необходимо заключить переменную в скобки, она может содержать пробелы