Нельзя скопировать папку нет прав на ее создание в месте назначения linux mint

Обновлено: 03.07.2024

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


Создание нового пользователя никак не влияет на существующих.

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

Из админки магазина.
В директории img невозможно создать поддиректорию.
Приходится под рутом это делать.
Уже и пользователя назначил для img root:root, все-равно не получается.
Не могу понять, что произошло. Админы жалуются.

например к usermod забыть -a дописать.

вот поэтому только рут и может туда ходить.

Телепаты в отпуске. Опиши ситуацию.

Администратор магазина, находясь в админке хочет добавить статью.
Посредством редактора (wysiwyg) добавляет картинку, создавая при этом отдельную папку для фоток этой статьи.
Так вот, на той неделе еще все работало нормально.
Теперь он не может ни создать папку, ни загрузить фото.
Обращается ко мне и я через ssh под рутом создаю папку и заливаю картинки.

Обращается ко мне и я через ssh под рутом создаю папку и заливаю картинки

chown -R имя_пользователя:группа пользователя путь_до_директории

Имя и группа - те под которым редактор сидит, а не root

upd: или он делает через веб-морду? тогда имя пользователя и группа те, от которого запущен веб-сервер

null123 ★★ ( 08.06.17 12:56:29 )
Последнее исправление: null123 08.06.17 12:58:16 (всего исправлений: 2)

А как узнать, под кем сидит редактор?


Debian? Пользователь и группа веб-сервера www-data (если, конечно, не было изменено намеренно).


Ты сделал команду типа

? И ты после этого удивляешься, что никто не может кроме root туда писать? Или ты пользователя img пытался добавить в группу root?


По ссылке книга в формате .exe, ЧЯДНТ?


Сорри, счас найду релеватную. Раньше качал отсюда, всё работало.


Уже и пользователя назначил для img root:root, все-равно не получается

А что должно было получиться?



форум, посвящённый Linux
дают ссылку на книгу, посвящённую Linux
книга в формате .exe


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

Если ты создал нового пользователя и перевёл на него соответствующие сервисы, то тебе следует дать ему необходимые права. Можешь хоть через mc это сделать - как удобнее будет. А можешь так, как выше написали - через chown -R. А ты как пользователя создал? Назначил ему ту же домашнюю директорию, что и на другого повешена?


Я просто из любопытства решил глянуть, вощемта.

Хорошо, поставим вопрос иначе - что мне написать вместо root?
Я не спец в серверах, я не системщик.

Просто раньше писало, теперь - нет.


Там рекламоговно и редиректы. Пришлось руками выдергивать.

1. adduser user 2. ввел пароль папка создалась в /home/user

За книжку спасибо, почитаю.
Помогите решить проблему сейчас, достают админы.


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

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


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


какого ты полез из-под рута менять права на файлы?

А главное, непонятно с какой целью.


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

Так же, вероятно веб-сервер запущен с правами не root пользователя, и root:root всё сломало еще больше. У меня вот вся папка:

drwxrwxr-x 8 www-data www-data 4096 Дек 12 15:53 dokuwiki

иначе тоже ничего не создается


После chown root:root вангую Permission denied.


Вот такой вот магазин

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

Вы бы для начала написали, что за магазин (название движка), что за веб сервер?


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

r read, то есть, право доступа на чтение файла или директории.
w write, то есть, право на изменение и удаление файла или директории.
x eXecute, то есть, право на запуск файла как программы или вход в директорию.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

u user, пользователь, владелец файла или директории.
g group, группа файла или директории.
o other, все другие.
a all, то есть, все вместе взятые - владелец, группа и все остальные.

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

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

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

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

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

r read - чтение.
w write - запись.
x eXecute - выполнение.

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

Здесь идёт цепочка из трёх перечисленных символов, но в определённом порядке 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 ввести имя пользователя):

В 3-м уроке была рассмотрена команда ls -l , а также краткое описание к выводу команды. В выводе команды также присутствует информация о правах доступа к данному файлу:

Отображение прав доступа

