Logiss.ru

Ваша компьютерная помощь
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Настройка прав доступа в Linux

Права доступа к файлам в Linux

В операционной системе Linux есть много отличных функций безопасности, но она из самых важных — это система прав доступа к файлам. Linux, как последователь идеологии ядра Linux в отличие от Windows, изначально проектировался как многопользовательская система, поэтому права доступа к файлам в linux продуманы очень хорошо.

И это очень важно, потому что локальный доступ к файлам для всех программ и всех пользователей позволил бы вирусам без проблем уничтожить систему. Но новым пользователям могут показаться очень сложными новые права на файлы в linux, которые очень сильно отличаются от того, что мы привыкли видеть в Windows. В этой статье мы попытаемся разобраться в том как работают права файлов в linux, а также как их изменять и устанавливать.

Основные права доступа к файлам в Linux

Изначально каждый файл имел три параметра доступа. Вот они:

  • Чтение — разрешает получать содержимое файла, но на запись нет. Для каталога позволяет получить список файлов и каталогов, расположенных в нем;
  • Запись — разрешает записывать новые данные в файл или изменять существующие, а также позволяет создавать и изменять файлы и каталоги;
  • Выполнение — вы не можете выполнить программу, если у нее нет флага выполнения. Этот атрибут устанавливается для всех программ и скриптов, именно с помощью него система может понять, что этот файл нужно запускать как программу.

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

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

Именно с помощью этих наборов полномочий устанавливаются права файлов в linux. Каждый пользователь может получить полный доступ только к файлам, владельцем которых он является или к тем, доступ к которым ему разрешен. Только пользователь Root может работать со всеми файлами независимо от их набора их полномочий.

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

Специальные права доступа к файлам в Linux

Для того, чтобы позволить обычным пользователям выполнять программы от имени суперпользователя без знания его пароля была придумана такая вещь, как SUID и SGID биты. Рассмотрим эти полномочия подробнее.

  • SUID — если этот бит установлен, то при выполнении программы, id пользователя, от которого она запущена заменяется на id владельца файла. Фактически, это позволяет обычным пользователям запускать программы от имени суперпользователя;
  • SGID — этот флаг работает аналогичным образом, только разница в том, что пользователь считается членом группы, с которой связан файл, а не групп, к которым он действительно принадлежит. Если SGID флаг установлен на каталог, все файлы, созданные в нем, будут связаны с группой каталога, а не пользователя. Такое поведение используется для организации общих папок;
  • Sticky-bit — этот бит тоже используется для создания общих папок. Если он установлен, то пользователи могут только создавать, читать и выполнять файлы, но не могут удалять файлы, принадлежащие другим пользователям.

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

Как посмотреть права доступа к файлам в Linux

Конечно, вы можете посмотреть права доступа к файлам в Linux с помощью файлового менеджера. Все они поддерживают эту функцию, но так вы получите неполную информацию. Для максимально подробной информации обо всех флагах, в том числе специальных, нужно использовать команду ls с параметром -l. Все файлы из каталога будут выведены в виде списка, и там будут показаны все атрибуты и биты.

Чтобы узнать права на файл linux выполните такую команду, в папке где находится этот файл:

perm

За права файлов в linux тут отвечают черточки. Первая это тип файла, который рассмотрен в отдельной статье. Дальше же идут группы прав сначала для владельца, для группы и для всех остальных. Всего девять черточек на права и одна на тип.

Рассмотрим подробнее, что значат условные значения флагов прав:

  • — нет прав, совсем;
  • —x — разрешено только выполнение файла, как программы но не изменение и не чтение;
  • -w- — разрешена только запись и изменение файла;
  • -wx — разрешено изменение и выполнение, но в случае с каталогом, вы не можете посмотреть его содержимое;
  • r— — права только на чтение;
  • r-x — только чтение и выполнение, без права на запись;
  • rw- — права на чтение и запись, но без выполнения;
  • rwx — все права;
  • —s — установлен SUID или SGID бит, первый отображается в поле для владельца, второй для группы;
  • —t — установлен sticky-bit, а значит пользователи не могут удалить этот файл.
Читайте так же:
Как скрыть подписки в Инстаграме

В нашем примере, файл test1 имеет типичные разрешения для программ, владелец может все, группа только чтение и выполнение, а все остальные — только выполнение. Для test2 дополнительно установлен флаг SUID и SGID. А для папки test3 установлен Sticky-bit. Файл test4 доступный всем. Теперь вы знаете как посмотреть права на файл linux.

