Насколько я знаю, и, похоже, другие люди придерживаются того же мнения sudo
- это команда, которая выполняет что-то с правами администратора.
Однако, когда я запускаю rcconf
, я вижу эту строку:
[*] sudo Provide limited super user privileges to specific users
Так какой смысл в этом сервисе? Или это даже услуга?
Чтобы отозвать «кэшированные» действия аутентификации пользователей при перезагрузке. Это не демон, просто скрипт, запускаемый во время загрузки.
Изучив файл инициализации /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
sudo
сервисный файл существует, чтобы удостовериться, что требовавшиеся полномочия не остаются после перезагрузки. В основном это гарантирует, что после перезагрузки, обычные пользователи, которые призвали к корневым полномочиям, останутся как обычные пользователи.
Подробное объяснение о sudo
Все объяснение ниже должно получить всю информацию для всех, которые читают этот вопрос и затем объяснить, что sudo файл в сервисной папке делает там.
Когда Вы устанавливаете Ubuntu или любой другой дистрибутив, который использует sudo
различие между тем, чтобы быть базируется и быть пользователем, который использует sudo
для получения "корня как" полномочия (Административный пользователь или Полномочия суперпользователя) следующее:
Как корень
Как 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
команды как корень, не прося пароль.