Linux изменение прав на папку. Специальные уровни доступа. Числовое представление прав

Опубликовано 4 февраля, 2008 - 20:17 пользователем AracooL

Основы

С самого своего появления, UNIX позиционировался как мультипользовательская операционная система. Что соответственно повлекло за собой создание механизмов для защиты и обеспечения авторизорованного доступа к данным. Таким образом появился стандарт DAC (Discretionary Access Control). В соответствии с DAC, пользователь сам решает какие права доступа соответствуют файлам. Но с точки зрения разработки операционных систем эта модель оказалась неудовлетворительной. Из-за чего появились новые модели для организации доступа к файлам, такие как MAC (Mandatory Access Control), ACL (Access Control List), и их реализации, например SELinux, TrustedBSD, Trusted Solaris.

Числовое представление прав

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

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

Владелец файла

Обычно, владельцем файла является пользователь, создавший этот файл. В UNIX-подобных операционных системах, все файлы имеют два типа владельцев: user (пользователь) и group (группа). Владельцы не должны совпадать друг с другом, т.е. user не должен быть членом group. Но фактически почти всегда, пользователь принадлежит к той группе, которая владеет файлом. Если пользователь не является владельцем файла и не принадлежит к группе, владеющей файлом, то он считается “левым” (others, остальные). Каждому пользователю в системе присваивается UID-номер (user identification number, идентификатор пользователя), с помощью этого система однозначно определяет пользователя. Пользователь root имеет UID = 0, а максимально возможный номер принадлежит пользователю “nobody” (”никто”) (для Ubuntu это 65534, для NetBSD - 32767). Следовательно права привязываются не в к имени пользователя, а к его UID. Аналогично каждой группе соответствует GID (group identification number). Для того что бы в консоле вывести владельцев файлов используйте команду ls с ключом -l:

Эффективный идентификатор группы значителен при создании файлов и каталогов, как описано ниже. Файловая система - структура на диске, содержащая описания файлов и самих файлов. Файловые системы содержатся в дисковых разделах. Пользователи из одной группы могут совместно использовать права, например, разрешения файлов могут быть установлены так, чтобы все пользователи в группе могли изменять его содержимое.

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

$ ls -l razem 1822 drwxr-xr-x 3 adam adam 120 2007-09-03 16:00 Desktop -rw-r–r– 1 adam adam 400 2007-08-22 18:49 prog_09.py

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

chgrp

Эта команда позволяет изменить группу-владельца файла. Если эту команду использует простой пользователь, то он, во-первых, должен быть владельцем файла, а во-вторых, он должен быть членом группы, которой он хочет дать права. Интересный факт, пользователь не должен быть членом группы, которая владеет файлом. Синтаксис следующий: chgrp new-group files,можно использовать как и имя группы, так и GID группы.

Содержимое каталогов больше, чем имена файлов, подкаталогов и других объектов файловой системы, хранящихся в каждом каталоге; он также включает в себя другую метаинформацию, такую ​​как объект файловой системы - файл или каталог, разрешения, связанные с объектом, и так далее. 2 - разрешение на запись. В каталогах он позволяет субъекту изменять то, что записано как находящееся в каталоге. Это означает возможность создавать файлы в каталоге или, что то же самое, перемещать файлы в каталог, удалять файлы из каталога или, что то же самое, перемещать файлы из каталога, и потому, что в каталоге есть запись записи содержимого каталога, чтобы изменить разрешения каждого файла или подкаталога, содержащегося в каталоге. 1 - выполнить разрешение. Любой файл может быть помечен как исполняемый файл; когда контент не будет выполнен, сообщение об ошибке сообщается во время выполнения. Аналогично, любой файл может иметь удаленные права выполнения, файлы с исполняемым контентом, но без разрешения на выполнение не могут быть запущены. В случае с каталогами разрешение выполнения позволяет субъекту проходить через каталог в подкаталоги. Обратите внимание, что обход каталога не требует разрешения на чтение. Примечание по обработке пути ниже.

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

$ ls -l -rw-r–r– 1 adam root 0 2007-09-03 15:33 file.txt $ chgrp users file.txt $ ls -l -rw-r–r– 1 adam users 0 2007-09-03 15:33 file.txt

