Top.Mail.Ru

Управляем пользователями и правами в Linux (rwx, useradd, sudo, su)

Управляем пользователями и правами в Linux (rwx, useradd, sudo, su)

В данном видео наконец разберемся, что скрывается за этими загадочными "drwxr-xr--". Спойлер: там нет ничего лишнего, только чёткая логика.

Из видео вы узнаете:

🔹 Почему у "ls -l" такие странные символы и как прочитать их как открытую книгу

🔹 Чем "r" отличается от "w" и "x" (и почему для папки "x" — это «войти», а не «запустить»)

🔹 Кто такой владелец, группа и «все остальные» (и почему при создании пользователя появляется группа с тем же именем)

🔹 Почему "sudo" просит пароль, даже если вы и так "root" (спойлер: безопасность, а не издевательство)

🔹 В чём разница между "su" и "sudo" (подмена пользователя Vs подмена пользователя и выполнение)

🔹 Как создать нового пользователя одной командой и почему без "sudo" у вас ничего не выйдет

Смотрите видео и переставайте бояться терминала. Ошибка "Permission denied" - это не приговор, а подсказка.

Запись видеоурока на RuTuBe

Запись видеоурока во ВКонтакте

Запись видеоурока на YouTuBe



Команды:

{useradd} -m (home) - добавить с созданием домашнего каталога

{useradd} -s (shell) /bin/bash - добавить с указанием оболочки bash

{useradd} -p (password) 123qwerty user1 - добавить с указанием пароля

useradd -m (home) -s (shell) /bin/bash -p (password) 123qwerty user1 - добавить пользователя user1 с домашним каталогом, оболочкой bash и паролем 123qwerty

sudo (substitute user and do) - подменить пользователя и сделать

su (substitute user) - подменить пользователя

 

Теперь давайте немного разберемся с правами доступа к директориям и файлам внутри Linux системы.

Перейдем в корневой каталог и выведем его содержимое

cd /

ll

 

lrwxrwxrwx   1 root root                      8 фев 17 17:19 sbin -> usr/sbin/
drwxr-xr-x     6 root root                4096 фев 17 17:25 snap/
drwxr-xr-x     2 root root                4096 фев 17 17:19 srv/
-rw-------        1 root root   1908408320 июл 17 07:48 swap.img

Смотрите, слева у нас есть куча непонятных символов и как кажется написанных вообще хаотично, однако это не так. Этот непонятный набор символов и прочерков и есть права доступа на файл или директории.

Во-первых, самый первый символ указывает, что это, файл или директория. Если указан «-» значит это файл, если «d» (directory) значит это директория. Так же бывают ссылки, которые обозначаются символом «l» (link), где в имени данной ссылки отображается элемент, на который ведет данная ссылка.

Далее идет 9 символов, а точнее 3 группы по 3 символа, это и есть права доступа.

У каждой директории и файла есть 3 типа прав, это права владельца, права группы и права для всех остальных. Так вот, первая группа из трех символов, это права владельца (user), вторая права группы (group) и третья для всех остальных (other).

Права могу иметь три значения:

r - read - чтение

w - write - запись

x - executable - выполнение

Если в списке значений прав доступа присутствует прочерк «-» это означает, что у данного пользователя, группы или всех остальных нет определенных прав.

В нашем случае, мы видим, что для указанной директории владелец, т.е. пользователь, имеет полные права, т.е. на чтение, запись и выполнение. Члены группы только на запись и чтение, а остальные только на чтение и выполнение.

И кстати, стоит учитывать, что права доступа всегда идут как rwx, т.е. сначала чтение, потом запись и выполнение. Они не меняют своей последовательности.

А как определить кто у нас владелец и как называется группа для который настраивается доступ? Так вот следующие записи root root это название пользователя и группы. Т.е. пользователь root, или суперпользователь, и группа root.

Давайте перейдем в домашний каталог текущего пользователя и посмотрим какие права на файлы и директории указаны там.

cd ~

ll

Как вы видите, здесь имя пользователя и название группы изменилось на it-skills.

