Что делает сервис sudo?

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

Однако, когда я запускаю rcconf, я вижу эту строку:

[*] sudo    Provide limited super user privileges to specific users

Так какой смысл в этом сервисе? Или это даже услуга?

17
задан 13 April 2017 в 15:24

2 ответа

Краткий ответ

Чтобы отозвать «кэшированные» действия аутентификации пользователей при перезагрузке. Это не демон, просто скрипт, запускаемый во время загрузки.


Обширный ответ

Изучив файл инициализации /etc/init.d/sudo, который «запускает службу», вы можете легко увидеть, что он делает:

case "$1" in
  start)
        # make sure privileges don't persist across reboots
        if [ -d /var/lib/sudo ]
        then
                find /var/lib/sudo -exec touch -t 198501010000 '{}' \;
        fi
        ;;
  stop|reload|restart|force-reload)
        ;;
  *)
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

Итак, в основном, он просто касается некоторых файлов в /var/lib/sudo при запуске системы, чтобы получить очень старую метку времени модификации. В результате «кэшированные» действия аутентификации отменяются при запуске службы (что происходит при загрузке).

Еще немного подробностей о каталоге /var/lib/sudo и этих отметках времени, пожалуйста? Ну, из карты sudo(8) :

[...]
Once a user has been authenticated, a time stamp is updated and the
user may then use sudo without a password for a short period of time
(15 minutes unless overridden in sudoers).
[...]
Since time stamp files live in the file system, they can outlive a
user's login session.  As a result, a user may be able to login, run a
command with sudo after authenticating, logout, login again, and run
sudo without authenticating so long as the time stamp file's
modification time is within 15 minutes (or whatever the timeout is set
to in sudoers).
[...]
/var/lib/sudo           Directory containing time stamps
0
ответ дан 13 April 2017 в 15:24

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


Подробное объяснение о sudo

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

Когда Вы устанавливаете Ubuntu или любой другой дистрибутив, который использует sudo различие между тем, чтобы быть базируется и быть пользователем, который использует sudo для получения "корня как" полномочия (Административный пользователь или Полномочия суперпользователя) следующее:

Как корень

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

Как sudo

  • Вас просят относительно пароля для каждого или всех команд, Вы работаете на сессии. Например, если Вы откроете терминал и выполните команду, для которой нужны административные привилегии, то это попросит у пароля однажды той сессии, пока Вы не закроете терминал или выход из системы. Это варьируется, в зависимости от какой команды Вы используете и где. Это могло бы спросить однажды или многократно.
  • Все команды, которые Вы выполняете, будут зарегистрированы, так как Вы на самом деле просите разрешение использовать суперпользователь привилегированная команда.
  • Система принимает Вас, просьба e о разрешении временно и административном праве будет предоставлена временно (Пока Вы не выйдете из системы, закрываете терминал и т.д.)
  • У Вас есть последняя опция исправить любую ошибку. Это сделано в момент, Вас просят относительно пароля.

Почему SUDO был Создан

Создание SUDO было сделано, потому что в прошлом использование корня создало больше проблем, чем решения. У пользователей были все права, которые означали что, если они сделали однажды пружиной очистку и буквально удалили /usr, /lib и /bin папки (потому что они думали, что сделали не нужный их).. угадайте то, что произошло бы. Много проблем в прошлом состояли в том, потому что пользователи не знали власть, которую они имели при использовании корня. В основном они имели корень, но не поняли Linux, иерархию файловой системы, какие файлы были важны и т.д. (Что-то как наличие Феррари и не знание, как управлять... в магистрали!)

SUDO также используется приложениями для GUI (Как Менеджер обновлений), когда им нужны временные административные привилегии сделать что-то. Им только нужен он для определенного объема команд (Обычно 1), и затем они возвращаются к полномочию уровня пользователя. Это должно постараться не иметь полномочия пользователя root все время и стараться не делать ошибку, если пользователь решает удалить некоторую важную часть системы.

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

Наконец, если у Вас есть Настольный ПК или Сервер, Вы действительно не хотите, чтобы все были корнем, ни имели все административные привилегии. Очень плохая идея, если бы Ваша младшая сестра или маленькие братья начинают задаваться вопросом, что произошло бы если /boot встреченная клавиша DEL. Это то, где sudo входит для уменьшения шанса, что-то плохо происходит.

Что действительно Предоставляет ограниченные полномочия суперпользователя определенным средним пользователям?

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

Для получения информации о том, как использовать sudoers тип файла man sudoers в терминале. Например, нормальный формат:

ПОЛЬЗОВАТЕЛЬСКИЙ ХОСТ = КОМАНДЫ

Например, cyrex server1 = /bin/ls даст пользователю cyrex в хосте server1 доступ для выполнения команды ls.

Например, cyrex server1 (root) = /bin/ls даст пользователю cyrex в хосте server1 доступ для выполнения команды ls как корня.

Например, cyrex ALL = /bin/ls даст пользователю cyrex во всем доступе хостов для выполнения команды ls.

Например, cyrex ALL = ALL даст пользователю cyrex во всем доступе хостов для выполнения всех команд.

Например, luis ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killall позволит мне выполнять sudo для kill и killall команды как корень, не прося пароль.

enter image description here

12
ответ дан 13 April 2017 в 15:24

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

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