Как изменить права файла в Linux

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

$ chmod опции категория действие флаг файл

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

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

  • u — владелец файла;
  • g — группа файла;
  • o — другие пользователи.

Действие может быть одно из двух, либо добавить — знак «+», либо убрать — знак — «-«. Что касается самих прав доступа, то они аналогичны выводу утилиты ls: r — чтение, w — запись, x — выполнение, s — suid/sgid, в зависимости от категории, для которой вы его устанавливаете, t — устанавливает sticky-bit. Например, всем пользователям полный доступ к файлу test5:

chmod ugo+rwx test5

Или заберем все права у группы и остальных пользователей:

chmod go-rwx test5

Дадим группе право на чтение и выполнение:

chmod g+rx test5

Остальным пользователям только чтение:

Для файла test6 установим SUID:

А для test7 — SGID:

Посмотрим что получилось:

perm1

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

Выводы

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

На завершение хочу предложить неплохое видео про права доступа в Linux:

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

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

В этом руководстве вы научитесь изменять права доступа в Linux / Unix и устанавливать нового владельца файла/папки через командную строку. Существует 2 базовые команды, которые могут быть использованы для данных целей: chmod и chown.

Прокачайте ваш Linux сервер, воспользовавшись скидками на VPS-хостинг в Hostinger!

Что вам понадобится

Перед тем, как вы начнете это руководство, вам понадобится следующее:

  • Доступ к командной строке

Шаг 1 – Как изменить права доступа в Linux через командную строку

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

ТипОбъяснение
Владелец (owner)Пользователь, создавший и владеющий данным файлом или папкой.
Группа (group)Все пользователи, члены одной группы.
Другие (other)Все другие пользователи в системе, не являющиеся ни владельцами, ни членами группы.

Команда ls -l, может быть использована для отображения прав доступа и владельца. К примеру, команда ls -l file1.txt отобразит:

-rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt

  • “-rwxr–rw-“ – эта часть строки показывает права доступа. Здесь 4 главные буквы на которые вам надо обратить внимание: r,w,x,d. d означает, что тип файла — это каталог. В нашем примере, такой буквы нет (она стояла бы первой в строке), здесь вместо нее стоит символ “-“ (который в основном означает “нет”). Буква x означает разрешение на выполнение файла или папки (это разрешение необходимо для входа в папку). Буква w означает разрешение на запись файла или папки (редактирование, удаление и т.д.) И наконец последняя буква r, которая означает чтение. Если у вас есть права на чтение файла, вы можете прочесть содержимое файла, но не сможете предпринять другие действия (к примеру, вы можете прочитать код скрипта, но не сможете выполнить его).
  • 1 – число хард связи. Проще говоря, хард связь это дополнительное имя для существующего файла.
  • user user – это значение показывает владельца файла и его группу.
  • – это значение показывает размер файла.
  • Jan 19 12:59 – отображает дату последнего изменения.
  • file1.txt – предоставляет имя файла или папки.

Хорошо, теперь давайте вернемся к команде chmod. Это команда позволяет нам изменить права доступа к файлу или папке. Мы научим вас, как это сделать просто складывая номера. Каждое из прав доступа имеет свой собственный номер:

  • r (чтение) – 4
  • w (запись) – 2
  • x (выполнение) – 1

К примеру, если мы хотим изменить права доступа к файлу file1.txt на эти:

-rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt

Мы должны написать следующую команду:

Каждый номер в этой команде представляет собой права для одного из типов пользователей (владелец, группа и другие). Первый номер 7. Теперь, используя объяснение числовых значений выше, единственный вариант для получения числа 7 — сложение чисел 4, 2 и 1, получаем 4+2+1=7. Проще говоря, это означает ВСЕ права доступа (чтение, запись, выполнение — rwx). Первый номер устанавливает права доступа для владельца файла. Второй номер 4, который означает права доступа -r (чтение), устанавливает права доступа для группы владельца. Третий номер 6, используя тот же способ, что и с первым номером, 4+2=6, дает группе другие, права на чтение (4) и запись (2) файла. Третья часть в команде (file1.txt) – это имя файла для которого мы изменяем права доступа.

Еще один пример:

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

Вот список самых наиболее распространённых прав доступа для файлов:

