Ubuntu — Настраиваем sudo или верните root'а назад
Уровень статьи: для начинающего пользователя
Что в этом мне не нравится? Я привык, что пользователь - это пользователь, а администратор - это администратор. И кислое с зелёным в одной кастрюле мешать не стоит. А получается, что первый пользователь имеет полные админские права к компу.
Я с этим просто категорически не согласен. Это получается как во всем известной ОС, а такой подход - одна из самых больших дыр в её безопасности. Я у себя такую дыру иметь не желаю, поэтому я решил поправить ситуацию, то есть вернуть всё на круги своя - сделать так, как оно есть в подавляющем большинстве NIX систем.
ВНИМАНИЕ! Крайне не рекомендуется открывать файл sudoers руками. Намного лучше сделать это командой visudo.
Описание синтаксиса есть в man sudoers. Не смотря на то, что я очень неплохо знаю английский, мне было тяжело читать этот мануал - как-то очень мудрёно он написан. Поэтому я читал перевод на Opennet'е.
Вот какой файл я сворганил себе пока:
Разберём для понятности.
В секции Defaults:
env_reset - сброс переменных окружения, которые были у пользователя, который дал команду sudo (насколько я понял);
rootpw - будет спрашиваться пароль root'а, а не пользователя;
timestamp_timeout=0 - введённый пароль не будет храниться, при следующей команде опять попросят ввести пароль;
editor=/usr/bin/vim - текстовый редактор, в котором будет открываться файл sudoers по команде visudo.
Cmnd_Alias DAEMON = /etc/init.d/* - я группирую всех демонов в группу DAEMON.
root ALL=(ALL) ALL - root может делать всё.
anjolio ALL = DAEMON, /bin/ls, /bin/cat - anjolio может производить операции с демонами и запускать команды ls и cat.
Теперь anjolio - пользователь, который при знании пароля root'а может кое-что покрутить и не более.
Root - теперь глава всему, он царь и бог системы.
Изначально поставленная цель достигнута.
Введение
В ubuntu по умолчанию следующие настройки системы:- Пароль от суперпользователя (root'a) скрыт от пользователя. Поговаривают, что он меняется при каждом запуске системы.
- Всё администрирование системы осуществляется от имени пользователя, аккаунт которого был заведён при установке (uid=1000).
- Для выполнения каких-либо административных действий требуется ввести пароль первого пользователя (uid=1000).
- Все административные действия в консоли выполняются с помощью команды sudo.
- Зайти от имени root'а по команде su нельзя, т.к. пароль не установлен.
- Зайти от имени root'а можно по команде sudo -s.
- После ввода пароля пользователя на запрос sudo, этот пароль запоминается на 15 минут и в течении этого времени можно выполнять любые команды с помощью sudo - пароль не потребуется.
Что в этом мне не нравится? Я привык, что пользователь - это пользователь, а администратор - это администратор. И кислое с зелёным в одной кастрюле мешать не стоит. А получается, что первый пользователь имеет полные админские права к компу.
Я с этим просто категорически не согласен. Это получается как во всем известной ОС, а такой подход - одна из самых больших дыр в её безопасности. Я у себя такую дыру иметь не желаю, поэтому я решил поправить ситуацию, то есть вернуть всё на круги своя - сделать так, как оно есть в подавляющем большинстве NIX систем.
Средства
1 2 3 4 5 |
man sudo |
Решение
- Первым делом делаем sudo -s, далее passwd и задаём пароль для суперпользователя. Теперь мы можем входить в систему под ним как из консоли, так и по команде su.
- От рута даём команду visudo и приводим файл в соответствие с предпочтениями.
ВНИМАНИЕ! Крайне не рекомендуется открывать файл sudoers руками. Намного лучше сделать это командой visudo.
Описание синтаксиса есть в man sudoers. Не смотря на то, что я очень неплохо знаю английский, мне было тяжело читать этот мануал - как-то очень мудрёно он написан. Поэтому я читал перевод на Opennet'е.
Вот какой файл я сворганил себе пока:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# Переменные |
Разберём для понятности.
В секции Defaults:
env_reset - сброс переменных окружения, которые были у пользователя, который дал команду sudo (насколько я понял);
rootpw - будет спрашиваться пароль root'а, а не пользователя;
timestamp_timeout=0 - введённый пароль не будет храниться, при следующей команде опять попросят ввести пароль;
editor=/usr/bin/vim - текстовый редактор, в котором будет открываться файл sudoers по команде visudo.
Cmnd_Alias DAEMON = /etc/init.d/* - я группирую всех демонов в группу DAEMON.
root ALL=(ALL) ALL - root может делать всё.
anjolio ALL = DAEMON, /bin/ls, /bin/cat - anjolio может производить операции с демонами и запускать команды ls и cat.
Итог
Все описанные во введении проблемы решены благополучно.Теперь anjolio - пользователь, который при знании пароля root'а может кое-что покрутить и не более.
Root - теперь глава всему, он царь и бог системы.
Изначально поставленная цель достигнута.