Поговорим сегодня об очень важной составляющей Linux-дистрибутивов: правах на файлы, разграничений привилегий и суперпользователе. Периодически взаимодействие с системой (даже не на уровне терминала) будет требовать введения пароля суперпользователя. Поэтому нужно понимать, что это за пароль, кто такой суперпользователь и почему быть им не всегда круто.
Все есть файл
Ключевой подход к организации файловой системы Linux состоит в представлении о том, что все объекты в системе есть файлы. Будь то папка, программа, флэшка или раздел жесткого диска. С файлами (чем-бы они не являлись для простого пользователя) можно выполнять следующие операции:
- чтение (read)
- запись (write)
- выполнение (execute)
Кроме того, мы должны помнить, что часть файлов в системе необходимо защищать от произвольного к ним доступа, случайной записи или ненужного выполнения. Пользовательские файлы ограничивать также, как и системные, не стоит, так как это причинит пользователю неудобства при обычных сценариях использования системы.
Получается, что права обычного пользователя Linux сильно ограничены, он может управлять только своим каталогом и открывать для чтения определенные файлы из корневого раздела. Доступ для их изменения или установки программ отсутствует.
Суперпользователь или root
Полный набор прав по управлению файлами в системе имеет только пользователь root (аналогичное название имеет папка, где размещаются все системные файлы - root или корневой раздел). Для дистрибутива root-пользователь полноправный хозяин, который может делать абсолютно все, вплоть до попыток удаления важных системных файлов. Поэтому делать каждого пользователя в системе root-пользователем небезопасно.
Становимся суперпользователем. Команда sudo
Иногда даже перед обычным пользователем возникает необходимость, например, установки пакета, что невозможно сделать без прав суперпользователя. В таком случае и применяется программа sudo (от англ. Substitute User and do, «подменить пользователя и выполнить»). Она подменяет текущего пользователя на root и позволяет выполнять с системой нужные действия. Условием доступа к права root-пользователя является наличие пароля, который вы задаете во время установки дистрибутива. После выполнения нужных действий (например, после установки пакета) права суперпользователя отзываются.
Так как sudo это отдельный пакет, то, например, в Debian он не установлен по-умолчанию. Его нужно отдельно установить и дать понять системе, что текущая учетная запись пользователя может иметь права суперпользователя.
Получается, когда вы устанавливаете программу через стандартный менеджер и выскакивает окошко с запросом пароля, то после его ввода вашей учетной записи предоставляются root-права. Они будут сохранятся (т. е. не нужно будет вводить пароль постоянно) до следующего выхода из системы.
Большую значимость разграничение прав пользователей имеет, естественно, при работе с Linux-серверами. В дистрибутивах со средами рабочего стола касаться root-прав и суперпользователя приходится крайне редко. Но, по крайней мере, вы теперь знаете, почему при осуществлении каких-либо операция система просит у вас ввода пароля.
Напоминаю про поддержку канала и меня, как автора, лайками, комментариями и подписками! Очень радует, когда читатели дают обратную связь, приятно видеть, что счетчик подписчиков растет, значит материалы, которые появляются здесь, кому-то интересны и, быть может, даже полезны.