псевдоним или нано-B не работающий, используя sudo

Мне настраивали псевдоним

alias nano='nano -B'

чтобы всегда делать резервные копии на изменении файлов.

Я сделал это в обоих /home/<USER>/.bashrc и в /root/.bashrc.

Это работает, если я использую

nano someFile

любой как <USER> или root.

Но когда я использую

sudo nano someFile

как <USER> резервные копии не сделаны. (I'ld ожидают находить someFiles~ в той же папке)

Есть ли дополнительное .bashrc или что-то для sudo где я должен добавить это alias?

1
задан 9 November 2017 в 15:47

1 ответ

Псевдонимы Вашего идентификатора пользователя не используются через sudo

  • Вы можете или не можете хотеть использовать прием, связанный с в комментариях.

  • Могли бы быть причины не иметь никаких псевдонимов или других псевдонимов для root.

    Эти псевдонимы могут быть сохранены в /root/.bashrc поскольку Вы уже знаете. Они могут использоваться, когда Вы работаете в интерактивном режиме при корневой подсказке # после

    sudo -i  # activates root's aliases
    

но они не активируются при сопровождении псевдонимом на командной строке

    sudo -i <specific alias>  # does not activate root's aliases
    sudo -H <specific alias>  # does not activate root's aliases

Примеры:

$ LANG=C sudo -i

root@xenial32:~# alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'

root@xenial32:~# grep -e ^alias -e \ alias /root/.bashrc
# enable color support of ls and also add handy aliases
    alias ls='ls --color=auto'
    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

Используя один из rootпсевдонимы

root@xenial32:~# l
bin@  extractor.log  logfile.tar  mkusb.log

root@xenial32:~# exit
logout

sudodus@xenial32 ~ $ LANG=C sudo -i l
-bash: l: command not found

[127] sudodus@xenial32 ~ $ LANG=C sudo -H l
sudo: l: command not found

[1] sudodus@xenial32 ~ $ LANG=C sudo -i alias
sudodus@xenial32 ~ $ 

Я не использовал бы alias sudo='sudo -i' потому что

  • существует риск, что Вы забываете, что имеете полномочия суперпользователя и можете сделать вещи, которые необходимо только сделать с регулярными полномочиями. Другими словами, я сказал бы, что это побеждает цель sudo всегда переходить к корневой подсказке

  • псевдоним не работает так или иначе над командной строкой с sudo -i <specific alias>

  • часто эффективно использовать sudo со стандартными настройками для команд текстового режима

  • поскольку GUI управляет, чтобы я рекомендовал бы sudo -H или gksudo

1
ответ дан 7 December 2019 в 15:27

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

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