ЗначениеЦифровое значениеОбъяснение
-rw——-600Владелец может читать и записывать файл.
-rw-r–r–644Владелец может читать и записывать файл, группа и другие могут только читать.
-rw-rw-rw-666Владелец, группа и другие могут читать и записывать.
-rwx——700Владелец может читать, записывать и выполнять, группа и другие не имеют никаких прав доступа.
-rwx–x–x711Владелец может читать, записывать и выполнять, группа и другие могут только выполнять.
-rwxr-xr-x755Владелец может читать, записывать и выполнять, группа и другие могут читать и выполнять.
-rwxrwxrwx777Все типы пользователей могут читать, записывать и выполнять.

Наиболее распространенные права доступа для каталогов:

ЗначениеЦифровое значениеОбъяснение
drwx——700Только владелец может читать и записывать в этом каталоге.
drwxr-xr-x755Владелец, группа и другие могут читать каталог, но только владелец может изменять содержимое.

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

Шаг 2 – Изменение владельца файла или папки через командную строку

chown – команда используется для смены владельца файла или папки. Самый стандартный синтаксис для этой команды:

К примеру, если у нас есть файл “demo.txt” и мы хотим изменить владельца на “jerry” и группу владельца на “clients”, нам необходима эта команда:

Как вы видите, мы отделили владельца и группу владельца символом “:” (двоеточие). Если мы хотим поменять только владельца файла, используем этот код:

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

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

В этом случае, группа владельца изменится на clients (владелец останется прежним).

Шаг 3 – Использование дополнительных опций с командами chmod и chown

Одна из основных опций работающая с обеими командами это -R, которая означает рекурсивный. Эта опция позволяет вам менять права доступа и владельца файла, заданной папки и ВСЕХ других файлов внутри нее.

ВАЖНО! Будьте очень осторожны с этой опцией, если вы используете ее неправильно, вы можете изменить права доступа и владельца ВСЕХ файлов в вашей системе, что приведет к ошибкам в работе и трате огромного количества времени на откат изменений.

  • “-f” – тихая или силовая опция. При использовании данной опции скроет большинство сообщений об ошибках.
  • “-v” – делает диагностику каждого файла затронутого командой.
  • “-c” – схожа с опцией -v, но предоставляет информацию только в случае реальных изменений.

Заключение

В этом руководстве вы научились, как изменить права доступа Linux и узнали команды для смены владельца папки или файла. Знание данных команд поможет вам в более удобном управлении вашим сервером. Если вы хотите продолжить изучение по данной теме, проверьте эти руководства:

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

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

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

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

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

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

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

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

Чтобы просмотреть права доступа к файлу, используйте ls команду:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Когда флаг пользователя опущен, по умолчанию используется a .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 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 команду в числовом режиме:

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

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

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

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

Заключение

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

Настройка прав доступа в Linux

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

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

Просмотр прав доступа на файлы и каталоги в Linux.

Прежде, чем двигаться далее, советую прочитать первую статью (если Вы этого не сделали, конечно) данного цикла про навигацию в терминале.

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

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

У нас будет выведено следующее сообщение в терминале:

Просмотр прав доступа на файлы и каталоги в Linux

Как видно, для наших файлов и каталогов вывелась подробная информация.

Слева отображены права доступа на файл и директорию вида:

Чуть ниже подробно разберём это «непонятную» надпись, а пока двигаемся дальше.

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

Вот как это выглядит:

Просмотр прав доступа на файлы и каталоги в Linux

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

Выглядит это следующим образом:

Просмотр прав доступа на файлы и каталоги в Linux

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

либо ввести каталог:

Выглядит это следующим образом:

Просмотр прав доступа на файлы и каталоги в Linux

Расшифровка «символьной формы» прав доступа на каталоги и файлы в Linux.

После выполнения команд из первого пункта у нас выдавалось сообщение вида:

Будем использовать в качестве примера в этом пункте.

Это символьная форма прав доступа в Linux. Давайте разберем её подробно.

Данное сообщение состоит из 10 символов.

Первый символ обозначает тип данных.

Данный символ может быть следующим:

В большинстве случаев это будет:

обычный файл;
dдиректория/каталог/папка (directory);
lсимволическая ссылка (link).

Но может быть следующим:

bфайл блочного устройства (block);
cфайл символьного устройства;
sдоменное гнездо (socket);
pименованный канал (pipe).

Следовательно, в нашем случае это директория (каталог, папка).

Следующие 9 символов обозначают права доступа.

Данные 9 символов состоят из трех групп:

  • Первая группа из трех символов обозначает права доступа владельца файла или директории (u — user).
  • Вторая группа из трех символов обозначает права доступа на файл или директорию для системной группы (g — group).
  • Третья группа из трех символов обозначает права доступа на файл или директорию для всех остальных (o — other).

