В чем разница между SUDO и переходом на root [дубликат]

На этот вопрос уже есть ответ здесь:

Если я задам вопрос a

sudo /bin/bash`  
[sudo] password for mark:
cmp -bl /dev/blah1 /dev/blah2

и используя

sudo cmp -bl /dev/blah1 /dev/blah2

, а затем войдя в систему как root?

Я не вижу, что отличается, если вводить несколько командных строк, затем root ИМХО кажется логичным вариантом вместо ввода префикса sudo для команды линий.

Я видел, как sudo -i использовался для входа в систему с правами суперпользователя, который раньше работал, но на прошлой неделе он выдавал ошибку.

** РЕДАКТИРОВАТЬ **

Я вошел в систему как root, выполнил команду

mark@mark-zotac:~$ sudo cmp -bl /dev/sda "/media/mark/Seagate Expansion Drive/SSD/ssd.img"
[sudo] password for mark: 
mark@mark-zotac:~$

Она запустилась, потребовалось около 30 минут, но выдала ноль , как в ничего вывод. У меня нет никаких признаков неудачи или успеха ... Итак, как мне узнать, был ли результат сравнения успешным?


6
задан 5 March 2015 в 12:03

2 ответа

Следующее было извлечено непосредственно из общественной страницы Wiki на корне sudo.

sudo позволяет пользователю действовать как корень без корневого входа в систему; это более безопасно для использования sudo вместо того, чтобы войти в систему как корень.

Преимущества и недостатки

Преимущества использования sudo

Существует много преимуществ для Ubuntu, оставляя корневые логины отключенными по умолчанию, включая:

  1. Установщик имеет меньше вопросов спросить.
  2. Пользователи не должны помнить дополнительный пароль за случайное использование (т.е. пароль root). Если бы они сделали, то они, вероятно, забыли бы это (или записали бы его небезопасно, позволив любому легко расколоться в их систему).
  3. Это избегает, "Я могу сделать что-либо" интерактивный вход в систему по умолчанию. Вам предложат пароль, прежде чем любые существенные изменения смогут произойти, который должен заставить Вас думать о последствиях того, что Вы делаете.
  4. sudo добавляет запись в журнале выполненной команды (команд) (в /var/log/auth.log). Если Вы портите, можно возвратиться и видеть, какие команды были выполнены.
  5. На сервере каждый взломщик, пробующий к "в лоб", их путь в будет знать, что имеет учетную запись, названную корнем, и попробует это сначала. То, что они не знают, - каковы имена пользователей Ваших других пользователей. Так как корневой пароль учетной записи заблокирован, это нападение становится чрезвычайно бессмысленным, так как нет никакого пароля, чтобы взломать или предположить во-первых.
  6. Позволяет легкую передачу для прав администратора путем добавления и удаления пользователей из групп. При использовании единственного пароля root единственный путь к de-authorize пользователям состоит в том, чтобы изменить пароль root.
  7. sudo может быть установка с намного более мелкомодульной политикой безопасности.
  8. Корневой пароль учетной записи не должен быть совместно использован со всеми, кто должен выполнить некоторый тип задачи (задач) администрирования в системе (см. предыдущий маркер).
  9. Аутентификация автоматически истекает после короткого времени (который может быть установлен на так мало как желаемый или 0); таким образом, если Вы убегаете от терминала после выполнения команд как корневое использование sudo, Вы не будете оставлять корневой терминал открытым неограниченно долго.

Оборотные стороны использования sudo

Хотя для рабочих столов преимущества использования sudo являются большими, существуют возможные проблемы, которые должны быть отмечены:

  1. Перенаправление вывода команд, выполненных с sudo, требует другого подхода. Например, рассмотрите sudo ls > /root/somefile не будет работать, так как это - оболочка, которая настраивает перенаправления, который пытается записать в тот файл, не команду, выполняемую с корневым разрешением. Можно использовать

    ls | sudo tee -a /root/somefile
    

    добавлять, или

    ls | sudo tee /root/somefile
    

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

    sudo sh -c "ls > /root/somefile"
    
  2. В большом количестве офисных сред ЕДИНСТВЕННЫЙ локальный пользователь в системе является корнем. Все другие пользователи импортируются с помощью методов NSS, таких как nss-ldap. Устанавливать рабочую станцию или фиксировать его, в случае отказа сети где nss-ldap повреждается, корень требуется. Это имеет тенденцию оставлять систему неприменимой, если не взломано. Дополнительный локальный пользователь или включенный пароль root необходимы здесь. Учетная запись локального пользователя должна иметь свой $HOME на локальном диске, не на NFS (или любая другая сетевая файловая система), и a .profile / .bashrc это не ссылается ни на какие файлы на NFS, монтируется. Это обычно имеет место для корня, но при добавлении некорневой спасательной учетной записи, необходимо будет принять эти меры предосторожности вручную. Однако преимущество использования локального пользователя с sudo это управляет, может быть легко прослежен, как упомянуто в преимуществах выше.

Неправильные представления о корневом входе в систему

  1. Не sudo менее безопасный, чем su?

    Основная модель обеспечения безопасности является тем же, и поэтому эти две системы совместно используют свои основные слабые места. Любой пользователь, который использует su или sudo должен считаться привилегированным пользователем. Если учетная запись того пользователя поставлена под угрозу взломщиком, взломщик может также получить полномочия пользователя root в следующий раз, когда пользователь делает так. Учетная запись пользователя является слабым звеном в этой цепочке и так должна быть защищена с той же осторожностью как корень.

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

  2. Я не смогу перейти к однопользовательскому режиму!

    sulogin программа в Ubuntu исправляется для обработки случая по умолчанию заблокированного пароля root.

  3. Я могу получить корневую оболочку от консоли, не вводя пароль!

    Необходимо ввести пароль.

    Пользователи консоли имеют доступ к загрузчику и могут получить административные привилегии различными способами во время процесса начальной загрузки. Например, путем определения альтернативы init (8) программа. Системы Linux обычно не настраиваются, чтобы быть безопасными в консоли, и дополнительные шаги (например, устанавливая пароль root, пароль загрузчика и пароль BIOS) необходимы для создания их так. Обратите внимание, что пользователи консоли обычно имеют физический доступ к машине и так могут управлять им другими способами также.

Специальные замечания на sudo и оболочках

Ни один из методов ниже не предлагается или поддерживается разработчиками Ubuntu.

Не предлагайте это другим, если Вы лично не доступный 24/7 для поддержки пользователя, если у них есть проблемы в результате выполнения оболочки как корень.

Для запуска корневой оболочки (т.е. командное окно, куда можно выполнить корневые команды), среда стартового корня и сценарии входа в систему, используйте:

  • sudo -i (подобный sudo su - , дает Вы базируетесь настройка среды),

Чтобы запустить корневую оболочку, но сохранить среду текущей оболочки, используйте:

  • sudo -s (подобный sudo su)

Вот краткий обзор некоторых различий между su, su -, и sudo -{i,s}

                HOME=/root      uses root's PATH     env vars
sudo -i         Y               Y[2]                 N
sudo -s         N               Y[2]                 Y
sudo bash       N               Y[2]                 Y
sudo su         Y               N[1]                 Y

[1] PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games  (probably set by /etc/environment)

[2] PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
15
ответ дан 23 November 2019 в 07:17

Вопрос не имеет ничего связанного с различием между sudo и su.

страница справочника cmp чтения:

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

, Таким образом, никакой вывод не означает, что эти два файла являются тем же.

4
ответ дан 23 November 2019 в 07:17

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

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