0

Курсы Linux (Лекция 9) — umask, дополнительные атрибуты, lsattr, chattr

На прошлой лекции мы рассмотрели основные права объектов и команды, которые позволяют управлять этими правами. Прежде чем пойдем дальше, хочу показать одно применение команды chmod, для раздачи прав для каталогов и файлов. Например, у нас есть каталог с большим количеством музыкальных файлов. Необходимо, чтобы для всех каталогов свойство x было установлено (так как необходимо в эти каталоги заходить), а на файлах не установлено (так как музыкальные файлы не должны интерпретироваться как исполняемые).Эта задача решается всего двумя командамиchmod:

igor@adm-ubuntu:~$ sudo chmod -R 644 ./Музыка/
igor@adm-ubuntu:~$ sudo chmod -R a+X ./Музыка/

Команды необходимо обязательно выполнять от имени администратора, так как забрав право x у каталога команда не сможет зайти в него, чтобы изменить свойства для подкаталога и файлов. Первая команда забирает право x для всех объектов внутри каталога (для этого используется ключ R), аналог команды в мнемоническом исполнении sudo chmod -R a-x ./Музыка/ . Во второй команде выражение a+X (”икс большое”), установит права только для объектов типа каталог. Как видите все просто. И еще один пример если необходимо скопировать права файла и назначить их другому файлу, то для этого существует ключ reference:

igor@adm-ubuntu:~/linux$ chmod –reference=file.txt file1.txt

В результате файл file1.txt будет иметь такие же права как и file.txt.

Давайте теперь поговорим о правах вновь созданных объектов. Если вы создаете объект, то ему присваиваются определенные права заданные по умолчанию. Задаются они при помощи числового шаблона. По умолчанию шаблон равен 0022. Изменить шаблон можно командой umask. Наберите эту команду без параметров, чтобы увидеть текущий шаблон:

igor@adm-ubuntu:~/linux$ umask
0022

Как видим сейчас шаблон равен 0022. Числа соответствуют трем триадам прав. Выполнив команду umask 0127 вы измените шаблон на указанный. Но как применяется данный шаблон? Здесь нужно запомнить два правила:

Если вы создаете файл то значение маски отнимается от значения 0666, а если создаете каталог, то значение маски отнимается от значения 0777. Если быть точным то выполняется операция не вычитания, а XOR. Технические специалисты меня должны понять, для остальных рекомендую придерживаться схемы вычитания: 0666 отнять 0022будет 0644 (rw-r–r–). Именно такие права будут назначены вновь созданному файлу. Или 0777 отнять 0022 будет0755 (rwxr-xr-x) для каталога. Также рекомендую запомнить правило, что цифра 7 в шаблоне запрещает все права для своей триады прав объекта. То есть если вы установите umask в 0777, то никакие права не будут установлены:

igor@adm-ubuntu:~/linux$ umask 0777
igor@adm-ubuntu:~/linux$ touch file3.txt
igor@adm-ubuntu:~/linux$ ls -l
итого 20
———- 1 igor igor    0 2009-10-23 12:48 file3.txt

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

Поговорим о дополнительных правах объектов в родной файловой системе Linux - ext2/ext3. Права rwxrwxrwx, о которых мы говорили раньше назначаются всем объектам всех поддерживаемых файловых систем в Linux. Если файловая система не поддерживает такие права (например та же FAT), то они устанавливаются искусственно. Для родной файловой системы Linux — ext2/ext3 определены дополнительные атрибуты (биты) для объектов. Хочу сразу отметить, что в подавляющем большинстве случаев вам не придется с ними работать, но знать о том, что они есть нужно. Коротко опишем некоторые из них.

A - не обновлять время доступа к объекту. Теоретически установка этого атрибута должна повысить производительность файловой системы и соответственно системы в целом.

а - указывает, что в файл можно добавлять информацию, но нельзя удалять.

d - указывает на то, что не нужно делать резервные копии файла. Файл будет проигнорирован командой dump.

i - указывает на то, что файл нельзя удалять и модифицировать.

s - указывает, что при удалении файла место где был размещен файл будет перезаписано нулями.

u - указывает на то, что при удалении файла его нужно куда-то сохранить.

Существуют и другие атрибуты. О них вы можете прочесть в справке. Там же вы можете увидеть, что атрибуты s и u пока не реализованы в ext2/ext3. Возможно они поддерживаются в ext4.

Для просмотра дополнительных атрибутов существует команда lsattr. Если вы выполните команду lsattr /, то увидите дополнительные права для файловых систем ext2/ext3 и увидите сообщение об ошибке для других файловых систем. Изменять дополнительные атрибуты можно командой chattr. Принцип работы схож с командой chmod. Например, chattr +A file.txt добавит атрибут А к файлу file.txt.

Прочесть о дополнительных атрибутах вы можете по команде man chattr.

Материалом любезно поделился Кузьменко Игорь http://igorka.com.ua

Состоит в: Обучение Тэги: ,
 
Подпишись на обновления сайта по Linuxfan RSSRSS, Linuxfan по EmailEmail или twitter!

Написать ответ

Оставить коментарий

© 2013 LinuxFan. При копировании материала ссылка на Linuxfan.com.ua обязательна!