Просмотр прав файла linux

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

Пользователи и группы пользователей в рамках системы могут быть описаны в локальных файлах /etc/passwd и /etc/group или объявлены на уровне сервера NIS, LDAP или домена Samba. Эти пользователи и группы пользователей могут владеть файлами. На самом деле каждым файлом владеет как пользователь, так и группа пользователей.

Владельцы, участники группы и все остальные

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

Для всех файлов атрибуты означают:

  1. Разрешение на чтение содержимого файла, обозначается буквой r от английского read
  2. Разрешение на редактирование и запись содержимого файла, обозначается буквой w от английского write
  3. Разрешение на исполнение или запуск скрипта, обозначается буквой x от английского eXecute . На виртуальном хостинге право на исполнение применимо только к папкам и CGI-скриптам. Для обычных файлов (HTML-страницы, картинки, PHP скрипты и т.п.) право на исполнение не будет применяться

Для папок атрибуты означают:

  1. Разрешение на чтение позволяет пользователю получить список содержимого папки, обозначается буквой r от английского read
  2. Разрешение на запись позволяет пользователю создавать и удалять файлы в этой папке, обозначается буквой w от английского write
  3. Разрешение на исполнение разрешает пройти сквозь папку, обозначается буквой x от английского eXecute

В свойствах каждого файла и директории разрешения устанавливаются отдельно для:

  1. Владельца файла
  2. Группы владельцев файла, которой принадлежит этот файл
  3. Всех остальных

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

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

Читайте также:  Линукс выключить из консоли

Посмотреть владельца и права доступа к файлам/папкам

Посмотреть права доступа к файлам в Linux проше с помощью графического редактора mc .

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

user@bash: ls -l /home/karpaff/linuxtutorialwork/chick.png -rwxr----x 1 harry users 2.7K Jan 4 07:32 /home/karpaff/linuxtutorialwork/chick.png user@bash:

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

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

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

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

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

Команда chmod имеет типичный для команд linux синтаксис:

Опций команды, которые нам понадобятся во время работы:

Короткий формат опции Длинный формат Описание
-c Выводить информацию обо всех изменениях
-f Не выводить сообщения об ошибках
-v Выводить максимум информации
—preserve-root Не выполнять рекурсивные операции для корня «/»
—reference Взять маску прав из указанного файла
-R Включить поддержку рекурсии
—version Вывести версию утилиты
Читайте также:  Yandex ios android windows google linux cms

Буквенное обозначение

Права доступа в linux бывают трех основных видов:

  • r чтение
  • w запись
  • x выполнение
  • s выполнение от имени суперпользователя (дополнительный)

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

Математические операции означают следующее:

  • + добавляет к текущим правам доступа новое разрешение
  • — удаляет из текущих прав доступа определенное разрешение
  • = устанавливает полностью новые разрешения, предыдущие перезаписываются новыми

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

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

Команда chmod 1

В качестве действий могут использоваться знаки + включить или — отключить. Рассмотрим несколько примеров:

  • u+x разрешить выполнение для владельца
  • ugo+x разрешить выполнение для всех
  • ug+w разрешить запись для владельца и группы
  • o-x запретить выполнение для остальных пользователей
  • ugo+rwx разрешить все для всех

Команда chmod 2

Числовой формат

  • 0 никаких прав
  • 1 только выполнение
  • 2 только запись
  • 3 выполнение и запись
  • 4 только чтение
  • 5 чтение и выполнение
  • 6 чтение и запись
  • 7 чтение запись и выполнение

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

Команда chmod 3

Числовое обозначение Буквенное обозначение Описание
400 -r——— Владелец файла может только читать файл. Для всех остальных все действия с файлом запрещены
644 -rw-r—r— Все пользователи могут читать файл. Владелец может изменять файл
660 -rw-rw—- Владелец и группа могут читать и изменять файл. Для всех остальных все действия с файлом запрещены
664 -rw-rw-r— Все могут читать файл. Владелец и группа могут изменять
666 -rw-rw-rw- Все могут читать и изменять файл
700 -rwx—— Владелец может читать, изменять и запускать файл. Для всех остальных все действия с файлом запрещены
744 -rwxr—r— Все могут читать файл. Владелец может также изменять и запускать файл
755 -rwxr-xr-x Все могут читать и запускать файл. Владелец может также изменять файл
777 -rwxrwxrwx Все пользователи могут читать, изменять и редактировать файл
Читайте также:  Лучший git gui linux

Рекурсивная смена прав

Для смены прав будет использоваться всё та же команда chmod , к ней будет добавлен параметр –R , который собственно и указывает на то, что необходимо сменить права не только самой директории, но и на вложенные папки и файлы. Меняем права на директорию /home/qwerty , а так же на всё содержимое директории:

chmod -R u+rwx,go+rx /home/qwerty

Какие права следует выставлять

Обычно корректными правами для папок являются 755 , а для файлов 644 , возможны исключения о которых должен знать разработчик сайта. Также информацию по используемым атрибутам доступа можно найти в документации или на тематических форумах используемой CMS.

Изменение владельца для файла/папки

Синтаксис chown , как и других подобных команд linux очень прост:

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

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

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

Основные опции которые могут понадобиться:

Короткий формат опции Длинный формат Описание
-c —changes Подробный вывод всех выполняемых изменений
-f —silent, —quiet Минимум информации, скрыть сообщения об ошибках
—dereference Изменять права для файла к которому ведет символическая ссылка вместо самой ссылки (поведение по умолчанию)
-h —no-dereference Изменять права символических ссылок и не трогать файлы, к которым они ведут
—from Изменять пользователя только для тех файлов, владельцем которых является указанный пользователь и группа
-R —recursive Рекурсивная обработка всех подкаталогов
-H Если передана символическая ссылка на директорию — перейти по ней
-L Переходить по всем символическим ссылкам на директории
-P Не переходить по символическим ссылкам на директории (по умолчанию)

Источник

Оцените статью
Adblock
detector