Как я могу проверить корневые переменные среды от 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
Ваша оболочка расширит переменную еще до того, как она достигнет sudo
. Вместо
sudo -i echo $HISTFILESIZE
и всех вариаций, вам нужно экранировать ее с помощью \, как показано ниже:
sudo -i bash -c "echo \${HISTFILESIZE}"
Еще одно редактирование: нужно заключить переменную в скобки, она может содержать пробелы