Тут может возникнуть вопрос: - «Почему имя пользователя и имя группы совпадают?»

Все по тому, что при создании пользователя в системе автоматически создается группа с таким же названием и если пользователь создает какой-то файл или директорию, то он автоматически становится её владельцем, а в качестве группы так же указывается группа данного пользователя. Хотя, потом, при желании все это можно изменить.

И так, давайте изучим права доступа к папке профиля данного пользователя. Как я говорил ранее символ «.» обозначает текущий каталог. И получается, что на данный каталог

- владелец: it-skills имеет полный доступ

- участники группы: it-skills имеют доступ на чтение и выполнение (для директории, права на выполнение позволяют просто войти в данную папку) но ничего не могут записывать в неё

- все остальные: ничего не могут делать с этой папкой

Мы поможем вам легко получить базовые навыки работы с Linux, без лишней теории и воды. Убедитесь, что осваивать новое может быть просто!

Получите бесплатный доступ к первым модулям курса.

Чтобы удостовериться, что мы действительно правильно прочитали права доступа, давайте перейдем на уровень выше и посмотрим какие права указаны там для директории it-skills

cd ..

ll

Как вы видите, права те же самые, а значит символ «.» действительно указывает на текущую директорию.

Кстати, как вы видите права на директорию «.» стали такие же как на директорию «..» когда мы просматривали список файлов и директорий из профиля пользователя. Т.е. это говорит о том, что директория «..» действительно является каталогом выше и мы можем посмотреть на неё права.

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

Поэтому создадим еще одного пользователя в системе

useradd -m -s /bin/bash -p 123qwerty user1

useradd -m (home) -s (shell) /bin/bash -p (password) 123qwerty user1 - добавить пользователя user1 с домашним каталогом, оболочкой bash и паролем 123qwerty

Данную команду можно разложить на следующие составляющие.

-m (home) - создание домашнего каталога

-s (shell) /bin/bash - оболочка в которой будет работать пользователь

-p (password) 123qwerty - пароль пользователя

user1 - имя пользователя

Однако, у нас выдается сообщение, что недостаточно прав на выполнение данной операции. И раз уж мы дошли до урока связанного с правами доступа, давайте разберемся, что это за команда sudo, которую мы до этого использовали?

sudo (substitute user and do) - подменить пользователя и сделать

Указание данной команды позволяет запускать команды с повышением прав, опять же в рамках разрешенных для данного пользователя. Любые плюс минус серьезные изменения вносятся в систему с использованием данной команды.

sudo useradd -m -s /bin/bash -p 123qwerty user1

Вводим пароль для пользователя it-skills, это нужно для того, чтобы посторонний человек, если сел за терминал, а вы на нем авторизованы, то система все равно попросит повторить пароль, чтобы точно убедиться, что это вы.

Перейдем в каталог home и убедимся, что у нас создалась директория для пользователя user1

cd /home

ll

Директория создана, а значит команда выполнена успешно.

Кстати, в Линукс системах, если вам не выдается никакой ошибки или дополнительного сообщения, значит команда выполнена успешно!

Теперь давайте авторизуемся под пользователем user1

su user1

sudo su user1

su (substitute user) - подменить пользователя

cd /home

ll

cd it-skills

Выдается сообщение bash: cd: it-skills/: Permission denied - это означает, что нам запрещено входить в данную папку.

Проверяем по правам и действительно, для остальных (other) стоят прочерки ---, т.е. вообще нет никаких прав.

Поэтому в следующем видео мы рассмотрим команды по изменению прав доступа.

Резюме: В итоге мы изучили следующие команды ключи:

{useradd} -m (home) - добавить с созданием домашнего каталога

{useradd} -s (shell) /bin/bash - добавить с указанием оболочки bash

{useradd} -p (password) 123qwerty user1 - добавить с указанием пароля

useradd -m (home) -s (shell) /bin/bash -p (password) 123qwerty user1 - добавить пользователя user1 с домашним каталогом, оболочкой bash и паролем 123qwerty

sudo (substitute user and do) - подменить пользователя и сделать

su (substitute user) - подменить пользователя