Я пытаюсь создать файл из моего исходного кода c на Linux. Я использую команду dd для чтения из файла и записи в файл, создав там. Если у меня нет прав на выполнение (у меня есть права на запись) для целевого каталога (где будет создаваться файл), он не сможет создать файл. Если у меня есть разрешения на запись и выполнение, он может создать файл. Что является причиной этого?
2 ответа
Если атрибуты режима r, w и x установлены, они оказывают следующее влияние на файлы и каталоги:
- Атрибут (разрешение на чтение):
Файлы: позволяет открывать и читать файл.
Каталоги: Позволяет перечислять содержимое каталога, если также установлен атрибут execute.
- Атрибут w (разрешение на запись):
Файлы. Позволяет записывать или усекать файл, однако этот атрибут не позволяет переименовывать или удалять файлы. Возможность удалять или переименовывать файлы определяется атрибутами каталога.
Каталоги: Позволяет создавать, удалять и переименовывать файлы в каталоге, если также установлен атрибут execute.
- Атрибут (разрешение на выполнение):
Файлы: позволяет обрабатывать файл как программу и выполнять. Программные файлы, написанные на языках сценариев, также должны быть доступны для чтения.
Каталоги: Позволяет каталог , который необходимо ввести, например, CD - каталог.
Справка: командная строка Linux® Уильям Э. Шоттс-младший
Я бы рекомендовал прочитать эту книгу или PDF-версию, которую вы можете скачать по этой ссылке: http://sourceforge.net/projects/linuxcommand/files/TLCL/13.07/TLCL-13.07.pdf/download
Бит выполнения в каталоге дает вам возможность ввести / пройти его. Поэтому в вашем случае необходимо создать файл (в противном случае вы можете его ввести).