3. umask (Права по умолчанию при создании)


Права доступа к файлам
Для каждого каталога и файла вы можете задать права доступа.
Точнее, права доступа автоматически задаются при создании каталога/файла, а вы при необходимости можете их изменить.
Какая может быть необходимость?
Например, вам нужно, чтобы к вашему файлу-отчету смогли получить доступ пользователи — члены вашей группы.
Или вы создали обычный текстовый файл, содержащий инструкции
командного интерпретатора. Чтобы этот файл стал сценарием, вам нужно установить право на выполнение для этого файла.
Существуют три права доступа:
Чтение (r)
Запись (w)
Выполнение (х)
Для каталога право на выполнение означает право на просмотр содержимого каталога. Вы можете установить разные права доступа для владельца (т. е. для себя), для группы владельца (т. е. для всех пользователей, входящих. в одну с владельцем группу) и для прочих пользователей. Пользователь root может получить доступ к любому файлу или каталогу вне зависимости от прав, которые вы установили.
Чтобы просмотреть текущие права доступа, введите команду:
ls -l <имя файла/каталога>
Например,
ls -l video . txt
В ответ программа выведет следующую строку:
-r--r----- 1 localadmin localadmin 4096 Apr 11 11 : 11 video. txt
В этой строке фрагмент: —r—r—— описывает права досrупа:
— первый символ — это признак каталога(типа файла). Сейчас перед нами файл. Если бы перед нами был каталог, то первый символ был бы символом d (от directory);
— последующие три символа (r—) определяют права доступа владельца файла . Первый символ — это чтение (r),. второй — запись(w), третий — выполнение(x).
Как можно видеть, владельцу разрешено только чтение этого файла, запись
и выполнение запрещены, поскольку в правах доступа режимы w и х не определены;
— следующие три символа (r—) задают права доступа для членов группы владельца. Права такие же, как и у владельца: можно читать файл, но нельзя изменять или запускать;
— последние три символа ( —) задают права доступа для прочих пользователей.
Прочие пользователи не имеют права ни читать, ни изменять, ни выполнять
файл. При попытке получить доступ к файлу они увидят сообщение Ассеss denied.
Права доступа задаются командой chmod. Существуют два способа указания прав доступа:
Символьный
(Когда указываются символы, задающие право доступа, — r, w, х)
Пример:
chmod u+x имя файла (дать права выполнения владельцу)
chmod u+r имя файла (дать права на чтение владельцу)
chmod u+w имя файла (дать права на изменения владельцу)
chmod u+rwx имя файла (дать права на чтение, изменение, и выполнения владельцу) (также равноценно - chmod u=rwx)
chmod u=r имя файла (дать права только на чтение владельцу)
chmod u=w имя файла (дать права только на изменение владельцу)
chmod u=x имя файла (дать права только на выполнение владельцу)
Убрать(отобрать) права можно заменив + на — , тем самым можно убирать права у владельца, у группы, и у остальных пользователей.
chmod u-x имя файла (отнять права на выполнение у владельца)
Абсолютный (цифрами)
Так уж заведено, что в мире UNIХ-подобных систем чаще пользуются абсолютным методом.
Разберемся, в чем он заключается, и рассмотрим следующий набор прав
доступа:
rw-r——
Этот набор предоставляет владельцу право чтения и модификации файла ( rw-), запускать(выполнять) файл владелец не может.
Члены группы владельца могут только просматривать(читать) файл (r—), а все остальные пользователи не имеют вообще никакого доступа к файлу.
Возьмем отдельный набор прав, например, для владельца: rw-.
Чтение разрешено мысленно записываем 1 , запись разрешена — запоминаем
еще 1 , а вот выполнение запрещено, поэтому запоминаем 0. Получается число 1 1 0.
Если перевести число 1 1 0 из двоичной системы в восьмеричную, получится число 6.
Для перевода можно воспользоваться табл. 4.3.
Таблица 4.3. Преобразование чисел из двоичной системы в восьмеричную
Двоичная система Восьмеричная Двоичная система Восьмеричная
система система

Аналогично произведем разбор прав для членов группы владельца. Получится двоичное
1 0 0, т. е. восьмеричное 4. С третьим набором ( —) все вообще просто — это
0 0 0, т. е. 0.
Записываем полученные числа в восьмеричной системе в порядке владелец-группа-остальные.
Получится число 640 — это и есть права доступа.
Для того чтобы установить
эти права доступа, выполните команду:
chrnod 640 <имя_файла>
Наиболее популярные права доступа:
— 644 — владельцу можно читать и изменять файл, остальным пользователям —
только читать;
— 666 — читать и изменять файл можно всем пользователям;
— 777 — всем можно читать, изменять и выполнять файл.
Иногда символьный метод оказывается проще.
Например, чтобы файл script сделать исполнимым, можно отдать команду:
chmod +х script
Для того чтобы снять право выполнения, указывается параметр -х:
chmod -х script
Подробнее о символьном методе вы сможете прочитать в руководстве по команде
chmod (выполнив команду man chmod).
Смена владельца файла
Если вы хотите «подарить» кому-то файл, т. е. сделать какого-либо пользователя владельцем файла, вам нужно использовать команду chown:
chown пользователь файл
Права доступа к каталогам
Права доступа к каталогам выдаются аналогично файлам ,
но механизм прав отличается.
Чтение (Read) — обозначается буквой «r». Предоставляет возможность просматривать содержимое каталога.
Запись (Write) — обозначается буквой «w». Позволяет создавать и удалять файлы внутри каталога.
Выполнение (Execute) — обозначается буквой «x». Дает разрешение на вход в каталог(Доступ к метаданным ).
chmod g+x имя файла (дать права просмотр метаданных владельцу)
chmod g+r имя файла (дать права на просмотр содержимого владельцу)
chmod g+w имя файла (дать права на изменения владельцу)
chmod g+rwx имя файла (дать права на Просмотр, изменение, и просмотр метаданных владельцу) (также равноценно - chmod g=rwx)
chmod g=r имя файла (дать права только на просмотр владельцу)
chmod g=w имя файла (дать права только на изменение владельцу)
chmod g=x имя файла (дать права только на просмотр метаданных владельцу)
ПРАВО ВЫПОЛНЕНИЯ ДЛЯ КАТАЛОГА Напомню, что для каталога право выполнения — это право просмотра оглавления каталога(метаданные).
UMASK
Встроенная в shell команда, позволят определить маску для вновь создаваемых файлов.
Маска — это число, которое необходимо вычесть из прав доступа по умолчанию, для получения реальных прав вновь
создаваемых файлов.
Специальные права SUID , SGID, Sticky bit

SUID — программы выполняются с правами хозяина файла.
Пример программа password : /bin/passwd
-rwsr-xr-x
Чтоб добавить SUID бит нужно добавить впереди обычных прав 4
пример :
chmod 4766 имя файла
Либо :
chmod u+s имя файла
Удалить можно :
chmod u-s имя файла
SGUID — программы выполняются с правами группы файла. Для директорий — создаваемые файлы принадлежат группе, которой принадлежит директория.
-rwxr-sr-x
Чтоб добавить SGUID бит нужно добавить впереди обычных прав 2 .
пример :
chmod 2766 имя файла
Либо :
chmod g+s имя файла
Удалить можно :
chmod g-s имя файла
Sticky bit(Липкий бит) — в директории файл может удалить только его хозяин.
-rwxr—r-t
Чтоб добавить Sticky bit бит нужно добавить к обычным правам 1 .
пример :
chmod 1766 имя файла
Либо :
chmod o+t имя файла
Удалить можно :
chmod o-t имя файла
Добавить комментарий