%20%D0%BD%D0%B5%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B8%D0%BC%D1%8B%20%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BD%D0%B0%20%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B8%20%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BD%D0%B0%20%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C%3F.png)
Я пытаюсь создать файл из моего исходного кода C на Linux. Я использую dd
команду для чтения из файла и записи его в файл, создавая его. Если у меня нет прав на выполнение (у меня есть права на запись) для целевого каталога (где будет создан файл), он не сможет создать файл. Если у меня есть и права на запись, и на выполнение, он сможет создать файл.
Что является причиной этого?
решение1
Если установлены атрибуты режима r, w и x, они оказывают следующее влияние на файлы и каталоги:
- Атрибут r (разрешение на чтение):
Файлы:Позволяет файлу бытьоткрылсяичитать.
Каталоги:Позволяет вывести список содержимого каталога. Чтобы получить любую информацию о содержащихся файлах или каталогах,Также необходимо установить атрибут выполнения.
- Атрибут w (разрешение на запись):
Файлы:Позволяет записывать или обрезать файл, однако этот атрибутне позволяет переименовывать или удалять файлы. Возможность удаления или переименования файлов определяетсяпо атрибутам каталога.
Каталоги:Позволяет создавать, удалять и переименовывать файлы в каталоге.если также установлен атрибут выполнения.
- Атрибут x (разрешение на выполнение):
Файлы:Позволяет обрабатывать файл как программу и выполнять его. Файлы программ, написанные на скриптовых языкахтакже необходимо сделать его доступным для чтения, чтобы его можно было выполнить.
Каталоги:Позволяет каталогу бытьвошел, например, каталог cd.
Ссылка: Командная строка Linux® Уильям Э. Шоттс-младший.
Я бы рекомендовал прочитать эту книгу или ее PDF-версию, которую вы можете скачать по этой ссылке:http://sourceforge.net/projects/linuxcommand/files/TLCL/13.07/TLCL-13.07.pdf/download
решение2
Бит выполнения в каталоге дает вам возможность войти/обойти его. Поэтому в вашем случае также необходимо создать файл (иначе вы сможете в него войти).