Linux команды права файла

Команда Chmod в Linux (права доступа к файлам)

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

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

Разрешения для файлов Linux

Прежде чем идти дальше, давайте объясним базовую модель разрешений Linux.

В Linux каждый файл связан с владельцем и группой и имеет права доступа для трех разных классов пользователей:

  • Владелец файла.
  • Члены группы.
  • Остальные (все остальные).

Владение файлом можно изменить с помощью команд chown и chgrp .

К каждому классу применяются три типа прав доступа к файлам:

  • Разрешение на чтение.
  • Разрешение на запись.
  • Разрешение на выполнение.

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

Права доступа к файлам можно просмотреть с помощью команды ls :

Первый символ показывает тип файла. Это может быть обычный файл ( — ), каталог ( d ), символическая ссылка ( l ) или любой другой специальный тип файла.

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

В приведенном выше примере ( rw-r—r— ) означает, что владелец файла имеет разрешения на чтение и запись ( rw- ), а группа и другие пользователи имеют разрешения только на чтение ( r— ).

Каждый из трех троек разрешений может состоять из следующих символов и иметь различные эффекты, в зависимости от того, установлены ли они для файла или для каталога:

Влияние разрешений на файлы

Разрешение символ Значение в файле
Читать Файл не читается. Вы не можете просмотреть содержимое файла.
r Файл доступен для чтения.
Написать Файл нельзя изменить или модифицировать.
w Файл можно изменить или модифицировать.
Выполнить Файл не может быть выполнен.
x Файл можно запустить.
s Если он найден в user триплете, он устанавливает бит setuid . Если он находится в тройке group , он устанавливает бит setgid . Это также означает, что установлен флаг x .
Когда для исполняемого файла setgid флаги setuid или setgid , файл выполняется с правами владельца и / или группы.
S То же, что и s но флаг x не установлен. Этот флаг редко используется для файлов.
t Если он обнаружен в others триплетах, он устанавливает бит sticky .
Это также означает, что установлен флаг x . Этот флаг бесполезен для файлов.
T То же, что и t но флаг x не установлен. Этот флаг бесполезен для файлов.

Влияние разрешений на каталоги (папки)

В Linux каталоги — это особые типы файлов, которые содержат другие файлы и каталоги.

Разрешение символ Значение в каталоге
Читать Содержимое каталога не отображается.
r Можно показать содержимое каталога.
(например, вы можете перечислить файлы внутри каталога с помощью ls .)
Написать Содержимое каталога нельзя изменить.
w Содержимое каталога может быть изменено.
(например, вы можете создавать новые файлы , удалять файлы и т. д.)
Выполнить Каталог не может быть изменен на.
x По каталогу можно перемещаться с помощью cd .
s Если он находится в тройке user , он устанавливает бит setuid . Если он находится в group триплете, он устанавливает бит setgid . Это также означает, что установлен флаг x . Когда для каталога setgid флаг setgid новые файлы, созданные в нем, наследуют идентификатор группы каталогов (GID) вместо идентификатора основной группы пользователя, создавшего файл.
setuid не влияет на каталоги.
S То же, что и s но флаг x не установлен. Этот флаг бесполезен для каталогов.
t Если он обнаружен в others триплетах, он устанавливает бит sticky .
Это также означает, что установлен флаг x . Когда для каталога установлен бит закрепления, только владелец файла, владелец каталога или административный пользователь может удалять или переименовывать файлы в каталоге.
T То же, что и t но флаг x не установлен. Этот флаг бесполезен для каталогов.

Использование chmod

Команда chmod имеет следующую общую форму:

Команда chmod позволяет вам изменять права доступа к файлу, используя символьный или числовой режим или справочный файл. Мы объясним режимы более подробно позже в этой статье. Команда может принимать в качестве аргументов один или несколько файлов и / или каталогов, разделенных пробелом.

Только root, владелец файла или пользователь с привилегиями sudo могут изменять права доступа к файлу. Будьте особенно осторожны при использовании chmod , особенно при рекурсивном изменении разрешений.

