Могу ли я иметь другой $ HOME для себя, как sudo?

Возможно, псевдоним - это то, что вы ищете. Откройте файл ~/.bash_aliases и добавьте следующее в конец файла (файл может быть пустым в зависимости от того, добавлен ли ранее ранее псевдоним):

alias server-stop.sh='/path/to/your/server-stop.sh`

Плюсы:

Это добавит только server-stop.sh, поскольку вы намерены Это не изменит вашу переменную $PATH. Другие пользователи вашей системы не затронуты

Плюсы:

Это добавит только server-stop.sh, когда вы намереваетесь

. Это добавит только server-stop.sh, как вы намереваетесь

1
задан 13 April 2017 в 15:37

1 ответ

Если вы вызываете sudo с -i, вы получите его root.

Если вы хотите, чтобы sudo наследовал от текущей среды, вы могли бы просто установить что-то еще.

Итак, используйте sudo -i command или do HOME=/wherever sudo command.

Например:

sudo -i sh -c 'echo $HOME'

Что дает вам:

/root

Или: [ ! d5]

HOME=/foo sudo sh -c 'echo $HOME'

Что дает вам:

/foo
4
ответ дан 23 May 2018 в 03:18
  • 1
    Спасибо за ответ, есть ли способ изменить переменную HOME для sudo ing без необходимости вводить что-то лишнее в командной строке? Ваше решение разбивает скрипты, которые просто вызывают sudo без -i или явного назначения HOME. – FriendFX 16 December 2016 в 08:23
  • 2
    На самом деле, нет. Выбор заключается в том, чтобы либо наследовать среду или среду целевого пользователя. Однако вы всегда можете сделать сценарий оболочки, который вы вызываете, вместо того, чтобы вводить его каждый раз. Если вы не хотите нарушать скрипты, вы можете использовать псевдоним, который вызывает скрипт и настраивает среду. – Stephen 17 December 2016 в 03:01

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

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