Почему мы используем su – и не только su?

Я не понимаю, почему su - предпочтительнее su для входа в систему как root.

  • Почему sudo su работает, но su нет?
  • rsync как другой пользователь
  • Как переключить пользователя без ссылок на старый?
  • Можно ли установить su для использования диалогового окна WE password
  • Измените пользователя и загрузите всю среду в сценарий оболочки
  • Как команда su маскирует / защищает мой пароль от отображения на экране?
  • Есть ли графический инструмент sudo (kdesudo, gksudo, su-to-root, ...), который работает без пароля?
  • Почему мы не можем выполнять список команд как пользователь без sudo?
  • 2 Solutions collect form web for “Почему мы используем su – и не только su?”

    su - вызывает оболочку входа после переключения пользователя. Оболочка для входа сбрасывает большинство переменных окружения, обеспечивая чистую базу.

    su просто переключает пользователя, обеспечивая нормальную оболочку с средой, почти такой же, как со старым пользователем.

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

     $ 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 - вместо этого.

    su - вас в качестве root, тогда как su делает это так, что вы притворяетесь root.

    Наиболее очевидным примером этого является то, что ~ является корневым каталогом root, если вы используете su - , но ваш собственный домашний каталог, если вы используете su .

    В зависимости от вашей системы это может также означать различия в файле подсказки, PATH или истории.

    Поэтому, если вы являетесь частью команды, управляющей системой, и ваш коллега дает вам команду для запуска, вы знаете, что она будет работать одинаково, если вы оба используете su - , но если вы оба используете su , могут быть различия из-за для вас есть разные конфигурации оболочки.

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

    Также не забывайте о sudo , у которого есть опция -s чтобы запустить оболочку с правами root. Конечно, у этого есть и другие правила, и они меняются в зависимости от того, какое распределение вы используете.

    Interesting Posts

    Половина букв всех слов отсутствует.

    Сохраняйте количество ресурсов для виртуальной консоли (Ctrl + Alt + Fx)

    Zypper cmd для запроса версий репозитория пакета

    Разница между командой multipath -ll и командой multipath -l

    Как использовать GNU Parallel для этого цикла while?

    Как исправить ошибку «xrandr: Не удалось получить размер гаммы для вывода по умолчанию» на Ubuntu 14.04?

    Изменение размера корневого раздела Arch в gparted

    Калибровка событий на экране планшета evdev

    Возможности варианта Linux Heartbeat

    cat to stderr при чтении до конца маркера файла

    Зафиксировать название терминала после удаленного входа SSH на другую машину

    Почему mencoder выводит неподвижные изображения, если я пытаюсь закодировать их под 3 FPS, в то время как mencoder выводит динамические изображения, если я выводил их при 3 FPS или более?

    Печать статистики текстового файла

    Не удается загрузить новую Linux с USB-устройства

    sudo NOPASSWD игнорируется

    Linux и Unix - лучшая ОС в мире.