Операционная система Linux является многопользовательской. Это позволяет нескольким людям одновременно или по очереди использовать одно и то же окружение: файловую систему, ресурсы, программы. Для исключения несанкционированного доступа пользователя к определенной информации или запуска небезопасной программы была разработана специфичная система прав.
Каждый файл или директория хранит особые метаданные:
- Идентификатор владельца файла.
- Идентификатор группы файла.
- Девять битов прав доступа владельца, группы и остальных пользователей.
- Другие административные биты.
Информацию о правах доступа, а также имени владельца и группы можно получить с помощью команды ls, используя её дополнительную опцию -l. Таким образом, результат выполнения программы примет подробный вид.
Каждая строка вывода команды ls формируется установленным набором данных. Ниже дается подробный разбор следующего содержания «-rw-r—r-- 1 user user 4096 июня 12 14:23 Документы».
Участок «-rw-r—r--» определяет информацию о типе файла, а также правах доступа владельца, группы и остальных пользователей. Первый символ обозначает тип файла, он может принимать следующие значения: d — директория, l — символическая ссылка, - - обычный файл (прочерк). Оставшаяся часть разбита на комбинации по три символа. Первая комбинация отвечает за права владельца, вторая за группу, а третья предназначена для остальных пользователей.
Комбинация, определяющая права на файл, содержит три символа «rwx», следующих друг за другом. Они имеют определенный смысл: r — право на чтение файла, w — право на изменение, x — право на выполнение как программы. Если какая либо буква заменена символом «-» это означает, что данный вид операции запрещен.
Число «1» говорит о количестве вложенных файлов. Если бы данная строка относилась к определению параметров директории, число могло иметь любое значение больше нуля. Для файлов оно всегда равно единице.
Строка «user user» определяет имя владельца и группы соответственно. Далее содержится информация о весе файла в байтах, дате создания и его имени.
Отличия прав доступа для папок
Как говорилось выше, Linux закрепляет за файлом девять битов, определяющих права доступа. Для файлов они устанавливают права на чтение, запись и выполнение. Однако в отношении папок их роль меняется кардинально.
Бит «r» устанавливает пользователю право на просмотр содержимого директории с помощью команды ls. Бит «x» дает право на перемещение в папку, используя команду cd. Если одновременно установлены биты «x» и «w», пользователь получает право на создание файлов внутри директории.