Как изменить permissions linux

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

Understanding Linux File Permissions

В 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

Режим доступа к файлу можно изменить с помощью команды chmod. Изменять права доступа к файлу позволено только его владельцу либо пользователю root. В UNIX-системах код задается в виде восьмеричного числа. Также поддерживается система мнемонических (буквенных) обозначений. Первый способ удобнее для системного администратора, но при этом можно задать только абсолютное значение режима доступа. А используя мнемонический синтаксис, вы можете сбрасывать и устанавливать отдельные параметры, к примеру, добавить право на чтение либо убрать право на запись.

Первым аргументом команды chmod является спецификация прав доступа, то есть восьмеричное число (774, 777 и т.д.) либо мнемоническое обозначение (r+o, w-u и т.д.). Второй и последующий аргументы — имена файлов, права доступа к которым подлежат изменению. При использовании восьмеричной нотации первая цифра относится к владельцу, вторая — к группе, а третья — к остальным пользователям.

Права доступа к файлам подразделяются на следующие:
r — право на чтение данных.
w — право на изменение содержимого (запись – только изменение содержимого, но не удаление).
x — право на исполнение файла.

Теперь о правах доступа к папке (директории):
r — право на чтение директории (можно прочитать содержимое директории, т.е. получить список объектов, находящихся в ней)
w — право на изменение содержимого директории (можно создавать и удалять объекты в этой директории, причем если вы имеете право на запись, то удалять вы сможете даже те файлы, которые вам не принадлежат)
x — право, которое позволяет вам войти в директорию (это право всегда проверяется в первую очередь, и даже если вы имеете все нужные права на объект, который закопан глубоко в цепочке директорий, но не имеете права “X” для доступа хотя бы к одной директории на пути к этому файлу, то к нему вы так и не пробьетесь)

В таблице указано восемь возможных комбинаций:

Восьмеричное число Двоичное число Режим доступа
0 000
1 001 —x
2 010 -w-
3 011 -wx
4 100 r—
5 101 r-x
6 110 rw-
7 111 rwx

предоставляет владельцу все права, а всем остальным пользователям — только право выполнения, а команда:

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

Для применения прав доступа ко всем вложенным в директорию файлам и папкам (рекурсивно) необходимо в команду добавить ключ -R. То есть команда будет выглядеть как:

Примеры мнемонических спецификаций команды chmod:

Спецификация Значение
u+w Владельцу файла дополнительно дается право выполнения.
ug=rw,o=r Владельцу и группе предоставляется право чтения/записи, остальным пользователям — право чтения.
a-x Все пользователи лишаются права выполнения.
ug=srx,o= Владельцу и группе дается право чтения/выполнения, устанавливается также бит SUID; остальным пользователям запрещен доступ к файлу.
g=u Группе назначаются такие же права, что и владельцу

Символ u («user») обозначает владельца файла, символ g («group») — группу, символ о («others») — других пользователей, символ a («all») — всех пользователей сразу.
То есть, если необходимо убрать право на редактирование всех вложенных файлов и папок у других пользователей, то с помощью мнемонических обозначений команда будет выглядеть следующим образом:

В качестве примера мы будем устанавливать права доступа 777 для папки /var/www/mysite и всех вложенных в нее файлов и каталогов.
ВНИМАНИЕ! Установка прав доступа 777 используется исключительно в качестве примера, их использование может привести к уязвимости сервера!

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

  1. Входим по протоколу SSH на ВПС с root привилегиями.
  2. Переходим с помощью команды cd в директорию, где расположена необходимая нам папка. В данном случае это /var/www:
  3. С помощью chmod устанавливаем рекурсивно права доступа для mysite:

Для подключения к серверу по протоколу SFTP мы будем использовать программу FileZilla. Данная программа бесплатна, поддерживает русский язык и кросплатформенна. Вы можете скачать ее с официального сайта: https://filezilla-project.org/. Обратите внимание, что в левой колонке отображает дерево каталогов Вашего компьютера, а в правой удаленной машины, в данном случае ВПС.

  1. Подключаемся к ВПС с root привилегиями по SFTP.
  2. Переходим в каталог /var/www
  3. Нажимаем правой кнопкой мышки на папке mysite и выбираем «Права доступа к файлу»

Во всплывающем окне устанавливаем необходимые права 777 и нажимаем «Перенаправить во вложенные каталоги» и выбираем «Применить ко всем каталогам и файлам» и нажимаем ОК.

ISPmanager

  1. Войти в КП от имени root пользователя.
  2. Зайти в «Система → Менеджер файлов»
  3. Перейти в директорию /var/www
  4. Выбрать папку mysite и в верхнем меню нажать кнопку «Атрибуты»

  • Во всплывающем окне установить права доступа 777.
  • В пункте «Изменить дочерние элементы» из выпадающего списка выбрать «изменить владельца и права для файлов и директорий»

    DirectAdmin

    К сожалению, в КП DirectAdmin не предоставляется доступ к корневой файловой системе с помощью встроенного менеджера файлов. В связи с этим, в качестве примера, мы изменим права доступа для директории /domains/domain.com/public_html/mysite

    1. Входим в КП DirectAdmin
    2. Нажимаем кнопку Files в панели сверху

  • Перейти в папку /domains/domain.com/public_html
  • Поставить галочку напротив каталога mysite, после чего установить права доступа к папке 777 и поставить галочку напротив Recursive, для применения данных прав доступа ко всем вложенным файлам и папкам.

    cPanel

    В cPanel также не предоставляется доступ к корневой директории, в связи с чем мы сменим, в качестве примера, права доступа для папки /public_html/mysite. Обратите внимание, что менеджер файлов доступен только на уровне пользователя.

    1. Войти в cPanel на уровне пользователя.
    2. Перейти в Файлы → Диспетчер файлов.

  • Перейти в директорию /public_html
  • Выделить папку mysite и нажать «Разрешения»

    В всплывающем окне установить необходимые права доступа и нажать «Change Permissions». Обратите внимание, что файловый менеджер cPanel не умеет изменять права для всех вложенных файлов и папок. Рекурсивно сменить права доступа Вы всегда сможете с помощью SSH либо SFTP протоколов.

    Источник

    Читайте также:  Close all windows vbs
  • Оцените статью