Права доступа разделены на 3 группы:

  • владелец файла
  • группа владельцев файла
  • другие пользователи

Описание прав доступа

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

  • r (read) - чтение файла разрешено, то есть можно просматривать его содержимое, открывать в текстовом редакторе.
  • w (write) - запись файла разрешена, то есть можно его редактировать, переименовывать, удалять.
  • x (execute) - исполнение файла разрешено. Это касается исполняемых файлов.
  • r (read) - разрешено просматривать содержимое каталога, то есть можно воспользоваться командой ls и посмотреть какие файлы и каталоги содержаться в данном каталоге.
  • w (write) - используется совместно с атрибутом x (execute). Позволяет удалять и переименовывать файлы в каталоге.
  • x (execute) - при использовании совместно атрибутом r (read) позволяет увидеть атрибуты файла, то есть его размер, дату модификации, права доступа. Одним словом позволяет полноценно воспользоваться командой ls -l . При использовании совместно с атрибутом w (write) позволяет перейти в каталог командой cd , удалять и переименовывать файлы.

Рассмотрим вышесказанное на примерах.

У нас в системе имеются 2 пользователя: teacher (учитель) и student (студент). У каждого из них имеется свой домашний каталог, в котором они могут хранить свои файлы.Так как пользователь student не является владельцем каталога /home/teacher и не относится к группе его владельцев, то для него будут действовать права доступа для категории остальных пользователей.

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

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

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

Отказано в доступе

Доступа нет. Попробуем хотя бы перейти в этот каталог:

Отказано в доступе

Снова нет доступа.

Пользователь teacher решил всем разрешить просмотр его файлов в каталоге:

Права доступа на чтение

Попробуем узнать что у него хранится:

Отказано в доступе

Мы узнали имена файлов, но абсолютно ничего не знаем какие это файлы и их атрибуты. То есть атрибут r (read) каталога позволяет просматривать имена (только имена) файлов с помощью ls , но не выдает о них дополнительную информацию. Попробуем перейти в этот каталог:

И снова неудача. Попробуем установить права записи, то есть атрибут w (write):


Теперь попробуем выполнить все те же действия, что и до этого:

Отказано в доступе

Отказано в доступе

Как видно атрибут w (write) сам по себе не работает. Удалим этот атрибут и установим x (execute):

Установлены права доступа на исполнение

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

В доступе разрешено

доступ к данному каталогу у нас имеется при наличии установленных прав на чтение и исполнение.

Попробуем теперь удалить или переименовать любой файл:

Отказано в доступе

Отказано в доступе

Операция запрещена, так как у нас для каталога teacher/ не установлен атрибут w (write).

Но ведь сами файлы в каталоге имеют полный доступ для всех остальных пользователей.. Почему мы ничего не можем сделать с данными файлами?

Отображение прав доступа

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

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

  • удалять файлы из каталога
  • перемещать/переименовывать файлы
  • создавать жесткие ссылки
  • создавать новые файлы и каталоги в данном каталоге

Однако данная политика не накладывает ограничения на редактирование и копирование файлов. Можно с легкостью отредактировать и сохранить файл. Кроме того, мы можем скопировать файл в свой каталог. Причем файл будет иметь совершенно иные атрибуты. Например, скопируем файл Worknotes.txt в каталог /home/student/:


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

А что можно делать с файлами, когда установлен атрибут x (execute)?

Можно делать следующее:

  • просматривать атрибуты файлов (совместно с атрибутом r ) с помощью команды ls -l
  • переходить в каталог командой cd
  • запуск исполняемых файлов
  • совместно с атрибутом w (write) можно удалять и перемещать файлы

Теперь установим атрибут w (write) для каталога /home/teacher/ и посмотрим, что произойдет:

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

Теперь можно делать абсолютно что угодно с файлами и каталогами.

То есть атрибут w (write) работает всегда в паре с x (execute)?

Все верно, но это в отношении каталогов. У файлов данные атрибуты независимы друг от друга.

А как быть, если пользователь student хочет предоставить доступ к своим файлам определенным пользователям и запретить остальным?

