Linux команды для изменения прав

Смена прав доступа пользователю в 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 протоколов.

    Источник

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


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

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

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

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

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

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

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

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

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

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

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

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

    • Первый блок 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, записанных друг за другом в виде одного «слова».

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

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

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

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

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

    Источник

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

    Вот почему UNIX и, следовательно, Linux (Linux – Unix-подобная система) имеют встроенную меру безопасности. Это гарантирует, что доступ к файлу или каталогу может быть изменен только желаемыми пользователями.

    К какому файлу будет обращаться пользователь, решает два фактора в Linux:

    • Владение файлами
    • Разрешение файла

    Понимание прав собственности на файл и разрешения имеет решающее значение для пользователя Linux. Здесь мы подробно объясним эти условия.

    Владение файлами в Linux

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

    Пользователь

    Пользователь является владельцем файла. Когда вы создаете файл, вы становитесь владельцем файла. Собственность также может быть изменена, но мы это позже.

    Группа

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

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

    Даже если вы являетесь единственным пользователем системы, вы по-прежнему будете частью многих групп. Такие дистрибутивы, как Ubuntu, также создают группу с именем, аналогичным имени пользователя.

    Другие

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

    Другими словами, «Пользователь» – это один пользователь, группа представляет собой набор пользователей, а «Другой» состоит из всех пользователей системы.

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

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

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

    • Чтение – просмотр или копирование содержимого файла
    • Запись – может изменять содержимое файла
    • Выполнение – может запускать файл (если его исполняемый файл)

    Разрешения для каталогов

    • Чтение – может перечислить все файлы и скопировать файлы из каталога
    • Запись – может добавлять или удалять файлы в каталог (требуется также разрешение на выполнение)
    • Выполнение – может войти в каталог

    Общие сведения о разрешениях и правах доступа к файлам в Linux

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

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

    Позвольте нам объяснить этот результат с изображением:

    Подробно весь вывод:

    • File type (Тип файла) : Обозначает тип файла. d означает каталог, – означает обычный файл, l означает символическую ссылку.
    • Permissions (Разрешения) : В этом поле отображается набор разрешений для файла. Я объясню это подробно в следующем разделе.
    • Hard Link Count (Количество жестких ссылок) : показывает, имеет ли файл жесткие ссылки. Счет по умолчанию – один.
    • User (Пользователь) : Пользователь, которому принадлежат файлы.
    • Group (Группа) : Группа, у которой есть доступ к этому файлу. Одновременно может быть только одна группа.
    • File Size (Размер файла) : Размер файла в байтах.
    • Modification timestamp (Время модификации) : Дата и время последнего изменения файла.
    • Filename (Имя файла) : Очевидно, имя файла или каталога.

    Теперь, когда вы поняли вывод команды ls -l, давайте сосредоточимся на части разрешения файла.

    В приведенной выше команде вы видите разрешение файла, подобное этому в девятизначном формате :

    Каждая буква обозначает конкретное разрешение:

    • r: разрешение на чтение
    • w: разрешение на запись
    • x: выполнить разрешение
    • -: не установлено разрешение

    Разрешения всегда находятся в порядке читать, писать и выполнять, т. е. rwx. И тогда эти разрешения устанавливаются для всех трех своего рода владельцев (см. раздел прав собственности) в порядке: Пользователь, Группа и Другое.

    Эта картина лучше объяснит:

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

    • Файл имеет права на чтение, запись и выполнение для Пользователя, Но кто является владельцем этого файла? У вас есть эта информация на выходе ls -l (т.е. пользователь andreyex).
    • Файл имеет права на чтение и запись для группы, но не выполняется. Какая группа? У вас есть информация о группе на выходе команды ls -l (т.е. группа andreygroup).
    • Файл имеет только разрешение на чтение для других, то есть всех, у кого есть доступ к системе. Вам не нужно знать, что это за другое, потому что «другое» означает всех пользователей.

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

    Файл andreyex.txt принадлежит пользователю andreyex а также andreyex имеет разрешение на чтение, запись и выполнение. Все члены группы andreygroup имеют доступ на чтение и запись к этому файлу, в то время как все остальные имеют доступ только к чтению этого файла.

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

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

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

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

    Общая информация : Разрешения назывались режимом доступа и, следовательно, CHMOD была короткая форма изменения режима доступа.

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

    • Абсолютный режим
    • Символический режим

    Использование chmod в абсолютном режиме

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

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

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

    Число разрешение
    0
    1 -x
    2 -w-
    3 (т.е. 2 + 1) -wx
    4 r-
    5 (т.е. 4 + 1) г-х
    6 (т.е. 4 + 2) rw-
    7 (т.е. 4 + 2 + 1) rwx

    Можете ли вы догадаться о разрешении файла в цифрах в файле andreyex.txt в нашем примере? Это пишут, это 754.

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

    Предположим, вы хотите изменить разрешение файла на andreyex.txt, чтобы каждый мог читать и писать, но никто не может его выполнить? В этом случае вы можете использовать команду chmod следующим образом:

    Если вы перечислите andreyex.txt сейчас, вы увидите, что разрешение было изменено.

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

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

    Здесь вы можете использовать символический режим с помощью команды chmod.

    В символическом режиме владельцы обозначаются следующими символами:

    • u = пользовательский пользователь
    • g = владелец группы
    • o = другое
    • a = все (пользователь + группа + прочее)

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

    • + для добавления разрешений
    • – для удаления разрешений
    • = для переопределения существующих разрешений с новым значением

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

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

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

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

    Полученные разрешения будут такими:

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

    Это приведет к удалению разрешения на выполнение для всех.

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

    Изменение владельца файла в Linux

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

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

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

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

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

    В нашем примере до сих пор, если вы хотите изменить владельца и группу пользователей на root, вы можете использовать команду chown следующим образом:

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

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

    Бонус Совет: Есть ли приоритет в разрешениях на файлы?

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

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

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

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

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

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

    Что еще?

    Существуют некоторые расширенные разрешения для файлов, такие как установка Sticky bit для предотвращения удаления файлов и т. д.

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

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

    Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

    Источник

    Читайте также:  Intel gma x4500 driver windows 10
  • Оцените статью