Команду кстати можно использовать с ключом -R, что приведет к рекурсивному обходу всех файлов в каталоге и его подкаталогах.

chown

Эта команда используется для изменения как владельца так и группы. В большинстве систем, только root имеет право пользоваться этой командой. У команды следующий синтаксис: chown new user:new group files. Как и в команде chgrp, вы можете использовать как имена пользователей и групп, так и их GID и UID. Кстати команда не проверяет на существование пользователей и группы, так что можно задать несуществующие.

Значения цифр определяют соответственно: права владельца, группы и другие. Этот файл имеет 0 в качестве третьей значащей цифры, поэтому пользователи, не являющиеся корневыми, и в «теневой» группе, могут даже не читать файл. Несколько системных инструментов и графических программ распознают идею читаемой человеком формы - последовательность из 10 последовательных символов. Чтобы увидеть пример, выполните следующую команду.

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

$ ls -l -rw-r–r– 1 adam users 0 2007-09-03 15:33 file.txt root@laptop:# chown root:root file.txt adam@laptop:~$ ls -l -rw-r–r– 1 root root 0 2007-09-03 15:33 file.txt

Смена группы и пользователя.

Root@laptop:# chown zoidberg file.txt

Смена владельца на пользователя zoidberg, группа остается без изменений.

# chown:futurama file.txt

Смена группы на futurama, владелец без изменений.

Права доступа

В любой UNIX-подобной системе имеются 3 уровня доступа к файлу: чтение, read (r), запись, write (w) и выполнение, execute (x).

Мнемонические обозначения прав доступа

Так, например, 640 переводит на. Последний столбец - это знак. Чтобы получить доступ к любому пути в файловой системе, пользователю необходимо как минимум выполнить привилегию для всех своих родительских каталогов. Это правило применяется в любой файловой системе.

По умолчанию для новых файлов и каталогов

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

Стоит заметить, что когда мы рассматриваем права на каталоги, нужно помнить, что каталог - это тоже файл, который содержит список файлов, т.е. их имена и расположение на диске. Для того что бы посмотреть содержимое каталога достаточно воспользоваться командой ls (без ключей), для этого необходимы только права на чтение, но для того что бы выполнить ls -l необходимы права на запись и выполнение. Обобщая вышесказанное, выполняя любую операцию над каталогом (кроме простого просмотра содержимого) вам необходимы права на выполнение, таким образом обладая этими правами вы получаете доступ к содержимому каталога использую имена файлов.

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

Раздел 3: Изменение прав доступа к файлам

Прежде всего, создайте файл для демонстрационных целей. Вы можете просто скопировать и вставить и посмотреть, как это работает. Изменены ли права на файл? Теперь войдите в демоверсию, откройте тестовый файл и введите что-то в нем. Теперь вы можете проверить его с помощью разных разрешений.

Drw-r–r– 2 adam adam 96 2007-09-05 18:04 blob drwxr-xr-x 2 adam adam 176 2007-09-04 15:57 tapety -rw-r–r– 1 adam adam 125 2007-08-29 18:31 fme.py

Список прав доступен по команде ls с ключом -l. В первой колонке первый символ обозначает тип файла, а остальные 9 показывают права доступа. Первые 3 из 9 показывают права user, следующие 3 - это права group, и оставшиеся для “левых”.

В приведенном примере blob - это каталог, user имеет права на запись и чтение, но не на выполнение (rw-), у группы и у остальных есть права только на чтение. Tapety - тоже каталог, и у user есть права на все (rwx), а у группы и у остальных есть права на чтение и выполнение (r-x). Fme.py - это файл.

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

Случай 2: Программное обеспечение и файлы данных для вашего отдела на работе

Вопрос: Как установить права доступа к каталогу, чтобы другие пользователи могли видеть ваши файлы и их содержимое? Установите каталог в 755 и все файлы под ним на 644. Примечание ниже: ~ означает ваш домашний каталог. . Вы хотите, чтобы другие люди из вашего отдела могли запускать предоставленное программное обеспечение и записывать файлы данных.

chmod

Рассмотрим команду для смены прав доступа:

Chmod access rights files