Символьный (текстовый) метод

Синтаксис команды chmod при использовании символьного режима имеет следующий формат:

Первый набор флагов ( [ugoa…] ), флаги пользователей, определяет, какие классы пользователей изменяют права доступа к файлу.

  • u — владелец файла.
  • g — Пользователи, входящие в группу.
  • o — Все остальные пользователи.
  • a — Все пользователи, идентичные ugo .

Если флаг пользователей опущен, по умолчанию используется значение a и разрешения, установленные с помощью umask , не затрагиваются.

Второй набор флагов ( [-+=] ), флаги операции, определяет, следует ли удалить, добавить или установить разрешения:

  • — Удаляет указанные разрешения.
  • + Добавляет указанные разрешения.
  • = Изменяет текущие разрешения на указанные разрешения. Если после символа = не указаны разрешения, все разрешения из указанного класса пользователей удаляются.

Разрешения ( perms. ) могут быть явно установлены с использованием нуля или одной или нескольких следующих букв: r , w , x , X , s и t . Используйте одну букву из набора u , g и o при копировании разрешений из одного класса пользователей в другой.

При настройке разрешений для более чем одного пользовательского класса ( [,…] ) используйте запятые (без пробелов) для разделения символьных режимов.

Ниже приведены несколько примеров использования команды chmod в символьном режиме:

Дайте членам группы разрешение на чтение файла, но не на его запись и выполнение:

Удалите разрешение на выполнение для всех пользователей:

Отвратительно удалите разрешение на запись для других пользователей:

Удалите права на чтение, запись и выполнение для всех пользователей, кроме владельца файла:

То же самое можно сделать, используя следующую форму:

Предоставьте права на чтение, запись и выполнение владельцу файла, права на чтение для группы файла и никаких разрешений для всех остальных пользователей:

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

Добавьте липкий бит в заданный каталог:

Числовой метод

Синтаксис команды chmod при использовании числового метода имеет следующий формат:

При использовании числового режима вы можете установить разрешения для всех трех классов пользователей (владельца, группы и всех остальных) одновременно.

NUMBER может быть 3- или 4-значным числом.

Когда используется трехзначный номер, первая цифра представляет права владельца файла, вторая — группу файла, а последняя — всех остальных пользователей.

Каждое разрешение на запись, чтение и выполнение имеет следующее числовое значение:

  • r (читать) = 4
  • w (написать) = 2
  • x (выполнить) = 1
  • нет разрешений = 0

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

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

  • Владелец: rwx = 4 + 2 + 1 = 7
  • Группа: rx = 4 + 0 + 1 = 5
  • Другое: rx = 4 + 0 + 0 = 4

Используя метод выше, мы подходим к числу 754 , которое представляет желаемые разрешения.

Для установки флагов setuid , setgid и sticky bit используйте четырехзначный номер.

Когда используется четырехзначный номер, первая цифра имеет следующее значение:

  • setuid = 4
  • setgid = 2
  • липкий = 1
  • без изменений = 0

Следующие три цифры имеют то же значение, что и при использовании трехзначного номера.

Если первая цифра равна 0, ее можно опустить, а режим можно представить тремя цифрами. Числовой режим 0755 совпадает с 755 .

Для вычисления числового режима вы также можете использовать другой метод (двоичный метод), но он немного сложнее. Знания, как вычислить числовой режим с использованием 4, 2 и 1, достаточно для большинства пользователей.

Вы можете проверить права доступа к файлу в числовом формате с помощью команды stat :

Вот несколько примеров того, как использовать команду chmod в числовом режиме:

Предоставьте владельцу файла разрешения на чтение и запись и только на чтение членам группы и всем другим пользователям:

Предоставьте владельцу файла права на чтение, запись и выполнение, права на чтение и выполнение для членов группы и никаких разрешений для всех остальных пользователей:

Предоставьте разрешения на чтение, запись и выполнение, а также закрепите бит для данного каталога:

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

Использование справочного файла

Параметр —reference=ref_file позволяет вам установить права доступа к файлу такими же, как у указанного справочного файла ( ref_file ).

Например, следующая команда назначит права доступа file1 к file2

Рекурсивно изменить права доступа к файлу

Чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге, используйте параметр -R ( —recursive ):

Например, чтобы изменить права доступа для всех файлов и подкаталогов в каталоге /var/www на 755 вы должны использовать:

Работа с символическими ссылками

Символические ссылки всегда имеют 777 разрешений.

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

Скорее всего, вместо смены целевого владельца вы получите ошибку «Нет доступа к ‘символической ссылке’: в разрешении отказано».

Ошибка возникает из-за того, что по умолчанию в большинстве дистрибутивов Linux символические ссылки защищены, и вы не можете работать с целевыми файлами. Этот параметр указан в /proc/sys/fs/protected_symlinks . 1 означает включен, а 0 отключен. Рекомендуется не отключать защиту символических ссылок.

Массовое изменение прав доступа к файлам

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

Наиболее распространенный сценарий — рекурсивное изменение разрешений файла веб-сайта на 644 и разрешений каталога на 755 .

Команда find будет искать файлы и каталоги в /var/www/my_website и передавать каждый найденный файл и каталог команде chmod для установки разрешений.

Выводы

Команда chmod изменяет права доступа к файлу. Разрешения можно установить с помощью символьного или числового режима.

Чтобы узнать больше о chmod посетите страницу руководства chmod .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Типы пользователей и Права доступа в Linux

Обновл. 15 Мар 2021 |

По замыслу создателей, Linux-системы — это многопользовательские операционные системы, т.е. позволяющие нескольким пользователям работать с одной системой, не мешая друг другу. Но пользователи, совместно использующие доступ к файлам, рискуют раскрыть секретную информацию или даже потерять данные, если другие пользователи получат доступ к их файлам или каталогам. Чтобы решить эту проблему, в Linux добавили механизмы владения и прав доступа к файлам (или каталогам), чтобы обозначить, какие полномочия каждый пользователь имеет над определенным файлом (или каталогом).

Типы пользователей в Linux

Каждый файл и каталог в Linux имеет три категории пользователей:

Владелец — пользователь, создавший файл/каталог.

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

Остальные/Другие (все остальные пользователи) — любой другой пользователь, имеющий доступ к файлу. Он не является владельцем файла, и не принадлежит к группе, которая могла бы владеть файлом.

Другими словами, Владелец — это один пользователь, Группа — это совокупность пользователей, а Остальные — совокупность из всех остальных пользователей системы.

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

Теперь представим такую ситуацию: пусть у нас есть два пользователя А и Б, требуется сделать так, чтобы пользователь А не мог повлиять на файл, содержащий жизненно важную информацию/данные пользователя Б. Возникает вопрос: «Как Linux различает данные категории пользователей?». Например, вы не хотите, чтобы ваш коллега, который работает на вашем компьютере с Linux, просматривал ваши изображения. Вот тут-то на сцену и выходят права доступа, определяющие поведение пользователей.

Права доступа/Разрешения

Каждый файл и каталог в Linux имеет следующие три типы разрешений для всех трех вышеописанных категорий пользователей:

Чтение/Просмотр (Read) — дает право открывать и читать файл. Разрешение на чтение каталога дает возможность просматривать его содержимое.

Запись/Изменение (Write) — дает право изменять содержимое файла. Разрешение на запись в каталог дает право добавлять, удалять и переименовывать файлы, хранящиеся в каталоге. Рассмотрим сценарий, в котором у вас есть разрешение на запись в файл, но нет разрешения на запись в каталог, где хранится файл. Вы сможете изменить содержимое файла, но вы не сможете переименовать, переместить или удалить файл из каталога.

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

Пример на практике

Рассмотрим следующий пример:

Здесь владелец (diego) файла Адреса.txt (который я заранее создал в папке /home/diego/Документы ) имеет доступ к его «Просмотру и Изменению», в то время как другие члены его группы (её название совпадает с именем владельца — diego), а также все остальные пользователи, не входящие в эту группу, имеют доступ «Только просмотр». Поэтому они могут открыть файл, но не могут вносить в него изменения.

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

Примечание: Команда ls используется для вывода содержимого каталогов и информации о файлах. Ключ –l используется для вывода детальной информации о правах доступа, владельце, размере файла и пр.

Если применить команду ls -l к нашему файлу Адреса.txt, то мы будем наблюдать такой вывод:

Выходные данные содержат следующую информацию:

Тип — обозначает тип объекта. Это может быть обычный файл ( — ), каталог ( d ) или ссылка ( l ).

Разрешения (права доступа) — в этом поле отображается набор разрешений для файла, о которых мы поговорим ниже.

Жесткая ссылка — отображает количество ссылок, имеющихся у файла. По умолчанию устанавливается значение 1 .

Владелец — имя пользователя, который владеет файлом. Часто (но не всегда) совпадает с именем его создателя.

Группа — группа, имеющая доступ к файлу. Одновременно владеть файлом может только одна группа.

Размер — размер файла в байтах.

Дата модификации — дата и время последнего изменения файла.

Имя файла.

Информация о правах доступа к файлу сгруппирована в строку символов, перед которой стоит — . При этом каждая буква задает определенное разрешение, а именно:

r (read) — разрешение на чтение/просмотр файла;

w (write) — разрешение на запись/изменение файла;

x (execute) — разрешение на выполнение файла;

– — нет набора разрешений.

Пользователи, имеющие разрешение на Чтение, могут видеть содержимое файла (или файлов в каталоге), однако они не могут изменить его (или добавить/удалить файлы в каталоге). С другой стороны, те, у кого есть права на Запись, могут редактировать (добавлять и удалять) файлы. Наконец, возможность Выполнения означает, что пользователь может запустить файл. Эта опция в основном используется для запуска скриптов.

Разрешения всегда идут именно в таком порядке, то есть rwx . А далее, они устанавливаются для всех трех категорий пользователей в порядке Владелец, Группа и Остальные/Другие:

Итак, если вы вооружитесь вышеприведенной картинкой и посмотрите на вывод команды ls –l , то сможете сказать следующие вещи о правах доступа к файлу Адреса.txt:

-rw-r—r— 1 diego diego 2 фев 17 21:15 /home/diego/Документы/Адреса.txt

Владелец diego имеет права на чтение и запись в файл.

Группа diego имеет права только на чтение.

Остальным пользователям (всем, кто имеет доступ к системе) также доступно только чтение файла. Вам не нужно знать кто этот другой пользователь, потому что к другому относятся все остальные пользователи.

Теперь попробуем применить ту же самую команду ls -l , но к другому файлу:

$ ls -l /bin/ping
-rwxr-xr-x 1 root root 77432 фев 2 20:49 /bin/ping

Владельцем файла является пользователь root, который имеет права доступа на чтение, изменение и выполнение файла ( rwx ).

Все члены группы root имеют права на чтение и выполнение файла ( r-x ).

Остальные пользователи тоже имеют права на чтение и выполнение файла ( r-x ).

Замечу, что один пользователь может быть членом нескольких групп, но только основная группа пользователя может быть назначена файлу. Основную группу пользователя можно найти с помощью команды id , например, id -gn . Оставьте имя_пользователя пустым, если вы хотите получить информацию о своей собственной основной группе.

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

Изменение прав доступа. Команда chmod

Представим, что вы не хотите, чтобы ваш коллега видел ваши личные изображения. Это может быть достигнуто путем изменения прав доступа к файлам с помощью команды chmod (сокр. от «change mod). Используя эту команду, мы можем установить права доступа (Чтение, Запись, Выполнение) к файлу/каталогу для Владельца, Группы и всех Остальных пользователей.

Синтаксис команды chmod следующий:

chmod [разрешения] [имя файла]

Существует два способа использования команды chmod : символьный и числовой.

Использование команды chmod в символьном режиме

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

o — остальные пользователи;

a — для всех трех категорий (Владелец + Группа + Остальные).

А также используются следующие математические символы:

= — переопределение существующих разрешений новым значением.

Теперь, когда вы знаете, как это работает, давайте попробуем использовать команду chmod в символьном режиме и установим новые разрешения для ранее упомянутого файла Адреса.txt следующим образом:

чтение, запись и выполнение для Владельца;

чтение и запись для членов Группы;

чтение для Остальных пользователей.

chmod u=rwx,g=rw,o=r /home/diego/Документы/Адреса.txt

В результате мы получаем:

$ chmod u=rwx,g=rw,o=r /home/diego/Документы/Адреса.txt
diego@debian:

$ ls -la /home/diego/Документы/Адреса.txt
-rwxrw-r— 1 diego diego 2 фев 17 21:15 /home/diego/Документы/Адреса.txt

Как видите, права доступа к файлу изменились с -rw-r—r— на -rwxrw-r— , что нам и требовалось.

А если мы теперь хотим убрать разрешение на чтение файла для пользователей, не входящих в нашу группу и не являющихся владельцем файла, то достаточно выполнить следующее:

chmod o-r /home/diego/Документы/Адреса.txt

$ chmod o-r /home/diego/Документы/Адреса.txt
diego@debian:

$ ls -la /home/diego/Документы/Адреса.txt
-rwxrw—- 1 diego diego 2 фев 17 21:15 /home/diego/Документы/Адреса.txt

Права доступа к файлу изменились с -rwxrw-r— на -rwxrw—- .

Подумав, мы решаем дать полные права (за исключением права на выполнение) абсолютно всем пользователям системы, и выполняем команду:

$ chmod a+rw-x /home/diego/Документы/Адреса.txt

$ chmod a+rw-x /home/diego/Документы/Адреса.txt
diego@debian:

$ ls -la /home/diego/Документы/Адреса.txt
-rw-rw-rw- 1 diego diego 2 фев 17 21:15 /home/diego/Документы/Адреса.txt

Права доступа к файлу изменились с -rwxrw—- на -rw-rw-rw- . Все пользователи могут читать и изменять наш файл, но ни у кого нет права на его выполнение.

Использование команды chmod в числовом режиме

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

r (чтение/просмотр) = 4

w (запись/изменение) = 2

x (выполнение) = 1

– (не задано) = 0

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

Число Тип разрешения Символ
0 Нет разрешения −−−
1 Выполнение −−x
2 Запись −w−
3 (2+1) Запись + Выполнение −wx
4 Чтение r−−
5 (4+1) Чтение + Выполнение r−x
6 (4+2) Чтение + Запись rw−
7 (4+2+1) Чтение + Запись + Выполнение rwx

Поскольку вы должны определить разрешения для каждой категории пользователей (Владелец, Группа, Остальные), команда будет включать в себя три числа (каждое из которых представляет собой сумму привилегий).

В качестве примера, давайте посмотрим на наш файл Адреса.txt, права которого, я напомню, мы сконфигурировали (в символьном режиме) с помощью команды:

chmod u=rwx,g=rw,o=r /home/diego/Документы/Адреса.txt

Те же параметры разрешений, но уже в числовом формате, можно определить следующим образом:

chmod 764 /home/diego/Документы/Адреса.txt

Теперь поменяем разрешения файла так, чтобы Владелец мог читать и писать, Группа — только читать, а у Остальных — вообще не было прав на доступ. Судя по вышеприведенной таблице, для Владельца числовое представление прав доступа соответствует числу 6 ( rw- ), для Группы — числу 4 ( r— ), а для Остальных — 0 ( — ). В совокупности должно получиться 640 ( rw-r—— ):

$ chmod 640 /home/diego/Документы/Адреса.txt

$ chmod 640 /home/diego/Документы/Адреса.txt
diego@debian:

$ ls -la /home/diego/Документы/Адреса.txt
-rw-r—— 1 diego diego 2 фев 17 21:15 /home/diego/Документы/Адреса.txt

Как видите, права изменились с -rwxrwr— на -rw-r—— , этого мы и хотели.

Смена владельца и группы

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

Чтобы изменить владельца файла, необходимо применить команду chown (сокр. от «change owner»), синтаксис которой довольно прост:

chown [имя_пользователя] [имя_файла]

Если вы хотите сменить не только владельца, но также и группу для файла или каталога, то синтаксис будет следующим:

chown [имя_пользователь]:[группа] [имя_файла]

Если вы просто хотите изменить группу, а владельца оставить прежним, то синтаксис примет вид:

chown :[группа] [имя_файла]

Или же используйте команду chgrp (сокр. от «change group«), специально применяемую для изменения владельца группы файла или каталога:

chgrp [группа] [имя_файла]

В качестве тренировки давайте сменим владельца и группу файла Адреса.txt на пользователя root и группу root (при этом вам могут понадобиться права суперпользователя):

$ sudo chown root:root /home/diego/Документы/Адреса.txt
[sudo] пароль для diego:
diego@debian:

$ ls -la /home/diego/Документы/Адреса.txt
-rw-r—— 1 root root 2 фев 17 21:15 /home/diego/Документы/Адреса.txt
diego@debian:

Как вы можете видеть, владелец и группа файла сменились с diego:diego на root:root .

Заметьте, что мне пришлось использовать sudo с chown . Это потому, что здесь задействован пользователь root, и чтобы иметь с ним дело, вам нужны права суперпользователя.

Есть ли приоритет в правах доступа к файлам?

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

—-r—rw- 1 diego coolgroup 2 фев 17 21:15 /home/diego/Документы/Адреса.txt

Теперь, если пользователь diego попытается прочитать файл с помощью команды cat или less , сможет ли он это сделать? Ответ — нет, потому что у него нет разрешения на чтение.

Но как же так? Ведь пользователь diego является частью группы coolgroup, а группа имеет доступ на чтение. И даже все другие пользователи имеет разрешение на чтение и запись! Это должно означать, что каждый (включая пользователя diego) может читать и изменять файл, не так ли? Неправильно!

В Linux-системах приоритет считывания прав доступа отдается сначала Владельцу, затем Группе, а уже после Остальным. Система определяет, кто инициировал процесс ( cat или less в нашем примере). Если пользователь, инициировавший процесс, также является Владельцем файла, то считываются биты разрешений для Владельца.

Если процесс инициировал не Владелец файла, то система проверяет Группу. Если пользователь, инициировавший процесс, находится в той же Группе, что и Группа-владелец файла, то считываются биты разрешений для Группы.

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

Подсказки

Файл /etc/group содержит все группы, определенные в системе.

Вы можете использовать команду groups , чтобы найти все группы, членом которых вы являетесь:

Вы можете использовать команду newgrp для работы в качестве члена группы отличной от вашей заданной по умолчанию группы:

Две группы не могут владеть одним и тем же файлом.

В Linux нет вложенных групп. Одна группа не может быть подгруппой другой.

x — выполнение каталога означает разрешение «войти» в каталог и получить возможный доступ к его подкаталогам.

Подводя итоги

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

В Linux-системах различают три категории пользователей, а именно: Владелец, Группа и Остальные/Другие.

Права доступа к файлам подразделяются на права Чтения/Просмотра, Записи/Изменения и Выполнения, обозначаемые буквами r , w и x .

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

Команда chown может изменить владельца файла/каталога.

Команда chgrp может изменить группу, владеющую файлом.

Поделиться в социальных сетях:

Источник

Читайте также:  Драйвер wireless lan usb adapter для windows
Оцените статью