Для этого существует группа владельцев файла. Пользователю student достаточно поменять группу владельцев файла на teache r и предоставить соответствующие права, а всем остальным - запретить:

Изменена группа пользователей

А как поменять группу?

С помощью команды chgrp [опции] группа файл .

Например, чтобы поменять группу владельцев файла Linux.txt на teacher введем chgrp teacher Linux.txt.

А если имеется много файлов, то как это сделать быстрее и проще?

Есть специальная опция -R ( --recursive ). Например, имеется каталог Homework/ с файлами:

Рекурсивное отображение каталога

Применим команду chgrp -R teacher Homework/ :

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

А можно поменять и самого владельца?

Конечно, существует команда chown [опции] владелец файл .

Однако в тех случаях, когда нам необходимо поменять сразу и группу и владельца, то приходится выполнять 2 команды и это не очень удобно. Поэтому команда chown позволяет менять одновременно и владельца и группу chown [опции] владелец:группа файл. Опция -R ( --recursive ) действительна и для данной команды.

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

Существуют 2 способа:

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

  • - запретить
  • + разрешить
  • = заменить права на указанные

Права меняются с помощью команды chmod [опции] права_доступа файл. Например, файл notes.txt имеет следующие права доступа:

Права доступа файла notes.txt

Запретим остальным пользователям редактирование данного файла:

chmod o-w notes.txt

Установлен только атрибут четния

Теперь разрешим группе владельцев исполнение данного файла:

chmod g+x notes.txt

Установлены атрибуты rwx

То есть мы указываем объект ( u , g или о ), а затем с помощью символов управления назначаем или удаляем соответствующие права.

А можно одновременно выполнить вышеуказанные действия в одной команде?

Конечно, достаточно выполнить chmod o-w,g+x notes.txt и результат будет тот же.

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

  • владельцу назначить rw-
  • группе назначить r-x
  • остальным назначить r-- ?

Конечно можно. Для этого существует символ ” = ” : chmod u=rw,g=rx,o=r notes.txt.

А если нужно всем назначить одинаковые права, например r-x , то воспользуемся chmod a=rx notes.txt :

Установлены атрибуты rx

Существует и другой способ указать права доступа - с помощью восьмеричного представления. Не будем вдаваться в подробности булевы алгебры и двоично-восьмеричного преобразования. Просто запомним таблицу:

Символьное представление прав доступа

А вот как используется числовое представление прав доступа:

Так как у нас права доступа разделяются на 3 категории (владелец, группа, остальные), то применяется трехзначное обозначение. Например, чтобы абсолютно всем назначить права rwx , то применяется команда chmod 777 notes.txt .

Чтобы остальным пользователям разрешить только чтение файла, то есть r-- , выполним chmod 774 notes.txt .

Если хотим группе владельцев назначить права r-x , а остальным пользователям вообще все запретить, то выполним chmod 750 notes.txt .

Нет смысла запоминать все комбинации, достаточно запомнить числовое значение каждого символа и сложить все 3 цифры.

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

Отображение каталога Shared

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

Это так, однако в Linux есть небольшое решение. Существует специальный признак “sticky bit”, который устанавливается только для каталогов. Когда он установлен, то только владельцы файла могут его удалять и переименовывать. Остальным пользователям операции по удалению и переименованию файлов запрещены.

Как установить данный признак?

Можно это сделать 2-мя способами: символьным и числовым:

chmod +t Shared/ или chmod 1777 Shared/, то есть в начало добавляется 1.

А как узнать, что этот признак установлен?

Если признак установлен, то символ x (execute) в категории остальных пользователей заменяется на символ t:

Теперь пусть пользователь student удалит файлы пользователя teacher:

Неудачная попытка удалить файл

Как видно операция запрещена.

А как удалить данный признак?

chmod -t каталог или chmod 0xxx каталог .

Существуют еще 2 специальных признака: suid и sgid.

Для чего они используются?

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

А что это могут быть за файлы?

Например, утилиты passwd , visudo , chfn , gpasswd , useradd , groupadd , chgrp , chown и так далее.

Данные утилиты работают с такими файлами, как /etc/shadow, /etc/passwd, sudoers и т.д. Редактировать данные файлы может только суперпользователь. Поэтому в некоторых случаях и устанавливаются признаки suid или sgid.

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

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

А как узнать, что такой признак установлен?

suid устанавливается для владельца файла, sgid - для группы владельцев. Если он установлен, то на месте символа x (execute) присутствует символ s:



А как установить данные признак?

Опять же 2-мя способами: символьным и числовым.

chmod u+s файл или chmod 4xxx файл , то есть в начало добавляется 4.

chmod g+s файл или chmod 2xxx файл , то есть в начало добавляется 2.

А как удалить признак s ?

Одной из команд :

chmod u-s файл , chmod g-s файл или просто chmod 0xxx файл.

Список используемых команд:

chgrp группа файл - смена группы владельцев файла

chown владелец файл - смена владельца файла

chown владелец:группа файл - смены владельца и группы владельцев файла

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


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

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

Начнем с примера

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

В этом выводе в начале каждой строки для каждого файла перечислены права доступа к данному файлу (-rw-rw-r-- yuriy yuriy).

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

Или, например, если вы щелкните правой кнопкой по файлу и нажмете Свойства, то в открывшемся окне можно будет просмотреть и изменить права доступа к файлу (внешний вид окна может быть другой):

Из чего состоят права доступа

Каждый файл в операционной системе Linux имеет права доступа. Права доступа определяются тремя атрибутами:

Набор разрешений

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

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

Набор разрешений состоит из 3 блоков r w x :

Если какая-либо возможность отключена, то вместо соответствующего символа в блоке ставится прочерк, например: rw-rw-r--
  • Первый блок rwx определяет права доступа для владельца-пользователя.
  • Второй блок rwx определяет права доступа для владельца-группы.
  • Третий блок rwx определяет права доступа для всех остальных.

Владелец-пользователь

У каждого файла в Linux есть владелец-пользователь (также обозначается как user или owner). По умолчанию, тот, кто создал файл, становится его владельцем.

Первый блок r w x в наборе разрешений файла задет разрешения именно для данного пользователя.

Владелец-группа

У каждого файла в Linux есть владелец-группа (group). Звучит немного странно, но сейчас объясню. Каждая группа в Linux может содержать несколько пользователей. Все пользователи, принадлежащие группе, будут иметь одинаковые права доступа к данному файлу.

Например, у вас есть проект, в котором задействовано несколько работников. Вы можете создать для них группу, например — projectx. Для файлов этого проекта вы устанавливаете группу projectx и запрещаете доступ для всех остальных. Таким образом, только работники проекта (которые входят в группу projectx) смогут иметь доступ к этим файлам, а все остальные нет.

Второй блок r w x в наборе разрешений файла задает разрешения именно для данной группы.

Все остальные

К этой категории относятся все остальные пользователи, имеющие доступ к файлу. Но эти пользователи не относятся к владельцу-пользователю и они не входят в группу, которая владеет файлом (владелец-группа).

Третий блок r w x в наборе разрешений файла задает разрешения для этих пользователей.

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

Подытожим

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

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

Разрешения записываются символами r, w, x.

Набор разрешений состоит из трех блоков и записывается в виде трех rwx, записанных друг за другом в виде одного «слова».

Если какая-либо возможность отключена (запрещена), то вместо соответствующего символа в наборе разрешений ставится прочерк (символ минус).

Схема прав доступа файла в Linux

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

Обозначение прав доступа

Теперь можно еще раз рассмотреть пример вывода команды ls -l . Данная команда выводит список файлов в директории и показывает права доступа к файлам.

Команда ls l и права доступа в Linux

Как вы можете видеть, для файла myfile.sh установлены права доступа -rw-rw-r-- , владельцем файла является пользователь yuriy и владелец-группа yuriy. Здесь нужно пояснить, что большинство Linux дистрибутивов для каждого пользователя создают группу с таким же названием, как и имя пользователя. В нашем примере как раз такой случай — пользователь yuriy добавлен в группу yuriy.

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

Читайте также: