Проверка прав пользователей линукс

Права доступа в Linux

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

С помощью разрешений можно создать надежную среду — такую, в которой никто не может поменять содержимое ваших документов или повредить системные файлы.

Как работают права доступа

Есть 3 вида разрешений. Они определяют права пользователя на 3 действия: чтение, запись и выполнение. В Linux эти действия обозначаются вот так:

  • r — read (чтение) — право просматривать содержимое файла;
  • w — write (запись) — право изменять содержимое файла;
  • x — execute (выполнение) — право запускать файл, если это программа или скрипт.

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

  • owner (владелец) — отдельный человек, который владеет файлом. Обычно это тот, кто создал файл, но владельцем можно сделать и кого-то другого.
  • group (группа) — пользователи с общими заданными правами.
  • others (другие) — все остальные пользователи, не относящиеся к группе и не являющиеся владельцами.

Как узнать разрешения файла

Чтобы посмотреть права доступа к файлу, нужно вызвать команду ls с опцией -l . Эта опция отвечает за вывода списка в длинном формате.

1. [email protected]: ls -l /home/karpaff/linuxtutorialwork/chick.png
2. -rwxr----x 1 harry users 2.7K Jan 4 07:32 /home/karpaff/linuxtutorialwork/chick.png
3. [email protected]:

В приведенном выше примере первые 10 символов вывода показывают разрешения файла.

  • Первый символ определяет тип файла. Если первый символ — прочерк — , то это обычный файл. Если первый символ d , то это каталог.
  • Следующие 3 символа показывают разрешения для владельца. Буква означает наличие разрешения, а прочерк — — его отсутствие. В нашем примере у владельца есть все разрешения (чтение, запись и выполнение).
  • Следующие 3 символа показывают разрешения для группы. В этом примере у членов группы есть разрешение на чтение, но нет разрешений на запись и выполнение. Обратите внимание, порядок записи разрешений всегда такой: чтение, запись, выполнение.
  • Последние 3 символа показывают разрешения для всех остальных пользователей. В этом примере у них есть только разрешение на выполнение.

Как изменить права доступа

Для изменения прав доступа к файлу или каталога используется команда chmod (от англ. change mode). Эта команда меняет биты режима файла — если совсем просто, это индикатор разрешений.

Аргументы команды chmod , отвечающие за разрешение, состоят из 3 компонентов:

  • Для кого мы меняем разрешение? Обозначается первыми буквами слов: [ugoa] — user (пользователь, он же владелец), group (группа), others (другие), all (все).
  • Мы предоставляет или отзываем разрешения? Обозначается плюсом + , если предоставляем, минусом — , если отзываем.
  • Какое разрешение мы хотим изменить? Чтение (r), запись (w), выполнение (x).

Разберем на примере. Давайте дадим группе разрешение на выполнение, а затем отзовем разрешение на запись для владельца.

1. [email protected]: ls -l chick.png
2. -rwxr ---- x 1 harry users 2.7K 4 янв 07:32 chick.png
3. [email protected]:
4. [email protected]: chmod g + x chick.png
5. [email protected]: ls -l chick.png
6. -rwxr-x - x 1 harry users 2.7K 4 янв 07:32 chick.png
7. [email protected]:
8. [email protected]: chmod uw chick.png
9. [email protected]: ls -l chick.png
10. -r-xr-x - x 1 harry users 2.7K 4 янв 07:32 chick.png
11. [email protected]:

Права доступа необязательно выдавать индивидуально. Можно назначить сразу несколько разрешений.

1. [email protected]: ls -l chick.png
2. -rwxr ---- x 1 harry users 2.7K Jan 4 07:32 chick.png
3. [email protected]:
4. [email protected]: chmod g + wx chick.png
5. [email protected]: ls -l chick.png
6. -rwxrwx - x 1 harry users 2.7K Jan 4 07:32 chick.png
7. [email protected]:
8. [email protected]: chmod go-x chick.png
9. [email protected]: ls -l chick.png
10. -rwxrw ---- 1 harry users 2,7K Jan 4 07:32 chick.png
11. [email protected]:

Может показаться странным, что владелец файла может сам себя лишить прав. Но бывают случаи, когда такая возможность очень полезна. Допустим, у вас есть файл с данными, которые мы не хотели бы случайно изменить.

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

Короткая форма записи прав

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

Вспомним восьмеричную систему

Чтобы понять, как работает этот сокращенный метод, давайте освежим знания по системам счисления.

Мы используем десятичную систему счисления, в которой 10 цифр: от 0 до 9. Еще есть восьмеричная система счисления, в которой используется 8 цифр: от 0 до 7.

