Clonezilla был бы подходящим продуктом для целого образа диска. Это работает способом, подобным Фантому.
Поведение, которое Вы испытываете, зависит, скорее всего, от различий в переменной среды $PATH
. $PATH
по существу разделенный от двоеточия список каталогов, которые ищутся для конкретного исполняемого файла, когда программа вызывается с помощьюexec
вызов операционной системы. $PATH
может содержать компоненты относительного пути, обычно .
или пустая строка, которую оба отсылают к текущему рабочему каталогу. Если текущий каталог является частью $PATH
, файлы в текущем рабочем каталоге могут быть выполнены просто их именем, например. a.out
. Если текущий каталог не находится в $PATH
, нужно указать относительный или полный путь к исполняемому файлу, например. ./a.out
.
Наличие компонентов относительного пути в $PATH
имеет потенциальные последствия безопасности как исполняемые файлы в каталогах ранее в $PATH
омрачите исполняемые файлы в каталогах позже в списке. Рассмотрите, например, нападение на систему где текущий рабочий путь к каталогу .
предшествует /bin
в $PATH
. Если взломщику удается поместить злонамеренный сценарий, совместно использующий имя с наиболее часто используемой системной утилитой, например ls
, в текущем каталоге (который обычно намного легче что замена двоичных файлов в корневом /bin
), пользователь непреднамеренно вызовет злонамеренный сценарий, когда намерение будет состоять в том, чтобы вызвать систему ls
. Даже если .
только добавляется в конце $PATH
, пользователь мог быть обманут для непреднамеренного вызова исполняемого файла в текущем каталоге, который совместно использует имя с общей утилитой, не найденной в той конкретной системе. Поэтому распространено не иметь компоненты относительного пути как часть значения по умолчанию $PATH
.
echo $PATH
в каждой из систем необходимо видеть.
как частьPATH
на Red Hat, но не в системе Ubuntu. Если Вы хотите то же поведение на Ubuntu, Вы могли бы добавить.
кPATH
на Ubuntu с командойexport PATH=$PATH:.
(добавьтеPATH=$PATH:.
кому:~/.profile
делать изменение постоянным), но знать, что это имеет определенные последствия безопасности, которые я пытаюсь объяснить в отредактированном ответе. – Thomas Nyman 04.08.2013, 20:27./
в$PATH
. Это - плохая идея с точки зрения безопасности, и это поощряет неаккуратное поведение, в котором Вы действительно не нуждаетесь. – Shadur 05.08.2013, 10:03echo $PATH
в красной шляпе имеет нет.
в конце пути, поскольку Вы сказалиecho $PATH
дал мне это на самом деле/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin::/opt/oracle/product/11.2.0/clien t_1/bin:/home/H11/u756938/bin
и a.out все еще работает... – Munai Das Udasin 05.08.2013, 12:32.
и пустая строка в$PATH
обратитесь к текущему каталогу. Отметьте::
после/usr/bin
в выводеecho $PATH
. – Thomas Nyman 06.08.2013, 07:33