Позволяет говорят, что кто-то сидит позади моего ноутбука в течение секунды и выполнений:
alias cd='Ha Ha, Got You :))'
или мы запускаем неизвестное программное обеспечение/сценарий/и т.д., и оно добавляет что-то к ~/.bashrc
. как:
alias sort='rm -rf ~'
Это только примеры aliases
; Как Вы знаете, эти вещи также могут быть сделаны с помощью функций:
cd(){ echo "Removing everything you've got :D"; }
Эти ситуации являются просто мнимыми примерами, считают что-либо подобным.
Что относительно маленького сценария?
sudo -n ls &>/dev/null
if [ "$?" -eq "0" ]
then
sudo "Some dangerous command"
else
cd $1
fi
Затем alias cd="/home/user/.config/gtk/.cd.sh"
.
Для команд, которые были, работал в ударе, мы можем просто закрыть и вновь открыть наш терминал, но что относительно тех, которые установили в файлах запуска, мы не можем проверить файлы или список псевдонимов/функций каждый раз, когда мы выполняем терминал.
Bash имеет набор конфигурации (иначе запуск) файлы, это использует эти файлы для установки определенной среды для каждого пользователя.
Некоторые из этих файлов расположены в /etc
, один из них, что я знаю, /etc/profile
, это - глобальный конфигурационный файл, и его настройки будут применены во все сессии, другой /etc/bash.bashrc
; Мы не должны работать вокруг этих файлов из-за их местоположения, они уже защищены и только базируются, имеет права отредактировать их.
Очень важный каталог, который может помочь нам много: /etc/skel
; Каждый раз, когда Вы создаете нового пользователя с корневым каталогом, файлы в рамках этого каталога будут использоваться в качестве каркаса для корневого каталога Вашего нового пользователя.
ls -a /etc/skel
.bash_logout .bashrc .profile
Мы можем также использовать dpkg
найти об этих файлах:
$ dpkg -L bash | grep etc
/etc/skel/.bashrc
/etc/skel/.bash_logout
/etc/skel/.profile
/etc/bash.bashrc
мы видим, что они все установлены bash
.
Псевдоним или функция могут быть установлены в любом из этих файлов, таким образом позвольте, видят, как эти файлы будут использоваться bash
.
От bash
страница справочника:
Когда удар вызывается как интерактивная оболочка входа в систему, или как неинтерактивная оболочка с - опция входа в систему, он сначала читает и выполняет команды из файла/etc/profile, если тот файл существует. После чтения того файла это ищет
~/.bash_profile
,~/.bash_login
, и~/.profile
, в том порядке, и чтениях и командах exe‐cutes от первой, которая существует и читаема.
таким образом, порядок: ~/.bash_profile > ~/.bash_login > ~/.profile
Когда оболочка входа в систему выходит, удар читает и выполняет команды из файла ~/.bash_logout, если это существует.
этот будет выполнен каждый раз, когда мы выходим от оболочки входа в систему, я не вижу, как этот может иметь любые эффекты на нашу ситуацию.
Когда интерактивная оболочка, которая не является оболочкой входа в систему, запускается, удар читает и выполняет команды от/etc/bash.bashrc и ~/.bashrc, если эти файлы существуют.
таким образом, самый важный fiel ~/.bashrc
, потому что почти 90% оболочек удара, которые мы выполняем, находятся в интерактивном и режиме без входов в систему. и если мы взглянули на этот файл, мы видим, что он будет искать другой названный файл ~/.bash_aliases
, если это смогло определить местоположение его, то это будет source
тот файл также.
В первую очередь, мы должны переместиться ~/.profile
кому: ~/.bash_profile
иначе это не делает вопросов, если мы защищаем ~/.profile
файл, кто-то может создать a ~/.bash_profile
и это будет переопределять наши конфигурации, таким образом:
mv ~/.profile ~/.bash_profile
После этого, если Вы не используете a ~/.bash_aliases
файл затем создает его, снова как вышеупомянутый, кто-то может просто создать этот файл и существует шанс, что он может измениться или псевдонимы в нем.
touch ~/.bash_aliases
Наконец используйте chattr
защищать эти файлы от редактирования и удаления.
От chattr
страница справочника:
Файл со 'мной' приписывает, не может быть изменен: это не может быть удалено или переименовано, никакая ссылка не может быть создана в этот файл, и никакие данные не могут быть записаны в файл. Только суперпользователь или процесс, обладающий возможностью CAP_LINUX_IMMUTABLE, могут установить или очистить этот атрибут.
sudo chattr +i ~/.bash_profile ~/.bashrc ~/.bash_aliases
Мы сделаны, не забывайте, что каждый раз, когда Вы хотите отредактировать эти файлы, необходимо сначала удалить -i
атрибут.
Сбросьте все без терминала завершения/повторного открытия
Другое обходное решение, создавая файл:
sudo touch /usr/local/bin/reload_aliases
Поместите свои псевдонимы там:
unalias -a
alias x='...'
alias b='...'
Удостоверьтесь, что никто не может записать в тот файл:
sudo chmod a=r,x /usr/local/bin/reload_aliases
Теперь каждый раз Вы хотите перезагрузить все выполненное:
/usr/local/bin/reload_aliases
И если Вы когда-нибудь передумали:
sudo chattr -i ~/.bash_profile ~/.bashrc ~/.bash_aliases
mv ~/.bash_profile ~/.profile
rm ~/.bash_aliases # if you don't use it
Если Вы сделаете глупые вещи (уйдите, не блокируя экран, вслепую запустите неосмотренные скрипты из недоверяемых источников, и т.д.), то Вы получите плохие результаты.
Попытка быть достаточно умным для восстановления с плохих методов никогда не работала прежде.