Архив рубрики: Статьи о Linux

Числовое обозначение прав доступа

Помимо буквенного указания атрибутов файлов, в Linux применяется также другой, более удобный метод обозначения прав доступа, при котором права обозначаются восьмеричным числом. Оно состоит из трех цифр, первая из которых обозначает право доступа для владельца файла, вторая – для группы владельца и третья – для всех остальных. Составить такое число несложно. Для каждого типа пользователей (владелец, группа владельца и другие пользователи) создаем правило доступа в виде rwx, на месте каждого прочерка ставим ноль, а в остальных случаях – единицу. Теперь переводим это из двоичной системы счисления в восьмеричную. Можно составить следующую таблицу:

Доступ Двоичное число Восьмеричное число
––– 000 0
––х 001 1
–w– 010 2
–wx 011 3
r–– 100 4
r–х 101 5
rw– 110 6
rwx 111 7

Составляем вместе три полученные цифры – и число режима доступа готово. К примеру rw–r––r–– теперь можно записать как 644.

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

  • rw–r––r–– (644) – cистемные файлы и файлы, которые не должны изменяться без ведома хозяина (личные файлы пользователя).
  • rw––––––– (600) – особо важные файлы, доступ к которым не должен иметь никто, кроме хозяина (например, файлы в каталоге суперпользователя или файлы в папке /dev).
  • rwxr–xr–x (755) – исполняемые файлы, запустить которые должен иметь возможность любой пользователь; каталоги, просматривать список файлов в которых имеет право каждый пользователь.
  • rw–rw–rw– (666) – общедоступные для просмотра и изменения файлы.
  • rwx–––––– (700) – исполняемые файлы, запускать которые имеет право только владелец (часто это root); папки, просматривать которые имеет право только владелец.

Закрепляющий бит

Закрепляющий бит

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

При указании числового представления права доступа с закрепляющим битом прибавьте 1000. Например, при указании права доступа rw–r––r–– с закрепляющим битом числовым представлением будет являться число 1644. Символьное представление в таком случае будет rw–r–r–T, то есть в конце просто добавляется буква t в верхнем регистре.

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

Каталог /dev

Каталог /dev

Каталог /dev с его содержимым обеспечивается специальной файловой системой devfs (в более новых версиях Linux – udevfs). Многие операционные системы не предоставляют ничего похожего на каталог /dev в Linux, и их пользователи не жалуются, однако наличие файловой системы devfs очень удобно и может заменить некоторые программы (даже коммерческие). Содержимое /dev генерируется в зависимости от наличия определенного аппаратного обеспечения, на разных компьютерах в данном каталоге может содержаться различный набор файлов.

Таким образом, devfs – это специальная файловая система, представляющая устройства компьютера, которые могут выполнять определенные операции с данными (например, хранить или передавать их) в виде файлов. Сама ФС может немногое – она является только посредником между драйверами устройств и файловой системой. Это похоже на дневник ученика: сам по себе дневник не несет информации, но если ученик (пользователь) захочет узнать, какие оценки ему поставили учителя (драйверы), он обращается к дневнику. Как только файл определенного устройства будет доступен, любая программа в зависимости от ее привилегий сможет работать с этим устройством.

Подкаталоги каталога /dev

Подкаталоги каталога /dev

В это записи рассмотрим подкаталоги каталога /dev. Большинство названий будут для вас, наверняка, знакомы.

/dev/discs – содержит файлы, через которые можно получить доступ к жестким дискам компьютера. Рассматривая содержимое этого каталога, вы видите один или несколько каталогов, количество которых зависит от количества подключенных к компьютеру жестких дисков. Каждый каталог является ссылкой на другой, который также находится в папке /dev, однако более подробно дифференцирует устройства по их местонахождению. Зайдите в один из каталогов в папке /dev/disks. Здесь находятся файлы устройств. Среди них обязательно будет файл с именем disc. Через него можно получить доступ к информации на всем диске. Ниже идут файлы с названиями part1, part2 и т.д. С помощью этих файлов можно получить доступ к области на диске, которая ограничивается размерами определенного раздела на диске, которому соответствует файл (потому имя файла образовано от англ. partition – раздел). Именование этих файлов также не случайно. Файлы part1, part2, part3 и part4 соответствуют первичным и расширенным разделам, а part5 и далее – логическим.

/dev/cdroms – показывает файлы, соответствующие устройствам CD-ROM. Именование для дисков такое: cdrom0, cdrom1 соответственно для первого и второго привода.

/dev/floppy – содержит файлы, соответствующие устройствам гибких (флоппи-) дисков. Сегодня на компьютерах установлено не более одного дисковода, обращаться к нему можно через файл /dev/ floppy/0

/dev/ide – содержит файлы устройств, подключенных к интерфейсу IDE. Рассматривать содержимое этого каталога детально нет необходимости, так как в каталоге /dev имеются ссылки на файлы из него, использование которых в повседневной работе удобнее просмотра каталога /ide.

/dev/scsi – аналогично каталогу /dev/ide, с тем отличием, что в нем содержатся файлы устройств, подключенные к интерфейсу SCSI (Small Computer System Interface – интерфейс малых компьютерных систем).

/dev/vc – содержит файлы виртуальных консолей. С помощью этих файлов можно читать и записывать на доступные консоли.

Файлы каталога /dev

А здесь опишем некоторые интересные файлы, содержащиеся в самом каталоге /dev.

/dev/null – одним из переводов англ. null является «несуществующий». Файл /dev/null представляет собой «черную дыру», в которой все исчезает. Данные, отправленные в этот файл, уходят «в никуда», а сам файл не содержит ничего. Попытавшись прочитать его данные, вы получите нули.

/dev/console – файл активной консоли. Посланные в него данные отображаются на экране компьютера, а запрошенные из него – вводятся с клавиатуры.

/dev/hda{0,1,2…}, /dev/hdb{0,1,2…}, /dev/hdc{0,1,2…}, /dev/hdd{0,1,2…} – указывают на устройства хранения данных (жесткие диски), подключенные к интерфейсу IDE. Способ формирования имени таков: к буквам hd добавляется буква a, b, c или d (в зависимости от подключения диска к компьютеру Primary Master (первичный старший), Primary Slave (первичный младший), Secondary Master (вторичный старший) и Secondary Slave (вторичный младший) соответственно), после чего получается имя файла, через который можно обратиться ко всему диску. Если же требуется обратиться к конкретному разделу на диске, добавляем к полученному выше имени номер раздела (1,2,3,4 – первичные разделы, а 5,6 и т. д. – логические).

/dev/sda{0,1,2…}, /dev/sdb{0,1,2…}, … , /dev/sdp{0,1,2…} – аналогично предыдущему, но для дисков, присоединенных к интерфейсу SCSI (Small Computer System Interface – интерфейс малых компьютерных систем).

/dev/fd{0,1} – позволяет пользователю «общаться» с носителями на гибких дисках. По функциям не отличается от /dev/floppy/0.

/dev/cdrom, /dev/cdrom{0,1,2…}, /dev/dvd – дает доступ к устройствам CD- и DVD-ROM. /dev/cdrom0 означает первый привод CD-ROM, /dev/cdrom1 – второй и т. д.

/dev/tty{0,1,2…} – выполняют аналогичную функцию, что и файлы из каталога /dev/vc. Файл tty0 соответствует первой консоли, tty1 – второй и т. д.