sudo = безопасность

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

Зачем?? Если, к примеру, надо дать право запускать только одну-две команды?

Для выделения привилегированных ресурсов конкретному пользователю системы используется sudo.

sudo (англ. superuser [substitute user] do, дословно «выполнить от имени суперпользователя») — это программа, разработанная в помощь системному администратору и позволяющая делегировать те или иные привилегированные ресурсы пользователям с ведением протокола работы. Основная идея — дать пользователям как можно меньше прав, но при этом ровно столько, сколько необходимо для решения поставленных задач.

по материалам Википедии

В Ubuntu sudo используется по умолчанию, при этом аккаунт администратора отключен. В других дистрибутивов sudo необходимо устанавливать. Например в Archlinux:

yaourt -S sudo

После чего пакет необходимо настроить. Для этого производиться редактирование файла /etc/sudoers. Не пытайтесь редактировать его непосредственно! Для редактирования файла существует специальная команда visudo, которая вызывает текстовый редактор vi для редактирования файла /etc/sudoers, все изменения записываются во временный файл и при попытке сохранения файла производиться проверка синтаксиса, и если все нормально, то производиться замещение существующего файла новой копией, а в случае ошибки выдается предупреждение, и дается возможность исправить ошибку. Если записать файл, проигнорировав предупреждение, то получим не работающую sudo.

Сразу после установки команда sudo не доступна ни одному из пользователей. Необходимые привелегии нужно задавать в файле конфигурации. Для передачи прав администратора обычно используется группа wheel. В Archlinux после установки sudo нужно назначить группу wheel определенным пользователям:

gpasswd -a user wheel

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

# sudoers file.
#
# This file MUST be edited with the ‘visudo’ command as root.
# Failure to use ‘visudo’ may result in syntax or file permission errors
# that prevent sudo from running.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification

# Defaults specification

# Runas alias specification

# User privilege specification
root    ALL=(ALL) ALL

# Uncomment to allow people in group wheel to run all commands
%wheel  ALL=(ALL) ALL

# Same thing without a password
# %wheel        ALL=(ALL) NOPASSWD: ALL

%wheel  ALL = NOPASSWD: /sbin/shutdown,/sbin/poweroff,/sbin/reboot
%wheel  ALL = NOPASSWD: /usr/bin/pacman
%wheel  ALL = NOPASSWD: /usr/bin/pacdiffviewer,/usr/bin/pacman-color

# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now

Я не задавал алиасы, которые используются для упрощения описания конфигурации. Более подробно по конфигурации с алиасами можно посмотреть здесь.

Как видно из приведенного файла конфигурации, права администратора выдаются пользователю root и группе wheel. Причем пользователи группы wheel при использовании команды sudo должны будут использовать СВОЙ пароль для подтверждения права использования привилегированных ресурсов. А в случае использовании команд shutdown, poweroff, reboot, pacman, pacdiffviewer и pacman-color ввод пароля не требуется.

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

И еще, в дополнение:

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

Программу критикуют, в частности, что невозможно выполнять некоторые команды. К примеру:

sudo cat sources.list > /etc/apt/sources.list

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

cat sources.list | sudo tee /etc/apt/sources.list

так-же ничто не мешает выполнить шелл с административными правами и используя параметр шела -с выполнить взяв строку к выполнению в кавычки:

sudo sh -c 'cat sources.list > /etc/apt/sources.list'

или же попасть в шелл интерактивно аналогично работе su используя параметр -s

sudo -s

или выполнив

sudo sh

по материалам Википедии

Похожие записи:

  1. безопасность wordpress
  2. yaourt – установка и использование
  3. archlinux – сборка ядра
  4. pdnsd – локальный кэширующий dns сервер
  5. xf86-video-intel 2.6.1

Метки: archlinux, Linux, Soft, Безопасность

Вы можете оставить свой комментарий...

Имя (required)
Почта (обязательно)
Сайт