Найти в Дзене
Владимир IT

Linux: шаг №13 Многопользовательская система. Более подробно о root, sudo и su.

Моя цель: немного рассказать о многопользовательском использовании Linux. Как использовать администраторские привилегии, напрямую использовать учетную запись root,а также, чем это чревато. Многопользовательская система. Друзья, Linux, как и UNIX, является многозадачной ногопользовательской операционной системой. Это означает, что в один момент с системой могут работать несколько пользователей, и каждый пользователь может запустить несколько приложений. Вы можете зайти в систему локально, а кто-то — удаленно, используя один из протоколов удаленного доступа (telnet, ssh) или по FTP. Согласитесь, очень удобно. Предположим, что вы забыли распечатать очень важный документ, а возвращаться домой уже нет времени. Если ваш компьютер должным образом настроен и подключен к Интернету, вы можете получить к нему доступ (даже если компьютер выключен, достаточно позвонить домой и попросить кого-то включить его, а к Интернету компьютер подключится автоматически). После чего зайдите в систему по ssh(или

Моя цель: немного рассказать о многопользовательском использовании Linux. Как использовать администраторские привилегии, напрямую использовать учетную запись root,а также, чем это чревато.

Многопользовательская система.

Друзья, Linux, как и UNIX, является многозадачной ногопользовательской операционной системой. Это означает, что в один момент с системой могут работать несколько пользователей, и каждый пользователь может запустить несколько приложений.

Вы можете зайти в систему локально, а кто-то — удаленно, используя один из протоколов удаленного доступа (telnet, ssh) или по FTP. Согласитесь, очень удобно. Предположим, что вы забыли распечатать очень важный документ, а возвращаться домой уже нет времени. Если ваш компьютер должным образом настроен и подключен к Интернету, вы можете получить к нему доступ (даже если компьютер выключен, достаточно позвонить домой и попросить кого-то включить его, а к Интернету компьютер подключится автоматически). После чего зайдите в систему по ssh(или подключитесь к графическому интерфейсу, если вы предпочитаете работать в графическом режиме) и скопируйте нужный вам файл. Даже если кто-то в момент вашего подключения уже работает с системой, вы не будете мешать друг другу.

Подобное можно организовать и в Windows, если установить соответствующее программное обеспечение. Но в Windows все иначе. Например, Remote Administrator (или стороннее ПО, такое как AnyDesk или TeamViewer) предоставляет удаленный доступ к Рабочему столу, но если за компьютером уже работает пользователь, то вы вместе работать не сможете — вы будете мешать ему, а он вам. Ведь все, что будете делать вы, будет видеть он, а все, что будет делать он, вы увидите у себя на экране, т. е. рабочий стол получится как бы общий. Если вы предварительно не предупредите пользователя о своем удаленном входе, он даже может подумать, что с системой что-то не то.

В Linux же все так, как и должно быть. Несколько пользователей могут работать с системой и даже не подозревать о существовании друг друга, пока не введут соответствующую команду ( who).

Удаленный вход в систему по ssh — очень интересная тема, но об этом я планирую рассказать в другой статье.

Пользователь root. Максимальные полномочия.

Пользователь root обладает максимальными полномочиями в системе. Система полностью подвластна этому пользователю. Любая команда будет безоговорочно выполнена системой. Поэтому работать под именем пользователя root нужно с осторожностью. Всегда думайте над тем, что собираетесь сделать. Если вы дадите команду на удаление корневой файловой системы, система ее выполнит. Если же вы попытаетесь выполнить «опасную» команду, зарегистрировавшись под именем обычного пользователя, система сообщит вам, что у вас нет полномочий.

Представим, что кто-то решил «пошутить» и выложил в Интернете вредоносную программу. Если вы ее запустите от имени пользователя root, система может быть уничтожена. Запуск этой же программы от имени обычного пользователя ничего страшного не произведет — система просто откажется ее выполнять. Или же все может быть намного проще — вы ошибочно введете команду, которая разрушит вашу систему. Или просто отойдете ненадолго от своего компьютера, а тут сразу же появится "доброжелатель", — имея полномочия пользователя root, уничтожить систему можно одной командой.

Именно поэтому во многих дистрибутивах вход под именем пользователя root запрещен.

Еще, если вы запускаете какую-нибудь графическую программу, требующую привилегий root, то увидите окно с требованием ввести свой пароль.

Делаем выводы:

1. старайтесь реже работать под пользователем root;

2. всегда думайте, какие программы вы запускаете под именем root;

3. если программа, полученная из постороннего источника, требует root-полномочий, это должно насторожить;

4. создайте обычного пользователя (даже если вы сами являетесь единственным пользователем компьютера) и рутинные операции (с документами, использование Интернета и т. д.) производите от имени этого пользователя;

5. если полномочия root все же нужны, совсем необязательно заходить в систему под этим пользователем, достаточно запустить терминал и выполнить команду sudo или su. После этого в терминале можно выполнять команды с правами root. Если вы закроете терминал, то больше не сможете работать с правами root. Очень удобно — ведь обычно права суперпользователя нужны для одной-двух операций (например, выполнить команду установки программы или создать/удалить пользователя).

Как работать без root.

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

Команда sudo

Команда sudo позволяет запустить любую команду с привилегиями root. Использовать ее нужно так:

sudo<команда_которую_нужно_выполнить_с_правами_root>

Например, вам необходимо изменить файл /etc/apt/sources.list. Для этого используется команда (пример, для Linux Mint):

sudo xed /etc/apt/sources.list

Поясню:

Программа xed — это текстовый редактор, мы ему передаем один параметр — имя файла, который нужно открыть.

Если ввести эту же команду, но без sudo (просто xed /etc/apt/sources.list ), текстовый редактор тоже запустится и откроет файл, но сохранить изменения вы не сможете, поскольку у вас не хватит полномочий.

Программа sudo запросит у вас пароль:

sudo xed /etc/apt/sources.list

Password:

Вы должны ввести свой пользовательский пароль — тот, который применяете для входа в систему, но не пароль пользователя root (кстати, мы его и не знаем).

Замечу:

Использовать команду sudo имеют право не все пользователи, а только те, которые внесены в файл /etc/sudoers. Администратор системы (пользователь root) может редактировать этот файл с помощью команды visudo. Если у вас дистрибутив, который запрещает вход под учетной записью root (следовательно, у вас нет возможности отредактировать файл sudoers), то в файл sudoers вносятся пользователи, которых вы добавили при установке системы.

Команда su.

Команда su позволяет получить доступ к консоли root любому пользователю (даже если пользователь не внесен в файл /etc/sudoers) при условии, что он знает пароль root. Понятно, что в большинстве случаев этим пользователем будет сам пользователь root— не будете же вы всем пользователям доверять свой пароль? Поэтому команда su предназначена, в первую очередь, для администратора системы, а sudo — для остальных пользователей, которым иногда нужны права root (чтобы они меньше отвлекали администратора от своей работы).

Использовать команду su просто:

su

После этого нужно ввести пароль пользователя root, и вы сможете работать в консоли, как обычно, но уже как админ. Использовать su удобнее, чем sudo, потому что вам не нужно вводить su перед каждой командой, которая должна быть выполнена с правами root.

Чтобы закрыть сессию su, нужно или ввести команду exit, или просто закрыть окно терминала.

Ввод серии команд sudo.

Если Вам надоело каждый раз вводить sudo в начале команд, то выполните команду:

sudo –i

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

Опция -i позволяет так же удобно вводить команды, как если бы вы использовали команду sudo.

Выполнение команды sudo с опцией -i
Выполнение команды sudo с опцией -i

Из rootлегко выйти: exit.

Выход из режима администратора.
Выход из режима администратора.

Чтобы использовать учетную запись root.

Если вы все-таки хотите использовать обычную учетную запись root, достаточно задать пароль для пользователя root. Делается это командой:

sudo passwd root

Сначала программа запросит ваш пользовательский пароль, затем новый пароль root и его подтверждение.

После этого вы сможете входить в систему под учетной записью root.

Ниже показано, как я провел эту операцию у себя в Linux Mint.

Как я задал пароль для root
Как я задал пароль для root

Сначала система запросила мой пароль пользователя, затем задать пароль для root и подтверждение пароля root.

Для отключения учетной записи root используется команда:

sudo passwd -l root

Помните! После закрытия учетной записи root у вас могут быть проблемы с входом в систему в режиме восстановления, поскольку пароль root уже установлен (т. е. он не пустой, как по умолчанию), но в то же время учетная запись закрыта. Поэтому если вы уже включили учетную запись root, то будьте внимательны и осторожны. А вообще лучше ее не включать, а пользоваться командой sudo –i .

В заключение:

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

***

Вам понравилось, оказалось полезным? Ставьте, пожалуйста, "лайк"!

Буду рад вашим подпискам.