Знакомимся в правами доступа в Линукс. Чем логика управления правами доступа в Linux отличается от логики управления правами доступа в Windows. Как в Линукс просматривать и изменять права доступа на объекты файловой системы для пользователей и групп.
Основные права доступа к файлам в Linux
Изначально каждый файл имел три параметра доступа. Вот они:
- Чтение — разрешает получать содержимое файла, но на запись нет. Для каталога позволяет получить список файлов и каталогов, расположенных в нем;
- Запись — разрешает записывать новые данные в файл или изменять существующие, а также позволяет создавать и изменять файлы и каталоги;
- Выполнение — вы не можете выполнить программу, если у нее нет флага выполнения. Этот атрибут устанавливается для всех программ и скриптов, именно с помощью него система может понять, что этот файл нужно запускать как программу.
Но все эти права были бы бессмысленными, если бы применялись сразу для всех пользователей. Поэтому каждый файл имеет три категории пользователей, для которых можно устанавливать различные сочетания прав доступа:
- Владелец — набор прав для владельца файла, пользователя, который его создал или сейчас установлен его владельцем. Обычно владелец имеет все права, чтение, запись и выполнение.
- Группа — любая группа пользователей, существующая в системе и привязанная к файлу. Но это может быть только одна группа и обычно это группа владельца, хотя для файла можно назначить и другую группу.
- Остальные — все пользователи, кроме владельца и пользователей, входящих в группу файла.
Именно с помощью этих наборов полномочий устанавливаются права файлов в linux. Каждый пользователь может получить полный доступ только к файлам, владельцем которых он является или к тем, доступ к которым ему разрешен. Только пользователь Root может работать со всеми файлами независимо от их набора их полномочий.
Но со временем такой системы стало не хватать и было добавлено еще несколько флагов, которые позволяют делать файлы не изменяемыми или же выполнять от имени суперпользователя, их мы рассмотрим ниже:
Источник: http://losst.ru/prava-dostupa-k-fajlam-v-linux
Разрешения для файлов Linux
Прежде чем идти дальше, давайте объясним базовую модель разрешений Linux.
В Linux каждый файл связан с владельцем и группой и имеет права доступа для трех разных классов пользователей:
- Владелец файла.
- Члены группы.
- Остальные (все остальные).
Владение файлом можно изменить с помощью команд chown и chgrp .
К каждому классу применяются три типа прав доступа к файлам:
- Разрешение на чтение.
- Разрешение на запись.
- Разрешение на выполнение.
Эта концепция позволяет указать, каким пользователям разрешено читать файл, записывать в файл или выполнять файл.
Права доступа к файлам можно просмотреть с помощью команды ls :
ls -l filename.txt-rw-r—r— 12 linuxize users 12.0K Apr 8 20:51 filename.txt|[-][-][-]- [——] [—]| | | | | | || | | | | | +————> 7. Group| | | | | +——————-> 6. Owner| | | | +—————————> 5. Alternate Access Method| | | +—————————-> 4. Others Permissions| | +——————————-> 3. Group Permissions| +———————————-> 2. Owner Permissions+————————————> 1. File Type
Первый символ показывает тип файла. Это может быть обычный файл ( — ), каталог ( d ), символическая ссылка ( l ) или любой другой специальный тип файла.
Следующие девять символов представляют права доступа к файлу, три тройки по три символа каждая. Первый триплет показывает разрешения владельца, второй — разрешения группы, а последний триплет — разрешения для всех остальных. Разрешения могут иметь разное значение в зависимости от типа файла.
В приведенном выше примере ( rw-r—r— ) означает, что владелец файла имеет разрешения на чтение и запись ( rw- ), а группа и другие пользователи имеют разрешения только на чтение ( r— ).
Каждый из трех троек разрешений может состоять из следующих символов и иметь различные эффекты, в зависимости от того, установлены ли они для файла или для каталога:
Влияние разрешений на файлы
Влияние разрешений на каталоги (папки)
В Linux каталоги — это особые типы файлов, которые содержат другие файлы и каталоги.
Источник: http://routerus.com/chmod-command-in-linux/
Первый символ обозначает тип данных.
Данный символ может быть следующим:
В большинстве случаев это будет:
— | обычный файл; |
d | директория/каталог/папка (directory); |
l | символическая ссылка (link). |
Но может быть следующим:
b | файл блочного устройства (block); |
c | файл символьного устройства; |
s | доменное гнездо (socket); |
p | именованный канал (pipe). |
Следовательно, в нашем случае это директория (каталог, папка).
Источник: http://linuxrussia.com/terminal-chmod-chown.html
Введение
В этом руководстве вы научитесь изменять права доступа в Linux / Unix и устанавливать нового владельца файла/папки через командную строку. Существует 2 базовые команды, которые могут быть использованы для данных целей: chmod и chown.
Прокачайте ваш Linux сервер, воспользовавшись скидками на VPS-хостинг в Hostinger!
К предложению
Источник: http://hostinger.ru/rukovodstva/kak-izmenit-prava-dostupa-v-linux
Syntax
Syntax of the chmod command is the following:
$ chmod [options] permissions file[s]
Options:
- -R, –recursive – Change files and directories recursively;
- -f, –silent, –quiet – Suppress most error messages.
View the current file / directory mode using ls command:
$ ls -l MyFile.txt-rw-r—r— 1 john admin 0 2012-12-02 04:30 MyFile.txt$ ls -ld MyDirdrwxr-xr-x 2 john admin 4096 2012-12-02 04:29 MyDir
or using stat command:
$ stat -c ‘%A %a %n’ MyFile.txt-rw-r—r— 644 MyFile.txt$ stat -c ‘%A %a %n’ MyDirdrwxr-xr-x 755 MyDir
Источник: http://shellhacks.com/ru/change-permissions-files-folders-linux-chmod-basics/
You can give permission to folder and all its contents using option -R i.e Recursive permissions.
But I would suggest not to give 777 permission to all folder and it’s all contents. You should give specific permission to each sub-folder in www directory folders.
Источник: http://stackoverflow.com/questions/8328481/chmod-777-to-a-folder-and-all-contents
Как изменить права файла в Linux
Чтобы изменить права на файл в linux вы можете использовать утилиту chmod. Она позволяет менять все флаги, включая специальные. Рассмотрим ее синтаксис:
$ chmod опции категориядействиефлаг файл
Опции сейчас нас интересовать не будут, разве что только одна. С помощью опции -R вы можете заставить программу применять изменения ко всем файлам и каталогам рекурсивно.
Категория указывает для какой группы пользователей нужно применять права, как вы помните доступно только три категории:
- u — владелец файла;
- g — группа файла;
- o — другие пользователи.
Действие может быть одно из двух, либо добавить — знак «+», либо убрать — знак — «-«. Что касается самих прав доступа, то они аналогичны выводу утилиты ls: r — чтение, w — запись, x — выполнение, s — suid/sgid, в зависимости от категории, для которой вы его устанавливаете, t — устанавливает sticky-bit. Например, всем пользователям полный доступ к файлу test5:
chmod ugo+rwx test5
Или заберем все права у группы и остальных пользователей:
chmod go-rwx test5
Дадим группе право на чтение и выполнение:
chmod g+rx test5
Остальным пользователям только чтение:
chmod o+r test5
Для файла test6 установим SUID:
chmod u+s test6
А для test7 — SGID:
chmod g+s test7
Посмотрим что получилось:
ls -l
Как видите, изменить права на файл в Linux очень просто. К тому же вы можете изменить основные права с помощью файлового менеджера.
Источник: http://losst.ru/prava-dostupa-k-fajlam-v-linux
Рекурсивно изменить права доступа к файлу
Чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге, используйте параметр -R ( —recursive ):
Например, чтобы изменить права доступа для всех файлов и подкаталогов в каталоге /var/www на 755 вы должны использовать:
chmod -R 755 /var/www
Источник: http://routerus.com/chmod-command-in-linux/
Изменение прав
Это действие также можно сделать в упомянутых выше приложениях или из консоли командой «chmod» ( англ. «change mode» − «изменить режим»). Продолжим эксперименты на созданной ранее папке. Для начала попробуем дать право доступа только себе:
chmod 700 testdir/
Для изменения доступа к своим файлам и папкам права суперпользователя не нужны, поэтому набираем команду без sudo. Смотрим результат при помощи «ls -l» и видим следующее:
drwx—— 2 rizado rizado 4096 мар 23 19:33 testdir
Буква «d» перед правами доступа означает «directory», указывая, что это папка, а не файл. Попробуем дать себе полный доступ, группе только чтение и просмотр содержимого, а остальным ничего:
chmod 750 testdir/
Результат
drwxr-x— 2 rizado rizado 4096 мар 23 19:33 testdir
Обращаю ваше внимание, что устанавливать права на запись для всех небезопасно и это стоит делать только в крайнем случае, когда это действительно необходимо и оправдано.
Для изменения прав доступа вложенных папок и файлов для папки аналогично смене владельца используется ключ «-R». Подробнее можно узнать, вызвав справку по команде:
man chmod
Источник: http://rizado.ru/2019/03/23/prava-dostupa-k-fajlam-v-linux-ili-chto-takoe-666/
Расширенные права
Очевидно, что использование стандартных прав Unix недостаточно при реализации сложных схем доступа. Они не так гибки как хотелось бы. Даже используя различные биты доступа в сочетании со стандартными правами, желаемого эффекта в большинстве случаев не добиться.
В больших сетях, с многоуровневыми схемами доступа применяется более гибкая реализация назначения прав, именуемая как ACL — Списки контроля доступа.
— Соловьев Алексей aka allexnew upd 07.10.2020 17:56
Источник: http://help.ubuntu.ru/wiki/стандартные_права_unix
Основная безопасность
Ваш домашний каталог — это ваше личное пространство в системе.
Большинство пользователей дают себе полные права на чтение, запись и выполнение для своего домашнего каталога. Между тем, для группы или других пользователей никаких разрешений нет. Впоследствии, некоторые пользователи по разным причинам могут иметь несколько иную настройку.
Как правило, для оптимальной безопасности вы не должны предоставлять группе или другим пользователям права на запись в ваш домашний каталог. Между тем, иногда выполнение без чтения может оказаться полезным. Это позволяет людям входить в ваш домашний каталог, но не позволяет им видеть, что там.
Обычно система запускает веб-сервер и позволяет пользователям иметь свое собственное веб-пространство. Обычная настройка заключается в том, что если вы поместите каталог в свой домашний каталог с именем public_html, то веб-сервер будет читать и отображать его содержимое. Однако веб-сервер работает от имени другого пользователя, поэтому по умолчанию он не будет иметь доступа для доступа и чтения этих файлов. Это ситуация, когда необходимо предоставить команду execute для вашего домашнего каталога, чтобы пользователь веб-сервера мог получить доступ к необходимым ресурсам.
Источник: http://linuxvsem.ru/commands/comandy-prav-dostupa
Работа с символическими ссылками
Символические ссылки всегда имеют 777 разрешений.
По умолчанию, при изменении разрешений символической ссылки, chmod изменяет права доступа к файлу, на который указывает ссылка.
chmod 755 symlink
Скорее всего, вместо смены целевого владельца вы получите ошибку «Нет доступа к ‘символической ссылке’: в разрешении отказано».
Ошибка возникает из-за того, что по умолчанию в большинстве дистрибутивов Linux символические ссылки защищены, и вы не можете работать с целевыми файлами. Этот параметр указан в /proc/sys/fs/protected_symlinks . 1 означает включен, а 0 отключен. Рекомендуется не отключать защиту символических ссылок.
Источник: http://routerus.com/chmod-command-in-linux/