Можно ли использовать cd ../ .. как псевдоним?

Это сложный вопрос. В системе Ubuntu существует множество различных уровней безопасности, от сложных фреймворков, таких как AppArmor, до смиренных переменных ядра, таких как mmap_min_addr. Вы можете добавить некоторые функции ядра, такие как рандомизация памяти в миксе. Вы можете найти их список вместе с быстрыми пояснениями к Ubuntu Wiki.

Еще один важный фактор заключается в том, что обновления бывают быстрыми и легкими - поэтому большинство компьютеров будут обновлены до последних исправлений безопасности. [ ! d2]

Насколько я знаю, злоумышленник, получивший локальный доступ к вашему компьютеру, имеет три способа масштабирования привилегий ядра:

Исправить пароль. Но это будет очень сложно, пароль хранится в зашифрованном виде, используя алгоритмы без известного недостатка. Это потребует времени, чтобы взломать его. Ошибка в ядре. Но все функции безопасности ядра будут мешать. Обманите пользователя, чтобы отдать пароль, т. Е. Социальная инженерия. Просто покажите фальшивый диалог с паролем или используйте другой трюк. Это самый простой способ сделать это.

Третий момент - самая слабая уязвимость прямо сейчас.

1
задан 28 September 2014 в 02:44

3 ответа

Вы не можете использовать слэши в псевдониме. Однако Bash позволяет им в именах функций, поэтому вы можете сделать эту функцию:

cd../.. () { cd ../..; }

Вы не можете использовать обратную косую черту в псевдониме или имени функции. Символ обратной косой черты цитирует следующий символ, поэтому cd..\.. анализируется как cd...., задолго до того, как эта строка будет выглядеть как имя команды. Если вы хотите вызвать команду с именем cd..\.., вам нужно ввести cd..\\.., 'cd..\..' или что-то подобное. Кроме того, имя команды, которое было процитировано каким-либо образом, не рассматривается для поиска псевдонима, поэтому вы никогда не сможете использовать псевдоним, содержащий обратную косую черту. Bash также не допускает обратную косую черту в именах функций. Поскольку cd..\.. анализируется как cd...., вы можете определить функцию с именем cd.... (как указано выше).

Если вы используете команду cd, вам нужно будет ввести пробел после он, как и любая другая команда. Но вы можете сохранить ввод, не набрав cd вообще. Установите опцию autocd со следующей строкой в ​​~/.bashrc:

shopt -s autocd

Затем вы можете ввести имя каталога в командной строке, а «выполнить» этот каталог изменится на нее.

~/some/sub/directory$ ../..
~/some$ 
12
ответ дан 24 May 2018 в 03:20
  • 1
    Если я сделаю shopt вещь, я, вероятно, скоро пропущу эту функциональность в Windows :-) – Thomas Weller 28 September 2014 в 03:01
  • 2
    Хм, это неправда. Разрешения принимаются в именах функций bash. – alexis 28 September 2014 в 04:22
  • 3
    @alexis А, правильно, вы можете использовать косые черты в bash. Исправлено, спасибо. – Gilles 28 September 2014 в 04:28
  • 4
    @ThomasW. Конечно ты будешь. autocd была одной из причин, по которым я переключился на zsh, назад, когда у bash этого не было. Единственный достойный способ использовать Windows - это установить Cygwin в любом случае, в комплекте с zsh. – Gilles 28 September 2014 в 04:29

«Вы не можете использовать слэши в псевдониме или имени функции»? Это новость для меня. Я использую следующую функцию оболочки в течение многих лет в Linux и OS X bash и никогда не испытывал никаких проблем:

function ../.. { cd ../..; echo "$PWD"; }

Естественно, cd../.. также является прекрасным именем функции. В имени функции оболочки используется косая черта или функция .

Что касается версии обратной косой черты, вы не можете вставлять ее в псевдоним или имя функции, но вам не нужно: Когда вы вводите cd..\.., bash интерпретирует обратную косую черту как escape и пытается выполните результат cd..... Поэтому определите это, и вы сможете делать все, что вам нужно. Добро пожаловать.

function cd.... { cd ../..; } 
4
ответ дан 24 May 2018 в 03:20

Если вы хотите сохранить псевдонимы, почему бы просто не сделать:

alias   ..='cd ..'
alias  ...='cd ../../' 
alias ....='cd ../../../'

Или, если вам нужно вернуться назад:

alias   .3='cd ../../../' 
alias   .4='cd ../../../../'
alias   .5='cd ../../../../../'
# how far back do you need to go on a normal basis..?

Не знаю, насколько хорошо что поможет вам сохранить умственную синхронизацию с вашим мозгом Windows, но это по-прежнему кажется простым способом. (По крайней мере, для тех из нас, кому посчастливилось не беспокоиться о том, как все делается на Windows.)

2
ответ дан 24 May 2018 в 03:20

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

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