Разрешений — 3 вида, каждый кодируется 1 (разрешение есть) или 0 (разрешения нет). Поэтому для кодирования всех разрешений требуется 2 3 = 8 комбинаций. Соответственно, для записи каждого разрешения используется восьмеричная система счислений. Числа восьмеричной системы счисления можно представить в двоичной системе, в которой всего две цифры: 0 и 1. Вот, как восьмеричные числа выглядят в двоичной с. с.

Восьмеричная

Заметьте, все восьмеричные цифры можно представить тремя битами. Записи в двоичной системе включают в себя все возможные комбинации 0 и 1.

Если использовать 3 восьмеричные цифры, каждая из которых представляет собой 3 цифры в двоичной системе, можно зашифровать 9 значений. Это как раз то, что нам нужно: для каждого из 3 разрешений нужно определить права каждой из 3 групп.

  • у владельца — все права;
  • у группы — нет только права на запись;
  • у остальных — нет только права на запись.

Разберем несколько примеров. Обратите внимание на цифры после chmod , переведите их в двоичную систему и попробуйте определить, какие разрешения для каких групп устанавливает та или иная комбинация.

1. [email protected]: ls -l chick.png
2. -rw-r----x 1 harry users 2.7K Jan 4 07:32 chick.png
3. [email protected]:
4. [email protected]: chmod 751 chick.png
5. [email protected]: ls -l chick.png
6. -rwxr-x--x 1 harry users 2.7K Jan 4 07:32 chick.png
7. [email protected]:
8. [email protected]: chmod 240 chick.png
9. [email protected]: ls -l chick.png
10. --w-r----- 1 harry users 2.7K Jan 4 07:32 chick.png
11. [email protected]:

Часто повторяющиеся комбинации можно просто запомнить, и тогда работа с правами будет гораздо быстрее.

Права доступа для каталогов

Для каталогов можно устанавливать те же права доступа, но работают они немного иначе.

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

  • r — право просматривать содержимое каталоги, т. е. можно выполнить команду ls;
  • w — право записывать данные в каталог, т. е. создавать файлы и подкаталоги;
  • x — право зайти в каталог, т. е. выполнить команду cd.

Разберем разрешения каталогов.

1. [email protected]: ls testdir
2. file1 file2 file3
3. [email protected]:
4. [email protected]: chmod 400 testdir
5. [email protected]: ls -ld testdir
6. dr-------- 1 karpaff users 2.7K Jan 4 07:32 testdir
7. [email protected]:
8. [email protected]: cd testdir
9. cd: testdir: Permission denied
10. [email protected]: ls testdir
11. file1 file2 file3
12. [email protected]:
13. [email protected]: chmod 100 testdir
14. [email protected]: ls -ld testdir
15. ---x------ 1 karpaff users 2.7K Jan 4 07:32 testdir
16. [email protected]:
17. [email protected]: ls testdir
18. [email protected]: cd testdir
19. [email protected]: pwd
20. /home/karpaff/testdir
21. ls: cannot open directory testdir/: Permission denied
22. [email protected]:

Обратите внимание, что в строках 5 и 14 при вызове команды ls мы указали параметр -d (от англ. directory). Так мы указываем, что работаем именно с каталогом.

Сначала эти разрешения могут показаться немного запутанными. Помните, что эти разрешения распространяются только на сам каталог, а не на файлы внутри. Допустим, у вас есть каталог, для которого у вас нет разрешения на чтение. Но в нем могут быть файлы, читать которые вы можете. Пока вы знаете, имя файла, вы все равно можете прочитать файл.

1. [email protected]: ls -ld testdir
2. --x------- 1 karpaff users 2.7K Jan 4 07:32 testdir
3. [email protected]:
4. [email protected]: cd testdir
5. [email protected]:
6. [email protected]: ls
7. ls: cannot open directory .: Permission denie
8. [email protected]:
9. [email protected]: cat samplefile.txt
10. Andrew 20
11. Dmitry 11
12. Maria 37
13. [email protected]:

Кто такой пользователь root

В системе Linux обычно только 2 человека могут изменять права доступа к файлу или каталогу: владелец файла или каталога и пользователь root — суперпользователь.

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

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

Как разрешения обеспечивают безопасность

Домашний каталог — ваше личное пространство в системе. Чтобы оно так и оставалось личным, нужно обеспечить его безопасность. В этом помогут права доступа.

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

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

Что нужно запомнить

Команды

chmod
Изменить права доступа для файла или каталога.

ls -ld
Посмотреть права доступа для определенного каталога.

Шпаргалка по короткой записи

восьмеричная

права на файл

права на каталог

Источник

Читайте также:  Alt shift vscode linux
Оцените статью
Adblock
detector