КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Основные типы файлов. Права доступа к файлу. Операции над файлами
Монтирование и демонтирование файловой системы Монтирование – это процесс, который делает файловую систему устройства частью единой файловой системы, доступной для Linux. Например, можно монтировать файловые системы на разделах жесткого диска, таких как /boot, /tmp или /home, а также на дискетах - /mnt/floppy и на CD-ROM - /media/cdrom1. Базовая форма команды mount имеет два параметра: устройство (или ресурс), содержащие монтируемую файловую систему, и точка монтирования. Например, смонтируем наш раздел с системой FAT32 /dev/hda8 в точке монтирования /dos, как показано в листинге. root@pinguino:~# mount /dev/hda8 /dos Точка монтирования должна существовать прежде, чем в нее что-либо будет смонтировано. В результате монтирования файлы и подкаталоги монтируемой файловой системы становятся файлами и подкаталогами точки монтирования. Иногда может потребоваться явное задание типа файловой системы, для чего используется опция -t, как показано в листинге. root@pinguino:~# mount -t vfat /dev/hda8 /dos Чтобы увидеть, какие файловые системы смонтированы, используйте mount без параметров. Опции монтирования Например, можно смонтировать файловую систему «только для чтения», указав атрибут -o ro. Если файловая система уже смонтирована – добавьте remount, как показано в листинге. root@pinguino:~# mount -o remount,ro /dos Размонтирование файловых систем Все смонтированные файловые системы обычно автоматически размонтируются системой при перезагрузке или выключении. Также можно размонтировать файловую систему вручную. В действительности это необходимо делать всякий раз, когда вы удаляете записываемый съемный носитель - дискету, USB-диск или флэш-накопитель. Прежде чем размонтировать файловую систему, следует убедиться в отсутствии работающих процессов, которые имеют открытые файлы в этой файловой системе. Затем используйте команду umount, указав в качестве аргумента либо имя устройства, либо точку монтирования. Несколько примеров успешного и безуспешного размонтирования приведено в листинге 30.
root@pinguino:~# lsof /dos root@pinguino:~# umount /dos root@pinguino:~# mount /dos root@pinguino:~# umount /dev/hda8 root@pinguino:~# umount /boot umount: /boot: device is busy umount: /boot: device is busy root@pinguino:~# lsof /boot COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME klogd 6498 klog 1r REG 3,2 897419 6052 /boot/System.map-2.6.12-10-386
После размонтирования файловой системы файлы в каталоге, использовавшемся в качестве точки монтирования, снова становятся видимыми.
Типы файлов С точки зрения операционной системы файл представляет собой просто поток байтов. Такой подход позволяет распространить концепцию файла на физические устройства и некоторые другие объекты. Это позволяет упростить организацию данных и обмен ими, потому что аналогичным образом осуществляется запись данных в файл, передача их на физические устройства и обмен данными между процессами. Во всех этих случаях используется один и тот же подход, основанный на идее байтового потока. Поэтому наряду с обычными файлами и каталогами, файлами с точки зрения Linux являются также: •файлы физических устройств; •именованные каналы (named pipes); •гнезда (sockets); •символические ссылки (symlinks). В ОС Linux можно выделить следующие типы файлов: • обычные файлы — последовательность байтов (текстовые документы, исполняемые программы, библиотеки и т.п.); • каталоги — именованные наборы ссылок на другие файлы; • файлы физических устройств, подразделяющихся на: • файлы блочных устройств, драйверы которых буферизуют ввод-вывод с помощью ядра и • файлы байт-ориентированных, или символьных, устройств, позволяющих связанным с ними драйверам выполнять буферизацию собственными средствами; • символические ссылки (symlink, symbolic link);
• именованные каналы (named pipes); • гнезда (sockets). Для каждого файла, созданного в файловой системе, запоминаются имена его хозяина и группы хозяев. Группа хозяев не обязательно должна быть группой, в которую входит хозяин. Упрощенно можно считать, что в операционной системе Linux при создании файла его хозяином становится пользователь, создавший файл, а его группой хозяев – группа, к которой этот пользователь принадлежит. Права доступа Если выполнить команду ls -l. И задать ей в качестве дополнительного параметра имя конкретного файла. [user]$ ls -l /bin/ls -rwxr-xr-x 1 root root 49940 Sep 12 2009 /bin/ls Вы видите, что в данном случае владельцем файла является пользователь root и группа root. Но нас сейчас в выводе этой команды больше интересует первое поле, определяющее тип файла и права доступа к файлу. Первая группа, состоящая из единственного символа, определяет тип файла. Этот символ в соответствии с возможными типами файлов, рассмотренными в предыдущем разделе, может принимать такие значения: • - = - обычный файл; • d = - каталог; • b = - файл блочного устройства; • c = - файл символьного устройства; • s = - доменное гнездо (socket); • p = - именованный канал (pipe); • l = - символическая ссылка (link). Далее следуют три группы по три символа, которые и определяют права доступа к файлу соответственно для владельца файла, для группы пользователей, которая сопоставлена данному файлу, и для всех остальных пользователей системы. В нашем примере права доступа для владельца определены как rwx, что означает, что владелец (root) имеет право читать файл (r), производить запись в этот файл (w), и запускать файл на выполнение (x). Замена любого из этих символов прочерком будет означать, что пользователь лишается соответствующего права. В том же примере мы видим, что все остальные пользователи (включая и тех, которые вошли в группу root) лишены права записи в этот файл, т. е. не могут файл редактировать и вообще как-то изменять. Права доступа и информация о типе файла в UNIX-системах хранятся в индексных дескрипторах в отдельной структуре, состоящей из двух байтов, т. е. из 16 бит (это естественно, ведь компьютер оперирует битами, а не символами r, w, x). При этом, если соответствующий бит имеет значение 1, то право предоставляется, а если он равен 0, то право не предоставляется. В символьной форме записи прав единица заменяется соответствующим символом (r, w или x), а 0 представляется прочерком.
Буква означает наличие права (г - чтение, w - запись, х - исполнение), дефис - его отсутствие. Очевидно, что эти три бита могут быть записаны еще и как восьмеричное число. Так, права доступа r-х (чтение и исполнение без записи) понимаются как три двоичные цифры 101 или как восьмеричная цифра Численное представление прав доступа называется абсолютным, или двоичной маской. Полная строка прав доступа в символьном представлении устроена так: <права_владельца*права_группы*права_остальных> В абсолютном представлении права владельца являются старшим разрядом восьмеричного числа, права группы - вторым и права остальных - третьим. Так, права rwxr-x-x выглядят как число 111101 001, или 751.
Дата добавления: 2014-12-07; Просмотров: 739; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |