Дать полные права на папку 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
можно определять двумя способами:
-
Указав категорию (
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
-
Указав права в виде числового значения. Возможно, это не так прозрачно, но зато быстрее. В качестве параметра нам нужно передать это самое цифровое выражение уровня прав:
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 символов в строке предназначены для отображения атрибутов файла.
Список атрибутов может отличаться в зависимости от файловой системы. Вот список основных:
| «godmode» — файл становится неуязвим для любых изменений. Его нельзя удалить, переименовать, изменить содержимое, создать символьную ссылку на него. |
| в файл с таким атрибутом можно только добавлять новые данные. Старое содержимое изменить или удалить не получится. Это пригодится для защиты от вредоносных вставок или замен в файлах, куда постоянно записываются данные — например, в логах. Доступ к изменению старого содержимого по умолчанию есть только у суперпользователя |
| активирует безвозвратное удаление файла. В том смысле, что после удаления файл нельзя будет восстановить с носителя — при удалении все использовавшиеся для хранения файла блоки на диске перезаписываются нулями. |
| активирует «обратимое» удаление файлов. Это значит, что при удалении файла с этим атрибутом его содержимое можно восстановить. |
| сжатый файл. Все данные, записываемые в файл, автоматически сжимаются, а данные, извлекаемые из файла — возвращаются в исходное состояние. |
| настраивает для файла исключение при использовании утилиты |
| показывает, что файл в качестве указателей использует экстенты. |
| в журналируемых файловых системах ( |
| указывает, что при работе с файлом система не будет обновлять информацию о времени доступа к нему. |
| атрибут для директорий. Указывает, что все изменения в папке синхронно записываются на диск, минуя кэш. |
| указывает, что все изменения в файле с этим атрибутом записываются синхронно на диск, минуя кэш. |
Изменить атрибуты файла позволяет команда 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.