Кто такой root?
В отличие от ОС Windows, которые работают по принципу "Машина умнее человека", в результате чего некоторые вещи приходится делать с известной долей проблем (например, попробуйте создать резервную копию реестра), в Linux есть такая учётная запись, как root, зайдя под которой, можно сделать с системой всё, что угодно (особенно, если пользователь не знает, что творит). Поэтому при обычной работе никогда не используйте учётную запись root! Старайтесь вообще не заходить в систему под этим именем. А если необходимо что-нибудь настроить, то всегда можно сменить пользователя. Это делается командой su (switch user). Также можно использовать её для переключения текущего юзера. Например, если нужно что-нибудь выполнить от имени james, введите su james. По окончанию работы нажмите Ctrl+D или введите exit.
Я не буду утверждать, что такой способ лучше, чем в Windows, но то, что поломать систему при обязательной работе с обычной учётной записью намного труднее - факт. Кстати, большинство оконных менеджеров запрещают вход в систему с правами root. И правильно! Всё-таки практического применения этому нету (как правило, при запуске графических программ из меню спрашивается пароль), а работать под суперпользователем не рекомендуется.
Что же делать, если какой-нибудь нужной утилиты нету в меню (или есть, но пароль не спрашивается, и она отказывается работать)? Можно воспользоваться консолью и перед запуском написать что-нибудь из следующего. Показано на примере Synaptic:
$ kdesu synaptic - если установлен kde
$ gksu synaptic - если gnome
Не стоит забывать, что при их отсутствии можно доставить эти пакеты:
# aptitude install kdesu
или
# aptitude install gksu
Хотя, есть и более удобный вариант. Всё-таки права root'а обычно нужны для выполнения одной-двух команд, и менять пользователя для этого не нужно. А для повышения удобства работы есть такая великая вещь, как sudo, благодаря которой можно очень значительно сократить время пребывания под root'ом.
# aptitude install sudo
Теперь необходимо отредактировать файл /etc/sudoers. Для этого подойдёт специальная программа, очень смахивающая на культовый vi (и управление у него соответствующее - это очень мощный текстовый редактор, о котором можно говорить часами, вообще vim - тема отдельной статьи).
# visudo
У него есть два режима: командный и режим вставки. Для того, чтобы включить вставку, надо нажать клавишу "i". Теперь переходим в конец файла, жмем "i" и вводим (для пользователя james):
james ALL=(ALL) ALL
Так, наш james сможет выполнять любую команду от лица суперпользователя. Если нужно ограничить команды (например, нужно разрешить только aptitude), то строка будет вида:
james ALL=(ALL) /usr/bin/aptitude
Причем, каждый раз при вызове sudo пользователем james будет спрашиваться его пароль.
Если вы не хотите, чтобы приходилось каждый раз вводить пароль, то нужно задать опцию NOPASSWD. Тогда строка будет выглядеть следующим образом:
james ALL=(ALL) NOPASSWD: /usr/bin/aptitude
Теперь выйдите из режима вставки, нажав ESC. Можно сохранить результаты, введя ":w". Если же вы что-то неправильно отредактировали, то отмена осуществляется по нажатию "u". По окончанию операций над файлом можно выйти, введя ":q". Если же вы после изменения исходной информации не хотите, чтобы они записывались, то можно выйти без сохранения по команде ":q!".
Вообще, не стоит забывать о том, что в Linux есть мощная справочная система, и можно очень много информации получить всего одной командой. Например, если хотите узнать про этот файл, введите:
$ man sudoers
В результате вы получите все варианты использования различных опций.
Теперь всё настроено и работает (по крайней мере, должно :) ) И установить что-либо james может, введя просто:
$ sudo aptitude install anything
Таким образом, файл /etc/sudoers позволяет очень подробно разграничить права пользователей, которые смогут выполнять и административные функции. Причём, если указано, что использоваться может любая команда, то возможен запуск приложений и от имени root. Например, вот запуск Midnight Commander с неограниченными правами:
$ sudo mc
Вы сможете копировать, перемещать, удалять любые файлы. Только будьте осторожнее и не злоупотребляйте этими возможностями, потому что самые неприятные вещи случаются из-за банальной невнимательности. Как говорится, бережёного бог бережет. До встречи, уважаемые читатели.
Антон ЛИПАРИН,
oni@mail.by
Комментарии
Рут? А не надо ли для прав рута сначала ввести sudo -s ? Прошу простить глупый вопрос, я пока чайник.
Да? А это как объяснить (в пароле я не ошибался, несколько раз повторял терминальный диалог):
mike@mike-desktop:~$ su
Password:
su: Authentication failure
Извините.
mike@mike-desktop:~$ sudo -s
root@mike-desktop:~#
Конечно. Откуда я заключаю, уважаемый Oni, что утверждение "sudo -s аналогично su" не является безоговорочной истиной. Да, у меня убунту. Что корневой юзер отключен - отлично знаю. На то и sudo. Короче, сохранение отредактированных с помощью mcedit конфигов после предварительного $ sudo mc не выполняется. Приходится предварительно через sudo -s входить в #-режим. Поэтому уверенное "вот запуск Midnight Commander с НЕОГРАНИЧЕННЫМИ правами: $ sudo mc" неверно, т.к. кому-то может понадобиться mcedit'ом отконфигурить что-то системное.
А в целом - спасибо за статьи. Читаю!
Вы неправы. После Вашего поста закралось сомнение, но сейчас специально проверил - все нормально.
>>А для конфигурации лучше (ИМО) все-таки vim использовать
еще удачный выбор - mcedit
>>Откуда я заключаю, уважаемый Oni, что утверждение "sudo -s аналогично su" не является безоговорочной истиной
по результату действия они идентичны (в случае, конечно, если пароль рута установлен), а вот по способу - нет.
А вообще есть еще один вариант, причем официальный Ubuntu-way: sudo su.
Да, тут я был неправ. Учусь! Вы не поверите - дома винду уже месяц не запускал. Кстати, знатоки, может стОит VMware на Линукс поставить, а в машину-гостью - винду; не лучше ли это, чем WINE-путь?
Как вариант. А еще лучше - VirtualBox (он в варианте OSE полностью бесплатен и полнофункционален). Плюс некоторые вкусные плюшки плюс не такое загаживание системы, как у VMWare. Но в таком случае возникает ряд ограничений. Например, в моем случае я использую VirualBox+WinXP для 1С-программирования, а WINE - для мсофиса (ну это если уж сильно припрет, а так - OpenOffice) и проч.