Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Сравнение файлов и команда patch




Вы не замечали, что задача сравнения содержимого двух различных файлов возникает при работе с компьютером удивительно часто? Конечно, ведь так легко скопировать файл, а потом забываешь, какая же из версий новее или качественнее (по одному автору ведомым критериям). Так что инструменты для сравнения файлов просто необходимы и Linux такие инструменты предоставляет.

Простейший из них — команда cmp. Эта команда просто сравнивает содержимое двух файлов по-байтно:

[user]$ cmp file1 file2

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

Конечно, информации, выдаваемой командой cmp, маловато для того, чтобы принять, например, решение о том, какой из двух файлов нам более ценен. Поэтому стоит воспользоваться командой diff для получения полного отчета о том, каковы же различия в интересующих нас файлах. Для получения отчета достаточно указать команде, какие именно файлы сравнивать:

[user]$ diff paper.old paper.new

Отчет о выявленных различиях будет выдан на стандартный выход. Естественно, его лучше перенаправить в файл:

[user]$ diff paper.old paper.new >paper.diff

Для оценки версий одного и того же файла более удобна может оказаться команда sdiff, которая выдает результат сравнения в виде двух столбцов, разделенных пробелами. Если строки с одинаковыми номерами в файлах различаются, то в выводе команды sdiff они разделены вертикальной чертой |. Если строка имеется только в первом файле, она отмечена знаком <. Соответственно, строка, встречающаяся только во втором файле, помечена знаком >.

Существует также команда diff3, которая позволяет сравнить сразу 3 файла.

Но все же наиболее часто используется традиционная для UNIX-систем команда diff. Эта ее востребованность объясняется тем, что создаваемый ею отчет о различиях двух файлов может быть использован командой patch. Чаще всего эти возможности используются при распространении обновлений программного обеспечения. Предположим, что некоторое программное приложение было разослано пользователям в виде файла program.c, содержащего исходный код программы на языке Си. После этого разработчик внес в программу некоторые исправления и сохранил текст в виде файла program.c.new. Требуется довести исправленный текст программы до пользователей. Очевидно, что пользователям достаточно сообщить только исправления, т. е. отчет об изменениях, создаваемый по команде

[user]$ diff program.c program.c.new > program.c.diff

Естественно, объем файла program.c.diff существенно меньше объема файла program.c.new, так что можно было бы получить существенную экономию на передаче файлов, если отправлять пользователям только файл program.c.diff(ведь объемы современных программных приложений составляют десятки мегабайт). Однако пользователи должны иметь возможность внести эти исправления в имеющуюся у них версию программы. Эту задачу позволяет решить команда patch. Имея файлы program.c и program.c.diff, пользователь может дать команду

7,12 Переміщення по файловій систем

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

Хотя мы будет исследовать данную структуру преимущественно как пользователь, иногда нам потребуется «стать супером» для полного исследования каталога. В таких случаях следует позаботиться о том, чтобы случайно не изменить жизненно важные файлы: результатом может быть гибель установленной системы. Для получения привилегий суперпользователя откройте терминал и наберите su, затем нажмите Enter и введите пароль root. Затем вы можете открыть Nautilus или Konqueror, для Gnome и KDE соответственно, из командной строки, введя nautilus или konqueror. Если под KDE у вас установлен Krusader (аналог Total Commander'a), то лучше запустить его в режиме суперпользователя из главного меню системы (там, где в Windows кнопка ПУСК).

Держа это предупреждение в голове, незамедлительно начнем сверху... или снизу…

Для начала откройте ваш файловый менеджер. В Ubuntu, Fedora или любом другом дистрибутиве на базе Gnome вам необходимо кое-что поменять, прежде чем мы продолжим, поскольку поcледние версии Gnome предпочитают прятать древо файловой системы.

Для легкой перестройки Gnome, выберите меню Переход, а затем Домашняя папка. Далее подобные операции будут обозначены так: Переход > Домашняя папка. Стандартный способ работы в Gnome предусматривает, что двойной щелчок на каталоге открывает новое окно. Это хорошо при мониторе размером с киноэкран и организаторских способностях, как у колонии муравьев, но большинство из нас очень скоро увязнет. Поэтому выполните Правка > Параметры и выберите вкладку Поведение. Щелкните на флажке с надписью Всегда открывать в окне браузера, а затем нажмите кнопку Закрыть. Теперь закройте браузер файлов и вновь выполните Переход > Домашняя папка. На сей раз менеджер файлов отобразит файлы в главной части окна. По верхнему краю отобразится несколько иконок браузера – Назад, Вперед, Вверх, Обновить и т.д. – а внизу слева появится список различных мест, куда можно перейти. Под панелью инструментов будет так называемая «тропка из хлебных крошек» (помните Мальчика-с-пальчик?). Она отображает маршрут к вашему текущему положению в файловой системе через серию кнопок, на которые можно нажимать. Чтобы переключиться к текстовому отображению пути, нажмите кнопку с иконкой записной книжки у левого края.

Теперь, после настройки, можно двигаться далее. Дважды щелкните на иконке панели Переход с названием Файловая система. Сразу же заметим, что файловая система Linux имеет единую иерархию. Дискеты, съемные диски и CD, вставляемые в компьютер, становятся частью этой иерархии. Она называется унифицированной файловой системой – в отличие от мира Windows, где эти устройства считаются отдельными, или разделенными, местами в файловой системе.

Наверху этой иерархии – то есть он содержит все остальные элементы – находится /, так называемый слэш - или корневой каталог (не путайте с /root). Когда мы щелкали на иконке Файловая система, первым появился /. Ниже располагается ряд каталогов (в Ubuntu их 19), хранящих другие каталоги и файлы. Принято, чтобы / содержал только каталоги, но некоторые дистрибутивы размещают в нем пару файлов. Вы не делайте этого!

/home

Для большинства из нас /home – самый важный каталог в системе Linux, потому что в нем располагаются домашние папки всех пользователей, имеющихся в системе. Вероятно, там находится все: фотографии, музыка, презентации и документы. Здесь также располагаются файлы настроек конкретного пользователя, вроде тех, что определяют фон рабочего стола, оконные рамки и параметры приложений и данные, связанные с жизнью в сети – история браузера, архив электронных писем и так далее. Каталоги в /home обычно доступны только пользователю, которому принадлежат, и суперпользователю (root, или системному администратору). При первом взгляде на /home/username вы можете не увидеть никаких файлов конфигурации. Дело в том, что они скрыты; но вы можете их «засветить», перейдя в меню Вид и выбрав Скрытые файлы. Тогда окно заполнится гуще, и вы отметите, что все ранее скрытые элементы начинаются с точки (.). Это способ Unix/Linux прятать файлы и каталоги от пользователя, хотя если вы дважды щелкнете по любому из них, они откроются так же, как и обычный.

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

Здесь есть каталог Desktop; перенесите что-нибудь в него, и оно возникнет на рабочем столе пользователя. Windows-эквивалентом этой папки является C:\Documents and Settings\имя_пользователя\Desktop.

/root

Каждый пользователь имеет собственный каталог, и пользователь root – не исключение. Его каталог аналогичен каталогу обычного пользователя и содержит документы и каталог Desktop. Однако он не должен быть особо заполнен документами, потому что рутинные работы пользователь root не выполняет, а значит, в этой учетной записи данным накапливаться не с чего.

/bin

Двигаемся дальше. /bin – это сокращение от binaries [двоичные файлы], и здесь вы найдете набор исполняемых файлов с загадочными именами вроде ls, rm, mkdir и rmdir, которые весьма полезны для системных администраторов и продвинутых пользователей. Если вы немного знакомы с командной строкой Linux, то уже сталкивались с этими именами, а те, кто работал только с графической оболочкой, пользовались этими программами, не подозревая об этом. Давайте рассмотрим некоторые их функции.

Откройте терминал, который обычно находится в меню под именем Терминал или Консоль. Когда он появится на экране, наберите
mkdir LXF
В терминале ничего не произойдет, но, открыв менеджер файлов и заглянув в ваш домашний каталог, вы должны увидеть новую папку с именем LXF. Она здесь потому, что терминал по умолчанию открывается в домашнем каталоге, а mkdir – это команда “make a directory” [создать каталог] (то же происходит, если вы щелкаете правой кнопкой мыши в окне и выбираете Создать каталог). Теперь в терминале наберите
rmdir LXF
Новый каталог будет удален – как если бы вы после правого на нем выбрали пункт Удалить. Кстати, если вы не хотите ради проверки запускать менеджер файлов, просто наберите ls, и увидите содержимое каталога.

/sbin

/bin содержит приложения, необходимые вам для ежедневной работы (пусть вы и не осознаете этого); а /sbin – место, где система Linux хранит элементы, запускаемые в фоновом режиме [а точнее, инструменты, предназначенные для администратора]. Windows-эквивалентом ему может быть каталог C:\Windows\System. Здесь вы можете найти такие программы, как Lilo – загрузчик Linux, fdisk – для работы с различными разделами диска, и все остальное ПО, помогающее в работе системы. Нечего и говорить – что баловство с содержимым этого каталога способно серьезно повредить вашу ОС, поскольку оно жизненно важно для каждого пользователя.

/usr

Этот каталог немного странноват, поскольку содержит множество вещей, которым самое бы место прятаться где-то в /bin или /sbin.

Отличие в том, что эти двоичные файлы более приближены к пользователю. В Windows вы можете видеть подобное в C:\Windows\Program Files (хотя следует помнить, что Windows, в отличие от Linux, не чувствителен к регистру), и если вы хотите вручную запустить приложение, установленное при помощи менеджера пакетов, но не появившееся в меню, то начинать нужно отсюда.

Внутри /usr много подкаталогов. Их количество и имена зависят от используемого дистрибутива, но всегда имеется /bin для бинарных файлов, lib для файлов библиотек и X11, где вы найдете все для взаимодействия вашего компьютера со внешним миром. Здесь же, внутри каталога /src, располагаются исходные тексты ядра Linux. Можете посмотреть их, но они не очень-то интересны.

Так же как в /bin и /sbin, хорошей идеей будет перемещаться по этим каталогам осторожно – здесь легко учинить катастрофу [напомним еще раз: проблемы могут возникнуть, только если вы работаете от имени root. Однако, для простого просмотра системных каталогов привилегии суперпользователя обычно не нужны, а обычный пользователь при всем желании не сможет нанести вред /usr и другим системным каталогам].

/opt

В стандартной структуре Unix, многие приложения, не являющиеся частью основного дистрибутива, помещаются в /opt, но в Linux он используется не часто. Если вы тщетно искали двоичный файл приложения в различных подкаталогах /usr, то может быть, он расположен где-то здесь [в некоторых дистрибутивах в /opt устанавливаются крупные приложения, такие как KDE, Gnome и OpenOffice.org. Обычно для них создается каталог с подходящим именем, внутренняя структура которого повторяет файловую систему Unix «в миниатюре»: здесь можно найти те же bin, lib и т.п.].

/etc

Те же предупреждения верны и для каталога /etc – он содержит многие файлы конфигурации, отвечающие за корректную работу вашего компьютера. Например, здесь находится файл с именем fstab, разъясняющий Linux, как обращаться с различными монтируемыми файловыми системами. В системах на основе Debian в /etc/apt имеется файл sources.list, точно описывающий, откуда системе можно брать новые программы. Одним из наиболее важных подкаталогов здесь – и его регулярно нужно резервировать – это rc.d; он содержит стартовые скрипты системы. Заглянув в каталог, вы увидите, что там больше одного rc.d. На самом деле их семь: rc0.d, rc1.d, rc2.d и так далее. Они соответствуют различным уровням запуска [runlevel], используемым в Linux.

Что такое уровень запуска? Он определяет количество запускаемых программ: будут ли это текстовые службы или полный графический интерфейс. Например, уровень запуска 1 обеспечивает простейшую реализацию системы (она полезна для поиска неисправностей, но вам вряд ли понравится), тогда как уровень запуска 5 – это полностью графическая загрузка с поддержкой сети, которую вы видите каждый день. Уровень запуска 0 – это выключение [halt], а 6 – перезагрузка. Пожалуй, с уровнями запуска связываться не стоит, но если, допустим, вы захотите перезагрузить машину из командной строки (от имени root), то можете просто набрать:
init 6

/mnt

Если вы вставите в компьютер CD, дискету или подключите переносной диск в USB-порт, то иконка носителя выскочит на рабочий стол или в меню Переход в Gnome так же шустро, как продавец сельской лавочки к покупателю. Теперь вы можете дважды щелкнуть на ней и получить доступ к содержимому при помощи вашего менеджера файлов. Если устройство не появилось там, где ожидалось, лучше всего поискать его в /mnt (от mount). (в моем случае все они выскакивали в /media, вне зависимости от сборки линуха). Это каталог, в котором устройство подключается к иерархии Linux (учтите, некоторые дистрибутивы могут запутать вас, помещая сменные носители вроде CD и DVD в /media). Однако, поскольку мы живем в XXI веке, эти операции не должны требовать дополнитель- ной помощи – ваши диски должны появляться магически.

Если вы все еще используете двойную загрузку Windows и Linux, то ваши Windows-диски также, скорее всего, появятся в каталоге /mnt. Однако вам следует знать, что хотя большинство дистрибутивов Linux без проблем осуществляют чтение/запись в старой файловой системе Windows FAT32, они не умеют производить запись в файловой системе NTFS, используемой большинством систем XP, хотя NTFS прекрасно поддерживается в режиме чтения. Есть и обходные пути, основанные на свободных программах, что с каждым днем становятся лучше, но пока еще не слишком дружелюбны к начинающим.

Во время нашего прочесывания файловой системы вы могли отметить, что все рассмотренное нами является файлом. Часть системы, отвечающая за перевод перемещений мыши в движение курсора на экране – это файл, и нечто, информирующее компьютер, сколько пикселей и цветов отображает ваш монитор – тоже... файл.

Это верно и для Windows, но в системе Linux эти файлы более доступны и полностью поддаются редактированию. В прошлом, большая часть настройки системы состояла в поиске в каком-то Богом забытом каталоге текстового файла с расширением.conf и в последующей его правке от имени пользователя root. Не удивительно, что это казалось маргинальным хобби, и гарантия Debian была такова: если вы сломаете это, вам достанутся обе половины. Теперь большинство дистрибутивов поставляются с набором графических инструментов, преобразующих нажатия кнопок, флажков и манипуляции с полосами прокрутки в значения во все тех же.conf файлах. Но файлы остаются, вот почему современная система Linux пригодна и для новых пользователей, и хакеры ею довольны.

/dev

Желающим убедиться, что все в системе является файлом, лучшее всего смотреть именно в этом каталоге. Здесь будет несколько файлов, соответствующих разделам вашего жесткого диска (hda1, hda2), дисководу (fd0), CD (cdrom) и любому другому устройству (/dev – от device [устройство]), подключенному к компьютеру. Но не думайте, что они статичны, только потому, что мы говорим о файлах. Например, все, что записывается в файл /dsp, будет переправлено через вашу звуковую систему на колонки. Чтобы увидеть этот эффект, вы можете взять любой файл, скормить его звуковой системе и услышать, как он звучит. Наберите
cat /etc/fstab > /dev/dsp
и услышите некий шум из динамиков (сначала убедитесь, что они не на максимуме!): это речи – интересные и бессмысленные одновременно – текстового файла!

/proc

Это странная псевдофайловая система, находящаяся в памяти ОС и потому никогда реально не сохраняемая на физическом устройстве. "proc" происходит от process, потому что она хранит сведения обо всех процессах, запущенных на вашем компьютере. Процессами может быть все что угодно: от открытого web-браузера до работающего демона NTP, синхронизирующего часы вашего ПК с сервером в сети. То есть это динамический каталог, новая версия которого создается при каждой загрузке [на самом деле, содержимое каждого файла и каталога в /proc определяется непосредственно в момент их чтения и определяет самую свежую на тот момент информацию о состоянии вашей системы].

/var

Этот каталог является пристанищем данных, отправляемых из приложений на принтер. Интересного тут мало [спул принтера – лишь малая часть обязанностей каталога /var. В нем также хранятся системные журналы (/var/log), сведения о запущенных демонах (/var/run) и принятые сервером почтовые сообщения (/var/mail или /var/spool/mail), а в некоторых системах – документы, доступные через web-сервер].

/boot

После /, это первый каталог, к которому обращается компьютер после старта. Кроме файлов, связанных с вашим менеджером загрузки (Lilo или Grub), Linux хранит здесь действующее ядро ОС. Оставьте его в покое.

/lib

Любой, кто работал с Windows хоть какое-то время, сталкивался с DLL. DLL – это сокращение от dynamic linked library [динамически подключаемая библиотека]. Подобные библиотеки имеются и в Linux, отсюда и /lib. Библиотеки – часть программного обеспечения, необходимая для работы других программ. Например, Gimp может открывать и записывать JPEG файлы благодаря библиотеке jpg, содержащей необходимую информацию для работы с этим форматом. Более того, другие приложения могут также использовать данную библиотеку. Навряд ли вы загляните в этот каталог, разве что из любопытства.

/lost+found

Этот каталог, который, кажется, назвал Баз Лурхман [Baz Lurhmann], вы должны посетить в первую очередь в случае перезагрузки после сбоя или нештатного окончания работы (например, из-за отключения питания). Linux любит выключаться правильно, а именно: все файловые системы размонтируются и все процессы уничтожаются до того, как штепсель выдернут из розетки. Таким образом, когда случается неожиданное выключение, Linux требует восстановления системы. После катастрофического сбоя первым произойдет запуск системы fsck, программы, которая просматривает ваши диски в поисках поврежденных файлов. Она попытается исправить любые найденные повреждения и поместит их в /lost+found.

/tmp

В Windows имеется каталог Temp, в Linux – /tmp. В этом месте ОС хранит данные, необходимые ей временно, типа файлов, загружаемых из Интернета и открытых в приложениях, но еще не сохраненные в обычном месте. Большинство Linux систем очищает этот каталог – удаляя все содержимое – во время загрузки, так что ничего в нем не храните!

Большинство из описанных в этом кратком обзоре каталогов мало интересны тем пользователям, которые хотят просто использовать свой компьютер, и верно также то, что вам не нужно понимать структуру ОС, чтобы продуктивно работать. Однако даже краткий экскурс под капот вашей системы – очень полезное упражнение. Поначалу он должен подвигнуть вас на дальнейшее изучение и эксперименты с вашим компьютером, чего отнюдь не советуют делать пользователям Windows и OS X. Не исключено, что вы доэкспериментируетесь до поломки компьютера [не физической – ваше оборудование останется в целости, но систему придется чинить или переустанавливать,], что может быть весьма обидно. Вот прекрасный повод изучить одну из возможностей виртуализации, имеющихся в Linux. С каким-нибудь бесплатным VMware Player вы можете играть и ломать все, что хотите, а потом отключите виртуальное устройство и перезагрузитесь по новой. Чем не отличная игра!

 

9.Копіювання файлів

10. створення і видалення каталогів

 

11. Проглядання вмісту файлів

Просмотр содержимого файлов.

Вывести содержимое файла file1 на стандартное устройство вывода:

cat file1

Вывести содержимое файла file1 на стандартное устройство вывода в обратном порядке (последняя строка становиться первой и т.д.):

tac file1

Постраничный вывод содержимого файла file1 на стандартное устройство вывода (для перехода на следующую страницу нажмите «пробел»):

more file1

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

less file1

Выводится первые десять строк файла file1:

head file1

Вывести первые две строки файла file1 на стандартное устройство вывода:

head -2 file1

Выводит последние десять строк файла file1:

tail file1

Вывести последние две строки файла file1 на стандартное устройство вывода

tail -2 file1

Выводить содержимое файла на стандартное устройство вывода по мере поступления в нём текста:

tail -f / var / log / messages 13.Видалення файлів

Восстановление удалённых файлов при помощи /proc и lsof

Теперь давайте рассмотрим процесс восстановления удалённых файлов. Вообще, причиной тому что вы можете восстановить удалённый файл является тот факт, что «файл» — это лишь ссылка на индексный дескриптор файла (inode). Именно в inode хранится информация о физическом размещении файла. Когда вы удаляете файл, фактически вы просто удаляете ссылку на inode, в то время как сам дескриптор ещё какое-то время будет существовать: до тех пор, пока процесс, ранее открывший этот файл не освободит соответствующий дескриптор для записи. Таким образом, есть какое-то время, пусть и короткое, в течение которого можно восстановить содержимое удалённого файла. Ключом в этом процессе является файловая система /proc, содержащая среди всего прочего информацию обо всех выполняющихся в системе процессах и открытых ими файлах. Каждый процесс, работающий в системе имеет соответствующий его PID каталог в /proc. Зная PID процесса, всё ещё держащего открытым удалённый файл, мы всегда можем восстановить его содержимое из каталога /proc/[pid]/ открывшего его процесса. Давайте на простом примере посмотрим, как это делается.

Сперва давайте создадим какой-нибудь файл:

$ echo 'Очень важные данные' > ~/myfile.txt

Теперь у нас есть файл myfile.txt с важными данными, расположенный в домашнем каталоге. Давайте попробуем удалить его и затем восстановить следующим образом. Сначала мы откроем файл для просмотра командой less, после чего приостановим её работу, оставив таким образом нужный нам файл открытым. Итак, пошагово.

Откройте файл командой less для просмотра

$ less ~/myfile.txt

После того, как файл будет открыт и вы увидите его содержимое, нажмите Ctrl+z, чтобы приостановить выполнение less.

Удалите файл:

$ rm ~/myfile.txt

Убедитесь в том, что файла больше нет

$ ls -l ~/myfile.txt

Поскольку работа ранее запущенной нами less ещё не завершена, то файл остаётся для неё открытым и фактически не удалён. Давайте восстановим его.

Для начала необходимо узнать PID процесса, открывшего файл и номер файлового дескриптора. Сделать это можно при помощи программы lsof:

$ lsof | grep myfile.txtless 2675 ashep 4r REG 8,1 37 294478 /home/ashep/myfile.txt (deleted)

Во втором поле вывода lsof содержится PID — 2675, а в четвёртом номер дескриптора — 4. Теперь можно приступать к восстановлению:

$ cp /proc/2675/fd/4 ~/recovered.txt

Проверьте, то ли содержимое находится в файле, которое нам нужно:

$ cat ~/recovered.txtОчень важные данные

Как видим, всё прошло успешно и нам удалось восстановить удалённый файл.

Восстановление удалённых файлов при помощи Scalpel

После того как процесс, открывший файл, завершится, восстановление файла становится задачей потруднее, поскольку индексный дескриптор освобождается и всякая связь между данными в блоках на диске и файловой системой потеряна. До тех пор, пока данные физически не будут перезаписаны на диске, существует возможность их восстановления при помощи утилиты Scalpel. Этот инструмент последовательно, блока за блоком, обходит содержимое диска и анализирует его содержимое, пытаясь найти признаки существования там файлов. Для поиска Scalpel использует шаблоны из последовательности байт, присущих определённым типам файлов. Например, PNG-файлы содержат в заголовке последовательность байт \x50\x4e\x47.

Scalpel вы найдёте в репозиториях большинства современных дистрибутивов. После установки утилиты первым делом нужно определиться с тем, какие файлы программа будет искать при работе. Определения шаблонов для поиска находятся в файле /etc/scalpel/scalpel.conf. По умолчанию содержимое файла целиком закомментировано и прежде чем начать работу вам необходимо раскомментировать нужные шаблоны и/или добавить свои. Формат описания шаблона довольно прост:

extension case_sensitive size header [footer]

где

  • extension определяет расширение файла, которое Scalpel будет дописывать при восстановлении;
  • case_sensitive указывает утилите, имеет ли значение регистр символов в шаблоне поиска;
  • при помощи size определяется максимальный размер восстанавливаемых файлов;
  • в header и необязательном footer описываются последовательности заголовка файла и нижней его части соответственно.

Например, определение шаблона для JPG-файлов может выглядеть так:

jpg y 200000000 \xff\xd8\xff\xe0\x00\x10 \xff\xd9

После того, как внесёте необходимые изменения в конфигурационный файл Scalpel и подготовите пустую (обязательно!) директорию для сохранения найденных файлов, можно запускать процесс поиска и восстановления:

# scalpel -o ~/recovered /dev/sdb1

где при помощи опции '-o' определяется путь к каталогу для сохранения найденных файлов. Процесс работы утилиты как правило очень долгий, поскольку она сканирует всё устройство целиком, поэтому воспользуйтесь моментом и сходите прогуляться на улицу, свежий воздух ещё никому не мешал;)

После того, как Scalpel завершит свою работу, изучите содержимое выходного каталога на предмет наличия в нём нужных вам файлов.

Заключение

Мало кто хотел бы попасть в ситуацию, когда важные данные окажутся случайно удалёнными или повреждёнными. И хотя Linux предлагает средства для восстановления утраченных данных, приятного в этом процессе мало. Поэтому будьте всегда предельно внимательны к своим данным и работе с ними. Ну и, конечно же, не забывайте про своевременное резервное копирование — старый и проверенный метод, спасший не одну тысячу нервных клеток от верной гибели.

16. Заміна прав доступу до файлів

В Linux, однако, используются не какие угодно свойства, а результат идентификации пользователя — его UID. Каждый процесс системы обязательно принадлежит какому-нибудь пользователю, и идентификатор пользователя (UID) — обязательное свойство любого процесса Linux. Когда программа login запускает стартовый командный интерпретатор, она приписывает ему UID, полученный в результате диалога. Все процессы, запущенные пользователем во время терминальной сессии, будут иметь его идентификатор.

Пользователь может быть членом нескольких групп, равно как и несколько пользователей может быть членами одной и той же группы. Исторически сложилось так, что одна из групп — группа по умолчанию — является для пользователя основной: когда (не вполне точно) говорят о «GID пользователя», имеют в виду именно идентификатор группы по умолчанию. Пользователь не может не быть членом как минимум одной группы, как снаряд не может не попасть в эпицентр взрыва! Часто процедуру создания пользователя проектируют так, что имя группы по умолчанию совпадает с входным именем пользователя, а GID пользователя — с его UID. Однако это совсем не обязательно: не всегда нужно заводить для пользователя отдельную группу, а если заводить, то не всегда удаётся сделать так,чтобы желаемый идентификатор группы совпадал с желаемым идентификатором пользователя.

При создании объектов файловой системы — файлов, каталогов и т. п. — каждому в обязательном порядке приписывается UID — идентификатор пользователя-владельца файла, GID — идентификатор группы, которой принадлежит файл, тип объекта и набор т. н. атрибутов, а также некоторую дополнительную информацию. Атрибуты определяют, кто и что с файлом имеет право делать, и описаны ниже.

В Linux существует выделенный пользователь системы, на которого не распространяются ограничения прав доступа - суперпользователь (root). UID суперпользовательских процессов равен 0: так система отличает их от процессов других пользователей. Именно суперпользователь имеет возможность произвольно изменять владельца и группу файла. Ему открыт доступ на чтение и запись к любому файлу системы и доступ на чтение, запись и использование к любому каталогу. Наконец, суперпользовательский процесс может на время сменить свой собственный UID с нулевого на любой другой. Среди учётных записей Linux всегда есть запись по имени root («корень»), соответствующая нулевому идентификатору, поэтому вместо «суперпользователь» часто говорят «root». Множество системных файлов принадлежат root-у, множество файлов только ему доступны на чтение или запись. Пароль этой учётной записи — одна из самых больших драгоценностей системы. Свойство root иметь доступ ко всем ресурсам системы накладывает очень высокие требования на человека, знающего пароль root. Суперпользователь может всё — в том числе и всё поломать, поэтому любую работу стоит вести с правами обычного пользователя, а к правам root прибегать только по необходимости. Существует два различных способа получить права суперпользователя.

Первый — это зарегистрироваться в системе под этим именем, ввести пароль и получить стартовую оболочку, имеющую нулевой UID. Это — самый неправильный способ, пользоваться которым стоит, только если нельзя применить другие. Что в этом случае выдаст команда last? Что тогда-то с такой-то консоли в систему вошёл неизвестно кто с правами суперпользователя и что-то там такое делал. С точки зрения системного администратора, это — очень подозрительное событие, особенно, если сам он в это время к указанной консоли не подходил... сами администраторы такой способ не любят.

Второй способ — это воспользоваться специальной утилитой su (shell of user), которая позволяет выполнить одну или несколько команд от лица другого пользователя. Отличие от предыдущего способа — в том, что всегда известно, кто именно запускал su, а значит, с кого спрашивать за последствия.

В некоторых случаях удобнее использовать не su, а утилиту sudo, которая позволяет выполнять только заранее заданные команды.

Утилита id (см. man id) выводит входное имя пользователя и соответствующий ему UID, а также группу по умолчанию и полный список групп, членом которых он является.

Вся информация о пользователях и группах, зарегестрированных в систееме, хранится в файлах /etc/passwd, /etc/shadow и /etc/groups

Таким образом, конкретный пользователь по отношению к его собственным файлам выступает как их владелец (u - user).

У каждого файла есть еще и группа (g - group), к которой принадлежит владелец файла.

Кроме владельца и группы в системе могут существовать и другие пользователи. Поэтому в атрибутах файла содержаться значения, запрещающие или разрешающие доступ всем другим (o - other), кто не вошел в группу и не является владельцем.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных