Дать полные права на папку linux


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

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

Первые 10 символов содержат информацию о правах к файлу или каталогу. 

-

тип файла

rw-

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

r--

права пользователей группы-владельца

r--

права всех остальных пользователей

Далее идёт имя пользователя-владельца и группы -владельца.

root

файл принадлежит пользователю root

root

файл принадлежит группе root

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

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

Каждый из этих уровней доступа можно выразить в восьмеричной системе с помощью числового значения: 4 (r), 2 (w), 1 (x). Вот так мы и получаем общую схему прав:

a — любые пользователи
u — права пользователя g — права группы o — права всех остальных
r w x r w x r w x
4 2 1 4 2 1 4 2 1

 

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

 rwxrwxrwx = (4+2+1), (4+2+1), (4+2+1) = 777

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

Смена владельца файла или директории

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

 chown [новый пользователь]:[новая группа] [файл или папка]

Если не указывать группу, изменится только пользователь-владелец. Если не указывать пользователя (:[новая группа]), изменится только группа-владелец. 

При изменении прав на директории можно использовать параметр -R. Он рекурсивно изменит владельца всех вложенных директорий и файлов. Представим, что нам нужно предоставить права на папку new-user для одноимённого пользователя и его группы. Команда для этого будет выглядеть так:

 chown -R new-user:new-group /home/users/new-user

Второй инструмент — chgrp. В отличие от первого, меняет только группу-владельца:

 chgrp [группа] [файл или папка]

Как и chown, может работать рекурсивно с помощью ключа -R.

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

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

 chmod [настройки прав] [файл или папка]

При работе с директориями опция -R позволит изменить права на все вложенные файлы и папки.

Настройки прав в chmod можно определять двумя способами:

  1. Указав категорию (u — пользователь-владелец, g — группа-владелец, o — другие пользователи, a — все пользователи), модификатор (+, - , =) и, соответственно, нужные права (r, w, x). 

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

    Допустим, мы не хотим, чтобы кто-то в принципе мог запускать этот файл на выполнение. В таком случае нам нужно убрать параметр «x» из прав всех категорий пользователей сразу. Это можно сделать так: 

     chmod a-x example.txt

    Представим, что потом мы решили вернуть владельцу права на запуск файла. То есть нам нужно добавить параметр «x» в категорию пользователя-владельца:

     chmod u+x example.txt

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

     chmod u=rwx example.txt
  2. Указав права в виде числового значения. Возможно, это не так прозрачно, но зато быстрее. В качестве параметра нам нужно передать это самое цифровое выражение уровня прав:

     chmod 777 example.txt 

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

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

     chmod 666 example.
    
    
     txt

    А потом вернём, но только пользователю-владельцу:

     chmod 766 example.txt

Бывает, что нам нужно изменить права только на все папки или только на все файлы в определённой директории. Часто с этим можно столкнуться при настройке прав на файлы сайтов. Вот вам пара однострочников на этот случай: 

  • Смена прав на 755 для всех папок внутри /var/www/sites/example.com:

     find /var/www/sites/example.com/ -type d -exec chmod 755 {} \;
  • Смена прав на 644 для всех файлов внутри /var/www/sites/example.com:

     find /var/www/sites/example.com/ -type f -exec chmod 644 {} \;

Изменение атрибутов файлов

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

Посмотреть атрибуты файлов в текущей директории можно с помощью команды lsattr. Если запустить её без аргументов, она выведет атрибуты всех файлов в текущей директории. Если указать путь к файлу или папке, она перечислит свойства указанного файла или списка файлов в указанной папке соответственно:

 lsattr example.txt

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

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

i

«godmode» — файл становится неуязвим для любых изменений. Его нельзя удалить, переименовать, изменить содержимое, создать символьную ссылку на него.

a

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

s

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

u

активирует «обратимое» удаление файлов. Это значит, что при удалении файла с этим атрибутом его содержимое можно восстановить.

с

сжатый файл. Все данные, записываемые в файл, автоматически сжимаются, а данные, извлекаемые из файла — возвращаются в исходное состояние.

d

настраивает для файла исключение при использовании утилиты dump. То есть файл не будет включен в архив при создании резервной копии этим способом.

e

показывает, что файл в качестве указателей использует экстенты.

j

в журналируемых файловых системах (ext3, ext4) указывает на то, что при сохранении файла он сначала будет записан в журнал ФС, и только потом — на диск.

A

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

D

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

S

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

 

Изменить атрибуты файла позволяет команда chattr:

 chattr [модификатор][изменяемые атрибуты] [целевой файл или папка]

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

 chattr +i example. txt

Проверяем — посягательства не работают.

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

 chattr -i example.txt

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

 man chattr 

Права на файлы и папки в Linux: Chmod

Август12

Довольно долго путался в правах — когда только начал работать с линуксом. Без дополнительных пояснений запись в виде «rwx rwx r—» выглядит довольно необычно и непонятно для неискушенных пользователей. В действительности же, достаточно иметь простые таблицы сравнений, чтобы без труда разобраться в этом. Системному администратору, и любым фанатам линукса — знать эти значения, Обязательно!

Итак, права в Linux на любой файл или папку всегда назначаются, для 3х групп пользователей:

1. Сам пользователь.

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

3. Все остальные пользователи.

Права могут быть 3х видов:

r - разрешает просмотр содержимого
 
 w - разрешает изменение содержимого
 
 x - разрешает запуски выполнение
 

Ниже представлена таблица, показывающая разнообразные комбинации Chmod для разных типов объектов:

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

‘Права’ ‘Файл’ ‘Папка’
Ничего нельзя делать Доступ к каталогу и его подкаталогам запрещен
r— Можно читать содержимое Можно прочитать содержимое каталога
rw- Можно видеть и изменять содержимое Можно добавить, удалить, изменить файл каталога
rwx Читать, изменять и выполнять файлик Можно читать, удалять, изменять файлики, сделать каталог текущим, т.е. “войти” в этот каталог.
r-x Можно прочитать, либо выполнить Можно зайти в каталог и прочитать его содержимое, удалять или добавлять файлы нельзя.
—x Выполнить, если файлик двоичный Пользователь может выполнить двоичный файл о существовании которого ему известно, зайти или прочитать каталог запрещено

Таблица значений:

‘Права’ ‘Цифровая форма’ ‘Символьная форма’
Ничего нельзя делать 0
Только чтение 4 r—
Только запись 2 -w-
Только выполнение 1 —x
Чтение и запись 6 rw-
Чтение и выполнение 5 r-x
Чтение, запись, выполнение 7 Rwx

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

r (читать) заменяют на 4

w (запись) заменяют на 2

x (исполнение) заменяют на 1

0 означает – ничего не делать (то, что в буквенной записи обозначается дефисом)

Давайте опять вернемся к примеру записи, приведенному мною чуть ранее: rwx rwx r--. Если заменить в ней буквы и дефисы на цифры, в соответствии с только что описанным правилом и при этом сложить цифры в каждой тройке, то получим цифровой вид этой записи: 774.

Т.е. получается, что сумма этих цифр и показывает chmod по отношению к файлам или папке. Например:

7 (rwx) = 4 + 2 +1 (полные права)
 
 5 (r-x)= 4 + 0 + 1 (чтение и выполнение)
 
 6 (rw-) = 4 + 2 + 0 (чтение и запись)
 
 4 (r--) =4 + 0 + 0 (только чтение)

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

‘Права’ ‘Владелец’ ‘Группа’ ‘Остальные’
777 читать
записывать
исполнять
читать
записывать
исполнять
Читать
записывать
исполнять
776 читать
записывать
исполнять
читать
записывать
исполнять
Читать
записывать
775 читать
записывать
исполнять
читать
записывать
исполнять
Читатьисполнять
774 читать
записывать
исполнять
читать
записывать
исполнять
Читать
766 читать
записывать
исполнять
читать
записывать
Читать
записывать
655 читать
записывать
читатьисполнять Читатьисполнять
644 читать
записывать
читать Читать

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

chmod ‘числовое значение прав’ ‘папка или файл, на который назначаем права’

Примеры

chmod 777 script. sh
 полные права на запись, чтение и исполнение для всех групп пользователей для файла script.sh
 соответствие: rwxrwxrwx
chmod  644 /home/feanor184/script.sh
 права на чтение и запись для владельца файла script.sh который находится в корневой домашней директории пользователя feanor184, для остальных групп этот файл будет доступен только для чтения.
 соответствие: rw-r—r—
 
chmod -R 777 /scripts
 полные права на папку scripts и на все вложенные в нее файлы, для всех групп пользователей. ( ключ -R задается для назначения прав для вложенных файлов ) 
 
 

Как изменить права доступа к каталогу в Linux | Pluralsight

Перейти к содержимому

Как изменить права доступа к каталогу в Linux?

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

  • chmod +rwx имя файла для добавления разрешений
  • chmod -rwx имя каталога для удаления разрешений.
  • chmod +x имя файла, чтобы разрешить исполняемый файл.
  • chmod-wx имя файла, чтобы получить права на запись и выполнение.

Обратите внимание, что «r» предназначен для чтения, «w» — для записи, а «x» — для выполнения.

Это только изменяет разрешения для владельца файла.

Как изменить права доступа к каталогу в Linux для владельцев групп и других

Команда для изменения прав доступа к каталогу для владельцев групп похожа, но добавляется «g» для группы или «o» для пользователей:

Чтобы изменить права доступа для всех, используйте «u» для пользователей, «g» для группа, «о» для других и «уго» или «а» (для всех).

  • chmod ugo+rwx имя папки , чтобы разрешить чтение, запись и выполнение всем.

  • chmod a=r имя_папки , чтобы разрешить всем только чтение.

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

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

  • имя группы chgrp имя файла
  • имя группы chgrp имя папки

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

Как сменить владельца в Linux

Еще одна полезная команда для смены владельца файлов и каталогов в Linux:

  • chown name filename
  • имя chown имя_папки

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

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

Как изменить разрешения в числовом коде в Linux

Вам может понадобиться знать, как изменить разрешения в числовом коде в Linux, поэтому для этого вы используете цифры вместо «r», «w» или «x».

  • 0 = нет разрешения
  • 1 = Выполнить
  • 2 = Запись
  • 4 = Чтение

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

Номера разрешений:

  • 0 = ---

  • 1 = --x

  • 2 = -w-

  • 3 = -wx

  • 4 = р-

  • 5 = р-х

  • 6 = чтение-

  • 7 = rwx

Например:

  • chmod 777 имя папки предоставит права на чтение, запись и выполнение для всех.

  • chmod 700 имя_папки предоставит права на чтение, запись и выполнение только пользователю.

  • chmod 327 имя_папки даст разрешение на запись и выполнение (3) для пользователя, w (2) для группы и чтение, запись и выполнение для пользователей.

Как видите, есть несколько вариантов разрешений. У вас есть возможность диктовать пользователям удобство использования. Хотя может быть проще просто дать все разрешения всем, в конце концов это может вас укусить. Так что выбирайте с умом.

С помощью плана Pluralsight вы можете:

С помощью 14-дневного пилотного проекта вы можете:

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

Готовы повысить уровень


всей своей команды?

10

Подписки

Нужно больше подписок? Свяжитесь с отделом продаж.

Продолжить оформление заказа

Отменить

С планом Pluralsight вы можете:

С 14-дневной пробной версией вы можете:

  • Доступ к тысячам видео для развития критических навыков
  • Предоставьте до 10 пользователей доступ к тысячам видеокурсов
  • Практика и применение навыков с интерактивными курсами и проектами
  • Просмотр данных о навыках, использовании и тенденциях для ваших команд
  • Подготовьтесь к сертификации с помощью лучших в отрасли практических экзаменов
  • Измерение уровня владения навыками и ролями
  • Согласуйте обучение с вашими целями с помощью путей и каналов
  • Каталог

- Как я могу дать полное разрешение на папку и подпапку

спросил

Изменено 30 дней назад

Просмотрено 613 тысяч раз

Я новичок в Ubuntu, и мне нужно создать новую папку в /var , и мне нужно, чтобы все пользователи на машине имели полные права доступа к этой папке.

Что мне делать?

  • разрешения
  • каталог

5

Нажмите Ctrl + Alt + T , чтобы перейти к терминалу, и введите:

 sudo mkdir /var/szDirectoryName sudo chmod a+rwx /var/szDirectoryName 

Где szDirectoryName — имя нужного каталога, a означает «все» (пользователи) + означает «добавить следующие права» и rwx означает r чтение, запись и е х ecute соответственно...

Примечание: уже есть такой каталог в /var к которому имеют доступ все пользователи: tmp (полный путь: /var/tmp ), который сам является символической ссылкой на /tmp .
Однако помните, что все файлы в /tmp удаляются во время загрузки.

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


Learn more

Только новые статьи

Введите свой e-mail

Видео-курс

Blender для новичков

Ваше имя:Ваш E-Mail: