Работа с протоколом SMB в ОС МСВС

Файловая система в ОС МСВС

В ОС МСВС работа с локальными/внешними устройствами и данными на дисках организована в виде работы с файлами. Совокупности устройств и/или данных образуют файловую систему. Файловую систему перед использованием необходимо смонтировать т.е. представить в виде единого дерева. Корень дерева называется «root» и обозначается «/».

Для монтирования файловой системы используется команда mount. При монтировании ядру ОС МСВС необходимо указать ряд параметров, например, тип файловой системы, квоты на использование файла, режим монтирования (чтение-запись), права пользователей на доступ к файловой системе и т.д. Для размонтирования используется команда umount.

Пример дерева файлов в ОС МСВС:

Команды для работы с файловой системой ОС МСВС:

LS – выводит содержимое каталога.

Синтаксис:

ls [опции] [файл...]

Описание:

Команда ls сначала выводит список всех файлов и каталогов, перечисленных в командной строке, а затем выводит список всех файлов и каталогов, находящихся в каталогах, перечисленных в командной строке. Если не указано ни одного файла, то по умолчанию аргументом назначается '.' (текущий каталог).

Основные параметры:

-a–включать в список файлы с именем, начинающимся с '.'.

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

-l – выдавать (в одноколоночном формате) тип файла, права доступа к файлу, количество ссылок на файл, имя владельца, имя группы, размер файла (в байтах), временной штамп и имя файла.

Примеры:

Вывести содержимое текущего каталога с правами доступа:

Ls -l

Вывести правами доступа к файлу smd.conf, находящегося в каталоге /etc/samba:

ls –l /etc/samba/smb.conf

CD – смена текущего каталога

Примеры:

Перейти в домашний каталог текущего пользователя:

Cd

Перейти в каталог home из текущего каталога:

Cd home

Перейти в каталог /mnt/cdrom:

cd /mnt/cdrom

MKDIR – создать каталог.

Синтаксис:

mkdir [-m режим_доступа] [-p] каталог ...

Описание:

По команде mkdir создаётся один или несколько каталогов с режимом доступа 0777 [возможно изменить опцией -m]. Стандартные файлы ( . – для самого каталога и .. – для вышележащего) создаются автоматически; их нельзя создать по имени. Для создания каталога необходимо располагать правом записи в вышележащий каталог. Идентификаторы владельца и группы новых каталогов устанавливаются соответственно равными реальным идентификаторам владельца и группы процесса.

Основные параметры:

-m – режим_доступа

-p – при указании этой опции перед созданием нового каталога предварительно создаются все несуществующие вышележащие каталоги.

Примеры:

Создать поддерево каталогов tmpdir/temp/dir:

mkdir -p tmpdir/temp/dir

Создать каталог test в текущем каталоге с правами доступа 777:

mkdir –m 777 test

RMDIR – удаление каталогов.

Синтаксис:

rmdir [-p] [-s] каталог ...

Описание:

Команда rmdir удаляет указанные каталоги, которые должны быть пустыми. Для удаления каталога вместе с содержимым следует воспользоваться командой rm с опцией -r. Текущий каталог не должен принадлежать поддереву иерархии файлов с корнем - удаляемым каталогом. Для удаления каталогов нужно иметь те же права доступа, что и в случае удаления обычных файлов.

Основные параметры:

-p – позволяет удалить каталог и вышележащие каталоги, оказавшиеся пустыми. На стандартный вывод выдается сообщение об удалении всех указанных в маршруте каталогов или о сохранении части из них по каким-либо причинам.

Пример:

Удалить поддерево каталогов tmpdir/temp/dir:

rmdir -p tmpdir/temp/dir

CP – копирование файлов и каталогов.

Синтаксис:

cp [опции] <файл|каталог> [файл|каталог ...] <назначение>

Описание:

Команда cp копирует файл1 в целевой_файл. Файл1 не должен совпадать с целевым_файлом. Если целевой_файл является каталогом, то файл1, файл2, ..., копируются в него под своими именами. Только в этом случае можно указывать несколько исходных файлов.

Если целевой_файл существует и не является каталогом, его старое содержимое теряется. Режим, владелец и группа целевого_файла при этом не меняются.

Если целевой_файл не существует или является каталогом, новые файлы создаются с теми же режимами, что и исходные. Время последней модификации целевого_файла (и последнего доступа, если он не существовал), а также время последнего доступа к исходным файлам устанавливается равным времени, когда выполняется копирование. Если целевой_файл был ссылкой на другой файл, все ссылки сохраняются, а содержимое файла изменяется.

Основные параметры:

-R – рекурсивное копирование, обязателен для копирования каталога, даже если он пуст.

-i – запрос подтверждения перед перезаписью любых файлов, которые могут быть перезаписаны.

-f – противоположность -i, заменяет любые существующие файлы без запроса подтверждения.

-v – подробный режим, сообщает обо всех действиях, выполняемых cp.

Примеры:

Скопировать все файлы из каталога /timages/ в каталог images/, находящийся в текущем каталоге. Запрашивается подтверждение, если должен быть перезаписан файл:

cp -i /timages/* images/

Скопировать весь каталог docs, плюс все файлы из каталога /shared/mp3s в каталог mystuff:

cp -vR docs/ /shared/mp3s/* mystuff/

Сделать копию файла foo в файл с именем bar в текущем каталоге:

Cp foo bar

MV – Переименование или перемещение файлов и каталогов.

Синтаксис:

mv [опции] <файл|каталог> [файл|каталог ...] <назначение>

Описание:

Команда mv перемещает (переименовывает) файл1 в целевой_файл. Файл1 не должен совпадать с целевым_файлом. Если целевой_файл является каталогом, то файл1, файл2, ..., перемещаются в него под своими именами. Только в этом случае можно указывать несколько исходных файлов.

Если целевой_файл существует и не является каталогом, его старое содержимое теряется. Если при этом обнаруживается, что в целевой_файл не разрешена запись, то выводится режим этого файла и запрашивается строка со стандартного ввода. Если эта строка начинается с символа y, то требуемые действия все же выполняются, при условии, что у пользователя достаточно прав для удаления целевого_файла. Если была указана опция -f или стандартный ввод назначен не на терминал, то требуемые действия выполняются без всяких запросов. Вместе с содержимым целевой_файл наследует режим файла1.

Если файл1 является каталогом, то он переименовывается в целевой_файл, только если у этих двух каталогов общий надкаталог; при этом все файлы, находившиеся в файле1, перемещаются под своими именами в целевой_файл. Если файл1 является файлом, а целевой_файл - ссылкой, причем не единственной, на другой файл, то все остальные ссылки сохраняются, а целевой_файл становится новым независимым файлом.

Основные параметры:

-f – форсирование операции –– предупреждение не выводится, если перезаписывается существующий файл.

-i – противоположность -f. У пользователя спрашивается подтверждение перед перезаписью существующего файла.

-v – подробный режим, сообщает обо всех изменениях и действиях.

Примеры:

Переместить все файлы из каталога /tmp/pics/, чьи имена заканчиваются на .png, в текущий каталог (.), запрашивать подтверждение перед перезаписью в нем любых файлов:

mv -i /tmp/pics/*.png

Переименовать файл foo в bar. Если каталог bar уже существовал, результатом выполнения этой команды будет перемещение файла foo или всего каталога (самого каталога плюс всех файлов и каталогов в нем, рекурсивно) в каталог bar:

Mv foo bar

Переместить без запроса подтверждения все файлы из текущего каталога с именами, начинающимися с file, вместе со всем каталогом images/ в каталог trash/, и показать порядок выполнения каждой операции:

mv -vf file* images/ trash/

RM – удалить файл.

Синтаксис:

rm [-f] [-i] файл ...

rm -r [-f] [-i] каталог ... [файл ...]

Описание:

Команда rm служит для удаления указанных имён файлов из каталога. Если заданное имя было последней ссылкой на файл, то файл уничтожается. Для удаления пользователь должен обладать правом записи в каталог; иметь право на чтение или запись файла не обязательно. Следует заметить, что при удалении файла в ОС МСВС, он удаляется навсегда.

Основные параметры:

-f – команда не выдает сообщений, когда удаляемый файл не существует, не запрашивает подтверждения при удалении файлов, на запись в которые нет прав. Если нет права и на запись в каталог, файлы не удаляются. Сообщение об ошибке выдается лишь при попытке удалить каталог, на запись в который нет прав.

-r – происходит рекурсивное удаление всех каталогов и подкаталогов, перечисленных в списке аргументов. Сначала каталоги опустошаются, затем удаляются. Подтверждение при удалении файлов, на запись в которые нет прав, не запрашивается, если задана опция -f или стандартный ввод не назначен на терминал и не задана опция -i. При удалении непустых каталогов команда rm -r предпочтительнее команды rmdir, так как последняя способна удалить только пустой каталог.

-i – перед удалением каждого файла запрашивается подтверждение. Опция -i устраняет действие опции -f.

Пример:

Удалить каталог tmpdir в текущем каталоге с выводом подтверждения об удалении:

Rm -i tmpdir

Удалить в текущем каталоге все файлы, начинающиеся с tes:

rm tes*