У этих трёх групп одинаковая комбинация символов, то есть:

Что же они обозначают?

Очень легко запомнить:

rread, то есть, право доступа на чтение файла или директории.
wwrite, то есть, право на изменение и удаление файла или директории.
xeXecute, то есть, право на запуск файла как программы или вход в директорию.

Всегда располагаются в таком порядке:

Если вместо какого-то символа идёт тире (минус), к примеру:

то это значит, что отсутствуют права на изменение и удаление файла или директории.

то это обозначает, что отсутствуют права на изменение и запуск файла или директории. Доступен только просмотр.

Таким образом, из нашего примера:

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

Как видите, ничего сложного нет.

Определение владельца и группы файла или директории.

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

Те же самые команды из первого пункта:

Определение владельца и группы файла или директории

Как видно на скриншоте:

  • в третей колонке идет имя владельца файла;
  • в четвертой колонке идет название группы.

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

В Nautilus (файловом менеджере Ubuntu), можно нажать правой кнопкой мыши на файле, открыть свойства, перейти на вкладку «Права» и увидеть:

Определение владельца и группы файла или директории

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

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

Теперь приступим к их изменению в терминале.

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

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

Вместо persons нужно использовать совокупность символов или один из:

uuser, пользователь, владелец файла или директории.
ggroup, группа файла или директории.
oother, все другие.
aall, то есть, все вместе взятые — владелец, группа и все остальные.

Этот символ обозначает субъект, которому будут назначены, удалены или изменены права.

Вместо Operator, может быть один из следующих символов:

+«плюс», добавляем нужные права.
«минус», удаляем нужные права.
=«равно», устанавливаем нужные права.

Этот символ обозначает оператор, от которого зависит, будут ли добавлены, удалены или установлены нужные права, которые последуют за оператором.

Вместо Rights перечисляем символы прав доступа:

rread — чтение.
wwrite — запись.
xeXecute — выполнение.

Важно замечание.

Здесь идёт цепочка из трёх перечисленных символов, но в определённом порядке rwx. Но при этом, не нужно указывать тире для пропуска. Примеры: rwx, rw, wx, rx, r, w, x.

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

Для рекурсивного изменения прав в каталоге используется параметр -R.

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

Важно.

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

Приступим к практике. Разберём примеры.

1. Убираем права для группы на изменение файла:

Убираем права для группы на изменение файла

2. Убираем права на чтение у группы и всех остальных:

Убираем права для группы на изменение файла

3. Добавим для группы права на чтение и изменение:

Убираем права для группы на изменение файла

4. Изменим рекурсивно права на файлы и директории внутри нужной директории. Отменим, к примеру, все права у остальных пользователей и групп:

Убираем права для группы на изменение файла

Вы, наверное, зачастую видели команду:

Это значит, что мы даём права на выполнение данного файла как программы всем.

Это аналогично следующим командам:

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

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

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

Думаю, что многие из вас видели на форумах или сайтах о Linux советы по изменению прав, вида:

Вы их выполняли в терминале. А многие из вас задумывались, что это за «магические цифры». Но на самом деле никакая это не магия.

Давайте разберем, что же значат эти цифры.

Итак, у нас есть комбинация прав доступа на директорию:

А теперь делим на группы:

Теперь преобразуем в двоичном виде наши права доступа:

  • если есть символ, то это 1.
  • если тире (пропуск), то это 0.

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

А теперь переведем из двоичной в восьмеричную систему исчисления:

Вот и получили наше «магическое» число 775.

Более проще запомнить:

rэто 4
wэто 2
xэто 1

Каждая цифра обозначает определенную группу:

  • Первая цифра — права для владельца,
  • вторая цифра — права для группы,
  • третья цифра — права для остальных.

Просто прибавляем цифры. К примеру, нам нужно чтение r и изменение w. Прибавляем 4+2, получаем 6.

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

Изменение прав доступа на файлы и каталоги в абсолютном режиме

Вот так меняются права в абсолютном (числовом) режиме.

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

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

Используется следующий шаблон выполнения данной команды chown:

Если хотим изменить только группу, то шаблон следующий:

Если хотим изменить только владельца, то шаблон следующий:

В принципе, ничего сложного.

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

Чтобы узнать в каких группах состоит текущий пользователь:

Получить список пользователей:

Получить группы конкретного пользователя (вместо user_name ввести имя пользователя):

Ссылка на основную публикацию
Adblock
detector