-
Печать
-
FAQ
-
Общие
-
Пользователи
-
Пользовательское ПО
- Ошибка при установке драйвера принтера HP: Cannot Open Output File
-
Для открытия ссылки в следующем сообщении/заметке необходимо нажать и удерживать клавишу Ctrl или Cmd или Shift и кликнуть по ссылке (зависит от вашего браузера и ОС).
-
Симптомы:
-
Проблема:
-
Решение:
-
Информация FAQ
- Номер статьи: 160089
- Категория: Общие::Пользователи::Пользовательское ПО
-
Ключевые слова:
ошибка
Cannot
Open
Output
File
установка
принтер
драйвер
HP
- Состояние: общедоступное (всем)
- Язык: ru
-
Оценка:
0 из 5
- Голоса: 0
so I’m completely new to Ubuntu. I’ve set up a shared folder with a few c programs and when I go to compile in Ubuntu, such as:
gcc file.c -o fileTest
I get the following error:
/usr/bin/ld: cannot open output file fileTest: Permission denied
collect2: error: ld returned 1 exit status
I’m sure that my permissions for the C files are correct, all files have ‘rwx’ permissions.
Do I have to change the permission of the directory as well?
I’m a complete newb, so apologies.
Javier Rivera
34.7k11 gold badges86 silver badges109 bronze badges
asked May 15, 2014 at 21:56
Yes, you have to change the permissions of the directory as well.
This is because if you only have write permissions to the files inside the directory, you can’t just create a new file because you don’t have write permissions for that file (it doesn’t exist, so no permissions to create it).
If you have write permissions for the directory you can create a file inside it because you have write permissions for the directory itself.
To make yourself the owner (terminal way):
-
Check your user name:
whoami -
Make yourself the owner of the directory and its contents:
sudo chown -R "$USER:" /path/to/the/directoryThe
-Rflag stands for recursive, so that directory and all its subfiles and subdirectories will change owner. Remove the-Rflag to just change the permissions of the directory itself.
Now you should be able to create files or directories because you’re now the owner of the directory and all its content. If you still can’t, give the owner write permissions to the directory and its content using the following command:
chmod -R 700 /path/to/the/directory
answered May 15, 2014 at 22:05
0
cannot open output file, permission denied
|
|
От: |
cures |
cures.narod.ru |
| Дата: | 27.04.11 18:04 | ||
| Оценка: |
В седьмой винде (64-bit, Ultimate) появилась очень странная проблема: если после сборки и запуска программы (пользуюсь MinGW-TDM + CodeBlocks) что-то в ней изменить и снова попытаться её собрать, то линкер выдаёт следующую ошибку:
ld.exe: cannot open output file r0.exe Permission denied
Программа при этом уже заведомо завершила своё выполнение (иначе CodeBlocks не даст её снова компилировать). То же самое происходит при компиляции из командной строки, хотя если задать другое имя для выходного экзешника, то всё работает. При этом в проводнике с помощью Shift-Del существующий экзешник тоже не удаляется, точнее он исчезает из списка, но если прорефрешить окно — он снова на месте. Это всё проходит само собой через пару минут, программа собирается, а если экзешник пытались удалить с помощью проводника, то он реально исчезает. Однако ждать пару минут для каждой простейшей модификации крайне утомительно. Причём, по ощущениям, после каждой неудачной попытки собрать программу, ждать приходится снова. К счастью, если проект лежит на флэшке или на самбе (под линуксом), то такого не происходит, только на родных (NTFS) хардах, неважно, примонтированных в буквы диска или к директории.
Сначала у меня стоял DrWeb, грешил на него, снёс начисто, не помогло. В гугле из разумных обсуждений нашёл только вот эту тему: http://www.blitzbasic.com/Community/posts.php?topic=82962 закончившуюся тем, что было обнаружено, что файлы лочатся процессом System.
Кто ещё с таким сталкивался и как боролся?
Re: cannot open output file, permission denied
|
|
От: |
Serg27 |
|
| Дата: | 28.04.11 02:22 | ||
| Оценка: |
Здравствуйте, cures, Вы писали:
C>
C>Кто ещё с таким сталкивался и как боролся?
Найдите утилиту, которая показывает кто открыл/заблокировал файл с вашей программой. Посмотрите и потом делайте выводы…
Примеры утилит:
здесь
здесь
Re: cannot open output file, permission denied
|
|
От: |
Alex_Avr |
|
| Дата: | 28.04.11 08:57 | ||
| Оценка: |
С уважением, Александр Авраменко.
Re[2]: cannot open output file, permission denied
|
|
От: |
cures |
cures.narod.ru |
| Дата: | 28.04.11 12:24 | ||
| Оценка: |
S>Найдите утилиту, которая показывает кто открыл/заблокировал файл с вашей программой. Посмотрите и потом делайте выводы…
Русинович и Unlocker хандла в упор не видят, при этом Unlocker не может его удалить, LockHunter из эксплорера говорит, что всё чисто, а если ему задать этот файл в менюшке — обижается, что у меня не хватает прав, и рекомендует обратиться к владельцу или администратору, коими являюсь я
Может быть его надо пускать от имени System, но я уже забыл, как это делается.
Зато OFV (в тестовом режиме системы) таки хандл видит, говорит следующее:
==================================================
Filename : r0.exe
Full Path : r0r0.exe
Handle : 0xcdc
Created Time : N/A
Modified Time : N/A
Attributes :
File Size : 0
Read Access : *
Write Access :
Delete Access :
Shared Read : *
Shared Write :
Shared Delete : *
Granted Access : 0x00000080
File Position : 0
Process ID : 4
Process Name : System Process
Process Path :
Extension : exe
% Position :
==================================================
В том и засада, что лочит его какая-то часть системы (или может какой-то неудалившийся огрызок ДрВеба), зачем-то мусолит его несколько минут, потом выплёвывает.
Поверить в это, самому не натолкнувшись, очень сложно, поэтому везде в форумах и предлагают «закрыть программу».
Как копать дальше внутрь процесса System? Он состоит из многих тредов (их показывает ProcessHacker), но, насколько я знаю, нет понятия принадлежности хандла нити, только процессу? Я подозреваю нить MpFilter.sys, она якобы отвечает за безопасность.
Или может у меня завёлся какой-то станный руткит? Но зачем ему лочить экзешники? Причём лочить только после попытки запуска, если не запускать, то можно перекомпилировать сколько угодно.
Ещё один вариант — его кладут в какой-то кэш, на случай если вдруг начнут часто запускать. Тогда как такое отключать? Индексирование у меня отключено глобально.
На всякий случай привожу исходный текст программы:
int main() { return 0; }
Собирал и под 32-битный и под 64-битный режимы, всё едино.
Re: cannot open output file, permission denied
|
|
От: |
lollipop |
|
| Дата: | 28.04.11 12:53 | ||
| Оценка: |
Здравствуйте, cures, Вы писали:
C>Кто ещё с таким сталкивался и как боролся?
попробуй сменить режим отображения в папке (на табличный вид если он у тебя не стоит по дефолту) попробуй оставить одну ИДЕ шку закрыв в эксплорере окно с этой папкой.
Re[2]: cannot open output file, permission denied
|
|
От: |
cures |
cures.narod.ru |
| Дата: | 28.04.11 16:24 | ||
| Оценка: |
Здравствуйте, lollipop, Вы писали:
L> попробуй сменить режим отображения в папке (на табличный вид если он у тебя не стоит по дефолту) попробуй оставить одну ИДЕ шку закрыв в эксплорере окно с этой папкой.
По дефолту режим табличный, обычно я и работал в одной идешке, создавал новый проект и его пилил, а эксплорером туда не лазил. Это уже когда стало лочиться, начал разбираться. Кто-то глубже хватает, не эксплорер.
Re: cannot open output file, permission denied
|
|
От: |
cures |
cures.narod.ru |
| Дата: | 28.04.11 17:41 | ||
| Оценка: |
Замерил ProcessHacker-ом, хандл экзешника висит в процессе System ровно одну минуту (може плюс-минус секунду на ловкость рук). Так происходит не только с моим собственным экзешником, но и с любым (?) запускаемым, например, теми же ld.exe, as.exe, cb_console_runner.exe, при их запуске.
Неужели такое происходит только у меня, а у других разработка на седьмой винде идёт совершенно нормально?
Re[2]: cannot open output file, permission denied
|
|
От: |
vladtronko |
|
| Дата: | 28.04.11 19:20 | ||
| Оценка: |
Здравствуйте, cures, Вы писали:
C>Замерил ProcessHacker-ом, хандл экзешника висит в процессе System ровно одну минуту (може плюс-минус секунду на ловкость рук). Так происходит не только с моим собственным экзешником, но и с любым (?) запускаемым, например, теми же ld.exe, as.exe, cb_console_runner.exe, при их запуске.
C>Неужели такое происходит только у меня, а у других разработка на седьмой винде идёт совершенно нормально?
Похоже что глюк, завязанный на что-то долгоработающее. Мож опрос чего-то по сети с залоченным ехе-шником? Минута — на сетку похоже. У Марка Руссиновича что-то подобное проскакивало в «Деле о медленной презентации» кажись.
Re[3]: cannot open output file, permission denied
|
|
От: |
cures |
cures.narod.ru |
| Дата: | 29.04.11 15:06 | ||
| Оценка: |
Здравствуйте, vladtronko, Вы писали:
V>Похоже что глюк, завязанный на что-то долгоработающее. Мож опрос чего-то по сети с залоченным ехе-шником? Минута — на сетку похоже. У Марка Руссиновича что-то подобное проскакивало в «Деле о медленной презентации» кажись.
Нашёл, у нас перевели как «демонстрации». Там 72 секунды, настолько я вряд ли ошибся. И там подсистема дотнета тормозила, а у меня — обычные экзешники.
Зачем-то ядро тупо хватает хандл на них при их запуске, и отпускает через минуту.
Вот такое пишут в МСДН: If you call CreateFile on a file that is pending deletion as a result of a previous call to DeleteFile, the function fails. The operating system delays file deletion until all handles to the file are closed. GetLastError returns ERROR_ACCESS_DENIED.
Симптомы ровно эти, а хандл на файл принадлежит процессу System, в который Руссинович ходить не умеет.
Пробовал отключать DEP, не помогло. Где-то проскакивало, что Windows при удалении файла и быстром его создании кладёт его на время в какой-то кэш, может это оно, но тогда как уменьшать это время?
Re[4]: cannot open output file, permission denied
|
|
От: |
vladtronko |
|
| Дата: | 29.04.11 17:02 | ||
| Оценка: |
Здравствуйте, cures, Вы писали:
C>Нашёл, у нас перевели как «демонстрации». Там 72 секунды, настолько я вряд ли ошибся. И там подсистема дотнета тормозила, а у меня — обычные экзешники.
C>Зачем-то ядро тупо хватает хандл на них при их запуске, и отпускает через минуту.
C>Вот такое пишут в МСДН: If you call CreateFile on a file that is pending deletion as a result of a previous call to DeleteFile, the function fails. The operating system delays file deletion until all handles to the file are closed. GetLastError returns ERROR_ACCESS_DENIED.
C>Симптомы ровно эти, а хандл на файл принадлежит процессу System, в который Руссинович ходить не умеет.
C>Пробовал отключать DEP, не помогло. Где-то проскакивало, что Windows при удалении файла и быстром его создании кладёт его на время в какой-то кэш, может это оно, но тогда как уменьшать это время?
Предлагаю создать в корне диска (лучше не того где живет 7ка) средствами проводника от имени юзера директорию и настроить IDE чтобы собирать-компилить в нее.
Re[5]: cannot open output file, permission denied
|
|
От: |
cures |
cures.narod.ru |
| Дата: | 29.04.11 18:02 | ||
| Оценка: |
Здравствуйте, vladtronko, Вы писали:
V>Предлагаю создать в корне диска (лучше не того где живет 7ка) средствами проводника от имени юзера директорию и настроить IDE чтобы собирать-компилить в нее.
Именно так и сделал, выше в распечатке от OpenFilesView видно, что файл r0.exe живёт в папке r0, которая живёт в корне
Full Path : r0r0.exe
И это не тот раздел, на котором живёт семёрка, а специально зарезервированный на случай необходимости установки хрюши. Сегодня попробовал не только на NTFS-е, но и на VFAT-е, а кроме того — даже на другом физическом диске. Ничего не помогает
Интересно, что означает в распечатке маска Granted Access?
Пока самый разумный выход, который я вижу, — держать проекты на самбе. Это — решение, но кривоватое: для программирования в Windows 7 требуется Linux (или может быть достаточно Windows XP).
Re[6]: cannot open output file, permission denied
|
|
От: |
vladtronko |
|
| Дата: | 29.04.11 20:48 | ||
| Оценка: |
Здравствуйте, cures, Вы писали:
C>Здравствуйте, vladtronko, Вы писали:
V>>Предлагаю создать в корне диска (лучше не того где живет 7ка) средствами проводника от имени юзера директорию и настроить IDE чтобы собирать-компилить в нее.
C>Именно так и сделал, выше в распечатке от OpenFilesView видно, что файл r0.exe живёт в папке r0, которая живёт в корне
C>Full Path : r0r0.exe
C>И это не тот раздел, на котором живёт семёрка, а специально зарезервированный на случай необходимости установки хрюши. Сегодня попробовал не только на NTFS-е, но и на VFAT-е, а кроме того — даже на другом физическом диске. Ничего не помогает
Недоглядел.
C>Интересно, что означает в распечатке маска Granted Access?
Все эти Access-ы это (если я правильно понимаю) биты прав доступа записанные в дополнительных потоках NTFS.
C>Пока самый разумный выход, который я вижу, — держать проекты на самбе. Это — решение, но кривоватое: для программирования в Windows 7 требуется Linux (или может быть достаточно Windows XP).
Может с правами поиграться в свойствах папки? Равно как и со свойствами совместимости запуска IDE? Студия же ни 2008я ни 2010я таким не страдает — значит можно настроить работу и другой среды в 7ке. «Я так думаю» (с) Мимино
Re[3]: cannot open output file, permission denied
|
|
От: |
vladtronko |
|
| Дата: | 29.04.11 21:05 | ||
| Оценка: |
Здравствуйте, cures, Вы писали:
C>В том и засада, что лочит его какая-то часть системы (или может какой-то неудалившийся огрызок ДрВеба), зачем-то мусолит его несколько минут, потом выплёвывает.
C>Поверить в это, самому не натолкнувшись, очень сложно, поэтому везде в форумах и предлагают «закрыть программу».
C>Как копать дальше внутрь процесса System? Он состоит из многих тредов (их показывает ProcessHacker), но, насколько я знаю, нет понятия принадлежности хандла нити, только процессу? Я подозреваю нить MpFilter.sys, она якобы отвечает за безопасность.
C>Или может у меня завёлся какой-то станный руткит? Но зачем ему лочить экзешники? Причём лочить только после попытки запуска, если не запускать, то можно перекомпилировать сколько угодно.
C>Ещё один вариант — его кладут в какой-то кэш, на случай если вдруг начнут часто запускать. Тогда как такое отключать? Индексирование у меня отключено глобально.
Чисто из собственных наблюдений (без разбирательства) замечал что после определенного количества установок-удалений антивирей-файрволлов-антируткитов-etc и после многократных отключений-включений UAC, DEP, индексации и прочего — систему потом не удается вернуть в предыдущее состояние никак. Думается из-за модификации реестра (который как после такого руками править — чаще в разы быстрее ОСь вчистую переставить) и модификации-подмены библиотек и прочего системного файлА. Находятся модифицированные .dll, .lib, .sys и прочие файлы. Не говоря за «распухание» директории :windowswinsxs
Пробовал реестр зачистить RegOrganizer-ом — 1 случай из 4х выравнивается работа. В остальных случаях — WindowsWay. Т.е. format c: /u А то и вообще удаление раздела и создание нового.
Потому более чем все обновления с сайта микрософта на рабочую машину ничего защитно-файрволльного не ставлю. Ибо глюконат софта в итоге почти гарантирован.