Перед выполнением команды необходимо выбрать класс пользователей, для кого мы хотим изменить права (ugo, User, Group, Others). Есть так же дополнительная группа a (all, все). Затем выбираем оператор: + (дать права), - (убрать права) и = (присвоить права). И в конце выбрать сами права (rwx, r-x и т.д.).

В то же время другим людям из-за пределов группы должно быть разрешено запускать программное обеспечение, но не изменять данные. Вопрос. Как разрешить выполнение доступа для группы к одному файлу и доступ для чтения и записи к другому каталогу для той же группы, при этом запрещающий доступ к миру?

Специальные уровни доступа

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

$ chmod u+x skrypt.sh

Пользователю (u) добавляется (+) право на выполнение (x) файла skrypt.sh.

$ chmod go-r raport.odt

У группы и остальных (go) отбирается (-) право на чтение (r).

$ chmod a=w finanse.ods

Всем (a) присваивается (=) право на запись (w), а остальные права стираются (=).

$ chmod u+rwx,g+rwx,o+x trurl.py

Пользователю прибавляются права на все, группе тоже, а остальным прибавляется право на выполнение.

Вопрос: Как отключить специальные бит? Чтобы удалить специальные биты из файла после их установки, удобно использовать символические имена. Вы можете предоставить пользователям из вашей группы доступ к вашим файлам, разоблачить их на весь мир или использовать их только для себя. Однако существуют случаи, когда эта модель контроля доступа недостаточна. Предположим, что вы находитесь на большой системе и вместе с несколькими десятками пользователей вы являетесь членами группы «пользователи». Теперь вы хотите, чтобы некоторые из ваших файлов были доступны только одному из них, чтобы другие не могли его прочитать.

Числовое представление прав

Для упрощения записи команды chmod можно использовать числовое представление прав. У каждого типа доступа есть числовое представление, для этого используется двоичное представление. Единица означает - есть право, 0 - нет права. Таким образом запись правила rwx r-x r-x в бинарном виде будет выглядить следующим образом: 111 101 101. Но двоичное представление не очень удобно, поэтому используют десятичное представлени. 111 в двоичной системе - это 7 в десятичной, а 101 - это 5, таким образом 111 101 101 - это 755. Итак получаем:

Вы можете использовать личную учетную запись для личных групп пользователей; общее решение этой проблемы. Списки контроля доступа являются расширенным средством определения прав доступа к файлам и объектам. Они позволяют вам определять права доступа к файлам более мелкомасштабным способом, присваивая любому пользователю или группе разные привилегии. Например, вы можете поделиться файлом только с одним конкретным пользователем, независимо от того, в какой группе они находятся. Как использовать эту новую мощную функцию?

Вы можете установить его, выпустив. Пример команды. Должен показать, среди прочего, такую ​​строку. Это, например, полезно, когда у вас есть пользователи, сотрудничающие с разработкой веб-сайтов. Получайте удовольствие и спасибо за опору со мной. Эти разрешения позволяют вам точно выбирать, кто может получить доступ к вашим файлам и папкам, обеспечивая общую улучшенную систему безопасности.

  • -w- 2
  • -wx 3
  • r-x 5
  • rw- 6
  • rwx 7

Таким образом вы можете записать как

$ chmod u=rwx,g=rwx,o=x trurl.py

$ chmod 771 trurl.py

Специальные уровни доступа

Рассмотрим несколько специальных уровней доступа, расширяющие стандартные.

X

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

Итак, что означает весь этот выход?

В любом случае, не исчезайте - это проще, чем вы думаете! Давайте начнем с нуля, анализируя информацию на предыдущем снимке экрана. Затем в зеленой колонке мы найдем время и дату создания. Обратите внимание, что столбец даты и времени не всегда отображается в показанном формате. Если файл или каталог, на который он ссылается, был создан за год, отличный от текущего, он будет показывать только дату, месяц и год, отбрасывая время создания.

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

$ ls -l -rwx-- 1 adam users 14 2007-09-10 21:48 skrypt.sh drwx-- 1 adam users 14 2007-09-10 21:48 tapety -rw--- 1 root users 3665 2007-09-17 17:23 wynik.txt $ chmod go+X * $ ls -l -rwxr-xr-x 1 adam users 14 2007-09-10 21:48 skrypt.sh drwxr-xr-x 1 adam users 14 2007-09-10 21:48 tapety -rw-r–r– 1 adam users 3665 2007-09-17 17:23 wynik.txt

Липкий бит

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

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

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

Drwxrwxrwt 10 root root 464 2007-09-20 12:45 tmp

Эта возможность часто используется для каталога /tmp. Судя из названия, этот каталог используется как временный.

Назначить липкий бит можно командой chmod:

# chmod u+t test/ # ls -l drwxrwxrwt 2 adam users 48 2007-09-20 15:28 test

или используя числовую запись

# chmod 1000 test/

setuid

Если установить этот режим на исполняемый файл, то все смогут запускать программу от имени владельца. Например у программы ping владельцем является root (т.к. только root имеет право создавать сокеты, что и делает эта программа), но так как на ней стоит этот режим, то и все остальные могут пользоваться этой программой.

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

Итак, мы пришли к выводу, что у Дэвида есть полный доступ. Они также не могут удалять любые файлы или вносить какие-либо изменения в содержимое каталога. Вы должны прочитать и выполнить, чтобы войти в каталог и перечислить его содержимое. Наконец, все остальные могут также читать каталог, но не могут войти в него из-за отсутствия разрешения на выполнение.

$ ls -l /usr/bin/ | grep sudo -rwsr-xr-x 1 root root 91508 2006-10-09 13:37 sudo # chmod u+s program # chmod 4000 program

setgid

Полностью аналогична setuid, только для групп.

# chmod g+s test/ # chmod 2000 test/ # ls -l drwxrwsrwt 2 adam adam 48 2007-09-20 15:28 test

unmask

Команда unmask используется для установки прав файлов для новосозданных файлов по умолчанию. Глобально, у всех новых файлов права по умолчанию 666. С помощью этой команды мы передаем те опции которые НЕ будут присутствовать в новых файлах. Т.е. если мы передадим параметр 0022, то по умолчанию права будут 644.

Если вы просто пользователь Windows, то скорее всего вы даже не слышали, что такое . Но если вы даже новичок в Linux, то скорее всего вы столкнулись у же с тем, что вам пришлось столкнуться с этим понятием. И наверняка у вас возник простой вопрос: к файлу или папке?

Это можно сделать конечно через файловый менеджер, если это один файл или одна папка. Но когда нужно изменить права доступа к сотне и даже тысячи файлов, то вручную это будет сделать трудно. Но тут на помощь приходит терминал и специальная команда chmod. Как изменить права доступа при помощи это программы?

Команда chmod применяется для изменения атрибутов файла или папки (ее имя образовано от термина режим (mode) который иногда используется для определения набора атрибутов), если вы владелец этого файла или папки. Для того чтобы разрешить себе чтение и запись файла и чтение всем остальным, необходимо установить значение 644 следующим образом:

Chmod 644 filename

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

U - пользователь (владелец) g - группа o - остальные (не u, не g) a - все пользователи +/-r - добавить/удалить разрешение на чтение +/-w - добавить/удалить разрешение на запись +/-x - добавить/удалить разрешение на выполнение

Первые четыре значения определяют, к какому типу пользователей (владельцу, группе, остальным или всем пользователям) применять изменение прав доступа, значение по умолчанию - а, ко всем пользователям. Последние три обозначения - изменяемые права доступа. Если вас интересует ремонт кондиционеров Daikin, то лучше делать это в Москве у официального дилера.

Таким образом, чтобы установить изменить права доступа на 644 (независимо от предыдущих прав доступа) можно применить следующие две команды:

Chmod a+r-w-x filename chmod u+w filename

Первая команда задает разрешение для всех: пользователя, группы и остальных (а) на чтение, но не на запись и выполнение (+r-w-x) файла. Вторая разрешает пользователю (u) записывать (+w) в файл. Для выяснения текущего значения атрибутов введите:

Ls -l filename

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

Самый первый символ в строке обозначает, является ли объект файлом, каталогом или символической ссылкой. Файлы обозначаются дефисом (-), каталоги - буквой d, а символические ссылки - буквой l. Таким образом, без первого символа остается 9 символов, три группы по три, представляющие права доступа по порядку для владельца, группы и остальных.

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



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: