Каждый файл принадлежит конкретному пользователю или группе. Доступ к файлам контролируется пользователем, группой и что называется "другими". Под "другим" подразумевается тот, кто не является пользователем (владельцем) файла равно как и членом группы к которой принадлежит файл. Когда говорят об использовании настроек доступа для "других" пользователей, обычно имеют в виду настройки глобального исполнения, чтения или записи поделенной с кем-нибудь в системе, позволяющей обеспечить управление если доступ установлен в другой категории. Имена файлов и символы доступаИмена файлов могут быть длиной до 256 символов включая "-", "_", и "." символы с буквами и цифрами. Существует набор из 10 символов (находящийся слева при отображении полного листинга файлов) который показывает тип доступа к файлам. Доступ к файлам выглядит так: drwerwerwe.
В этом примере 10 символов, как и у всех файлов в Linux. Первый символ указывает на тип файла, следующие 3 символа показывают доступ на чтение, запись и выполнение для каждого из 3-х типов: пользователя, группы и "других". Поскольку есть 3 типа доступа для 3-х пользователей, существует 9 бит доступа. В таблице ниже показан синтаксис: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Файл | Доступ пользователя | Доступ группы | Другой доступ | Тип | Чтение | Запись | Исполнение | Чтение | Запись | Исполнение | чтение | Запись | Исполнение | d | r | w | e | r | w | e | r | w | e |
- Первый символ - это тип файла: обычный, d - директория, l - ссылка.
- Символы с 2 по 4 показывают доступ владельца. 2 символ показывает доступ на чтение, 3-й — на запись и 4-й — на исполнение.
- Символы с 5 по 7 показывают доступ группы. 5-й символ — на чтение, 6-й — на запись, 7-й — на исполнение.
- Символы с 8 по 10 показывают доступ для всех оставшихся
пользователей. 8-й символ — на чтение, 9-й — на запись, 10-й — на исполнение. Есть 5 возможных символов в полях доступа. Это: - r = чтение - Это только в области чтения.
- w = запись – Это только в области записи.
- x = выполнение – Это только в области выполнения.
- s = setuid - Это только в области выполнения.
- Если находится символ "-" в текущей области, то доступ отсутствует.
Это может быть в любой области, будь то область чтения, записи или исполнения. Примеры Напишите в консоли «ls -l» и отобразиться список похож на приведенный ниже: total 10 | drwxrwxrwx | 4 | george | team1 | 122 | Dec 12 18:02 | Projects | -rw-rw-rw- | 1 | george | team1 | 1873 | Aug 23 08:34 | test | -rw-rw-rw- | 1 | george | team1 | 1234 | Sep 12 11:13 | datafile |
Что означает следующее: Тип и поле доступа | # ссылки | Владелец файла | Группа файла | Размер в байтах | Дата последней модификации | Имя файла |
---|
| | | | | | | | | | | | | | drwxrwxrwx | 4 | george | team1 | 122 | Dec 12 18:02 | Projects |
Эти поля означают: - Поле тип: первый символ в поле обозначает один из приведенных типов:
- d = директории (directory)
- l = символьная ссылка (symbolic link)
- s = сокет (socket)
- p = именованный канал (named pipe)
- - = обычный файл (regular file)
- с = символ (character) (небуферизированный) специальный файл устройства
- b = блок (block) (буферизированный) специальный файл устройства
- Типы доступа описаны выше.
- Ссылки: количество директорий включающих ссылку на файл. В примере это 4.
- Владелец файла в нашем примере это George.
- Группа к которой принадлежит файл. В нашем примере это группа team1.
- Размер файла в байтах.
- Дата последней модификации. Если файл создан недавно, отображаются
дата и время. Если файл создан не в текущем году, то год отображается перед временем. - Имя файла.
Установка Атрибута идентификации пользователя Биты доступа к файлу включают биты доступа исполнения для владельца файла, группы и других. Когда бит исполнения для владельца установлен в "s" , то набор битов ID пользователя установлен. Это позволяет любой персоне или процессу, которые запускают файл получить доступ к системным ресурсам, как будто они являются владельцем файла. Когда бит исполнения для группы установлен в "s", набор битов ID группы установлен и пользователю запустившему программу дается доступ основанный на разрешении доступа для группы к которой принадлежит файл. Следующие команды демонстрируют это: chmod +s myfile
установка битов ID пользователя на файл "myfile". Команда: chmod g+s myfile
установка битов ID группы на файл "myfile". Листинг показывает список из 2-х файлов у которых установлен бит ID группы и пользователя. -rws--x--x 1 root root 14024 Sep 9 1999 chfn -rwxr-sr-x 1 root mail 12072 Aug 16 1999 lockfile
Файлы chfn и lockfile находятся в директории "/usr/bin". "s" занимает место в обычном расположении бита исполнения в выше приведенном листинге файлов. Этот специальный режим доступа не имеет смысла пока исполняемый файл могут выполнить группа или "другие". В случает с lockfile это означает, что если бит (глобального исполнения) не установлен с доступом на исполнение, тогда бит ID пользователя будет иметь смысл только если та же группа сможет запустить программу так или иначе. Оба бинарных файла может запустить кто угодно. Первая программа, при запуске исполняется так как будто она запущена от пользователя root. Вторая программа запускается так как если бы пользователь состоял в группе "mail".
В целях безопасности системы не очень хорошая идея устанавливать многим программам бит ID пользователя или группы больше чем необходимо, так как это может позволить неавторизированным пользователям получить доступ к важным зонам системы. Если программа Если в программе есть изъян, который позволяет пользователю выйти за рамки из предполагаемого использования программы, то система может оказаться под угрозой. Доступ к директориям Существует 2 специальных бита доступа к директориям. Это: - s - установка ID группы
- t – Атрибут сохранности текста (sticky bit) – Пользователь может
удалить или модифицировать только те файлы и директории, владельцем которых он является или имеет права записи для них. Атрибут сохранности текста Директория /tmp обычно глобально-доступная и так выглядит ее листинг: drwxrwxrwt 13 root root 4096 Apr 15 08:05 tmp
Любой может просмотреть, записать и управлять этой директорией. Символ "t'' показывает, что только пользователь (root, конечно) может удалить созданный файл в этой директории.
Для установки sticky bit в директории нужно сделать следующее: chmod +t data Этими опциями стоит пользоваться аккуратно. Возможная альтернатива этого это: - Создание директории в домашней директории пользователя, в которой он может записать временные файлы.
- Установить переменную окружения TMPDIR использующую каждым пользовательским скриптом входа.
- Программы, использующие функцию tempnam(3) будут искать переменную
TMPDIR и использовать ее для записи непосредственно в директорию /tmp. Установка ID группы для директорий Если бит setgid установлен на директории, то файлы в ней будут обладать таким же владельцем, как и директория, а не группой пользователя который их создал.
Этот атрибут полезен, когда нескольким пользователям нужен доступ к определенным файлам. Если пользователи работают в директории с установленным атрибутом setgid, то к любым созданные ими файлам в директории будет иметь доступ и их группа. Для примера, администратор может создавать группу названную spcprj и добавлять пользователей Kathy и Mark в это группу. Директории spcprjdir может быть создана с установленным GID битом и Kathy и Mark состоя в разных первичных группах, могут работать с директорией и иметь доступ ко всем файлам в директории, но не иметь доступа к файлам других первичных групп.
Следующая команда устанавливает бит GID на директорию: chmod g+s spcprjdir
Листинг директории "spcprjdir": drwxrwsr-x 2 kathy spcprj 1674 Sep 17 1999 spcprjdir
Символ "s'' на месте бита исполнения для доступа группы к всем файлам записанным в директорию "spcprjdir" принадлежащей группе "spcprj". Примеры Ниже приведены примеры изменения доступа:
chmod u+x myfile | Дать пользователю права на исполнение файла myfile. | chmod +x myfile | Дать любому пользователю права на исполнение файла myfile. | chmod ugo+x myfile | Та же команда что и раньше, но уточняет пользователя, группу и других | chmod 400 myfile | Дать пользователю права на чтение и удалить все остальные права. Этот доступ приводиться в восьмеричном исчислении, первый символ для пользователя, второй для группы и третий для других. Первый бит (4) это доступ на чтение, средний бит (2) для доступа на запись, и последний бит (1) доступ на исполнение. | chmod 764 myfile | Дать пользователю полный доступ, группе доступ на чтение и запись, и другим доступ на чтение. | chmod 751 myfile | Дать пользователю полный доступ, группе доступ на чтение и исполнение и другим доступ на исполнение. | chmod +s myfile | Установка бита setuid. | chmod go=rx myfile | Удаление доступа на чтение и исполнение для группы и других. |
Изменение владельца на файл test1 на Mark. chown mark test1
Изменение на группу "mark" для файла test1. chgrp mark test1
Заметка: При отображение файлов в Linux, установлено первоначальное значение размера столбца — 8, как в старых версиях. Это означает, что если имена файлов длиннее 8 то может быть, что они не отобразятся полностью, если использовать старые дистрибутивы Linux. Есть опция которая принадлежит команде ls которая решает эту проблему. Это "-T". Пример: "ls al -T 30" делает длину столбца равной 30. Настройка UmaskКоманда umask используется для установки и определения в системе доступа к файлу по-умолчанию. Это восьмеричные режим дополнения
требуемого файла до конкретного типа файла. Доступом по умолчанию есть: - 777 – Исполняемые файлы
- 666 – Текстовые файлы
Эти «дефолтные» значения устанавливают разрешение все пользователям на исполнение исполняемого файла и на запрет исполнения текстового файла. Также все пользователи могут читать файл и записывать в него. Доступ для создания нового исполняемого файла вычисляется вычитанием значения маски из «дефолтного» значения доступа для созданного типа файла. Пример текстового файла приведен ниже с umask значением 022: 666 Значение по умолчанию для текстового файла -022 минус значение umask ----- 644 Разрешенный доступ
Поэтому umask значение является выражением доступа пользователя, группы, и системы не будет в качестве стандартного, что касается чтения, записи, или исполнения файла. Значение umask имеет в виду группу, которой файлы принадлежат, и других пользователей, которым владелец не позволяет записать файл. В этом случае, когда новый текстовый файл создан, но имеет значение режима доступа 644, которое означает, что владелец может чтитатьи записывать файл, но члены группы, которому файл принадлежит, и другие, могу только читать файл. Полный листинг директории с файлом, у которого установлен такой режим доступа, показан ниже: -rw-r--r-- 1 root workgrp 14233 Apr 24 10:32 textfile.txt
Пример команды установки значения umask: umask 022
Наиболее распространенное значение umask это 022. Обычно, когда команда umask устанавливается для всех пользователей, это скрипт /etc/profile. Red Hat Linux имеет ID пользователя и группы, создающих схему, где каждый пользователь принадлежит группе и только этот пользователь принадлежит этой группе. Если вы используете эту схему последовательно,тогда вам нужно устанавливать значение для umask 002.
Взято тут http://www.quizful.net/post/linux-files-permissions
|