- Переместить
- Удалить
- Выделить ветку
Пока на собственное сообщение не было ответов, его можно удалить.
это вывод sudo fdisk -l :
ubuntu@PrecisePangolin:~$ sudo fdisk -l
Disk /dev/sda: 164.7 GB, 164696555520 bytes
255 heads, 63 sectors/track, 20023 cylinders, total 321672960 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x886f6824
Device Boot Start End Blocks Id System
/dev/sda1 * 63 116117819 58058878+ 7 HPFS/NTFS/exFAT
/dev/sda2 116119550 319580159 101730305 f W95 Ext'd (LBA)
/dev/sda4 319580160 321671151 1045496 82 Linux swap / Solaris
/dev/sda5 116119552 237807608 60844028+ 7 HPFS/NTFS/exFAT
/dev/sda6 237807616 319580159 40886272 83 Linux
Disk /dev/sdc: 2000 MB, 2000682496 bytes
255 heads, 63 sectors/track, 243 cylinders, total 3907583 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x01fd25ac
Device Boot Start End Blocks Id System
/dev/sdc1 * 63 3907582 1953760 c W95 FAT32 (LBA)
ubuntu@PrecisePangolin:~$
Я попробовал эти две команды:
sudo ddrescue -r 3 /dev/sdc /dev/sda/ImageFileName.img /dev/sda/TextFileName.txt
sudo ddrescue -r 3 /dev/sdc /dev/sda6/ImageFileName.img /dev/sda6/TextFileName.txt
и получил:
[ 112]
и в других попытках я получил:
ddrescue: Can't open input file: No such file or directory
где моя ошибка? спасибо!
если вам нужно больше подробностей, я могу дать. Любое предположение, что моя помощь приветствуется.
задан
13 June 2012 в 00:13
поделиться
2 ответа
Вы пытаетесь записать образ (и журнал) непосредственно на дисковое устройство вместо пути в файловой системе. Вы должны использовать что-то вроде этого (что поместило бы это в вашу домашнюю папку).
sudo ddrescue -r 3 /dev/sdc /home/yinon/ImageFileName.img /home/yinon/TextFileName.txt
Если вы делаете это с Live CD, вам необходимо смонтировать жесткий диск перед запуском ddrescue и изменить вывод, чтобы он указывал на смонтированную файловую систему. Например, если вы хотите сделать резервную копию образа на sda6, введите в терминале следующее:
sudo mkdir /media/backup
sudo mount /dev/sda6 /media/backup
Вы создаете папку / media / backup, в которую мы монтируем диск. [ 116]
Вы также можете просто нажать на диск, на который вы хотите создать резервную копию TO, в Nautilus (файловый менеджер), и он автоматически смонтирует его. Если вы наводите курсор на него, он должен показывать полный путь к нему, это должно быть что-то вроде /media/LABEL, где label — это метка вашего диска.
Ваша команда ddrescue тогда будет выглядеть примерно так:
sudo ddrescue -r 3 /dev/sdc /media/backup/ImageFileName.img /media/backup/TextFileName.txt
ответ дан reverendj1
13 June 2012 в 00:13
поделиться
Вот трюк, чтобы получить спасение для сохранения изображения на внешний жесткий диск.
Если вы попробуете вышеупомянутое предложение:
sudo ddrescue -r 3 /dev/sdc /home/yinon/ImageFileName.img /home/yinon/TextFileName.txt
вы получите сообщение об ошибке:
ddrescue: Can't open output file: Not a directory
Как упоминалось выше, «Вы пытаетесь написать изображение (и ведите журнал) непосредственно на дисковое устройство, а не путь в файловой системе «
Чтобы обмануть ddrescue при записи непосредственно на внешнее устройство, сделайте следующее:
- Создайте папку на внешнего устройства (скажем, переносного жесткого диска) и назовите его «ddrescue-image»
- Затем создайте ссылку на эту папку на рабочем столе и переименуйте ее в «ddrescue-image-link»
-
Затем откройте терминал и введите:
sudo ddrescue -r 3 /dev/sdb ~/Desktop/ddrescue-image-link/MyImage.img ~/Desktop/ddrescue-image-link/ddrescue-log.txt
Теперь ваше изображение будет сохранено на внешнем устройстве. Попробуйте!
ответ дан Eric Carvalho
13 June 2012 в 00:13
поделиться
