Ошибка записи нет такого файла или каталога nano
Новые пользователи довольно часто сталкиваются с такой ошибкой, как ошибка отказано в доступе Linux. Если вы только что перешли с Windows, то можете еще не знать всех особенностей операционной системы Linux и почему возникает такая проблема.
В этой статье мы рассмотрим причины ошибки access denied linux, а также как ее обойти.
Решение проблем Linux
Linux очень сильно отличается от WIndows, это заметно также при возникновении проблем Linux. Вот допустим, произошла ошибка в программе Windows, она полностью закрывается или выдает непонятное число с кодом ошибки и все, вы можете только догадываться или использовать поиск Google, чтобы понять что произошло. Но в Linux все совсем по-другому. Здесь каждая программа создает лог файлы, в которых мы можем при достаточном знании английского или даже без него, выяснить, что произошло. Более того, если программу запускать из терминала, то все ошибки linux и предупреждения мы увидим прямо в окне терминала. и сразу можно понять что нужно делать.
- Permission Denied - нет доступа, означает что у программы нет полномочий доступа к определенному файлу или ресурсу.
- File or Directory does not exist - файл или каталог не существует
- No such file or Directory - нет такого файла или каталога
- Not Found - Не найдено, файл или ресурс не обнаружен
- Connection Refused - соединение сброшено, значит, что сервис к которому мы должны подключиться не запущен
- is empty - означает, что папка или нужный файл пуст
- Syntax Error - ошибка синтаксиса, обычно значит, что в конфигурационном файле или введенной команде допущена ошибка.
- Fail to load - ошибка загрузки, означает что система не может загрузить определенный ресурс, модуль или библиотеку (fail to load library) обычно также система сообщает почему она не может загрузить, permission denied или no such file и т д.
Проблемы с графической оболочкой
Когда проблемы linux касаются графической оболочки, то решить их новичкам не так уж просто. Больше всего потому что доступен только терминал. Графическая оболочка может просто зависнуть или вовсе не запускаться, например, после обновления.
При проблемах с графической оболочкой вы можете всегда переключиться в режим терминала с помощью сочетания клавиш Ctrl+Alt+F1. Далее, вам нужно ввести логин и пароль, затем можете вводить команды терминала.
Посмотреть логи графической оболочки вы можете в том же файле ~/.xsession-erros.
Если проблема наблюдается после обновления до новой версии, то можно очистить кеш и удалить папку с настройками, обычно это помогает.
Проблемы с командами в терминале
Обычно проблемы с командами в терминале возникают не из-за ошибки linux или потому, что разработчики что-то недоработали, а потому, что вы ввели что-то неправильно или предали не те что нужно опции.
Если были переданы не те опции, то, скорее всего, программа покажет вам справку, ознакомившись с которой вы сможете очень быстро понять в чем проблема. Также справку выдают множество команд если их запустить без параметров.
Также довольно частой ошибкой при выполнении команд есть неиспользование команды sudo перед самой командой для предоставления ей прав суперпользователя. В таких случаях вы обычно получаете ошибку Permission Denied или просто уведомление, что не удалось открыть тот или иной файл или ресурс: can not open . can not read . и так далее.
Очень распространенной среди новичков ошибкой, есть no such file or directory при попытке выполнить файл, скачанный из интернета. Сразу кажется что это бред, ведь файл существует, но на самом деле оболочка ищет только файлы с флагом исполняемый, а поэтому пока вы не установите этот флаг для файла, он для оболочки существовать не будет.
Выводы
В этой статье мы рассмотрели что делать если случается ошибка нет доступа linux, а также почему она возникает. Надеюсь, эта информация была полезной для вас. Если остались вопросы, спрашивайте в комментариях!
Тем не менее, когда я ls в директории файл указан и он также указан в моем ftp-клиенте. Я попытался создать файл с тем же именем, и я получаю два файла с одинаковым именем.
Я могу открыть файл, который предположительно не существует, но я все еще не могу удалить его. Я также попытался перезагрузить свой сервер. Есть идеи, в чем может быть проблема? Я использую 64-битную версию Ubuntu, но не думаю, что это 32/64-битная проблема. Я должен также отметить, что я удалил много других файлов png, загруженных тем же PHP-скриптом.
Вывод при попытке rm
Я попытался создать файл с тем же именем, и я получаю два файла с одинаковым именем.
Это означает, что при отсутствии повреждения файловой системы у вас есть два файла с двумя разными именами, которые выглядят одинаково из-за непечатаемых символов или символов, которые выглядят одинаково в вашем наборе символов / шрифте. --escape возможность ls Ваш друг в таких случаях, как и такие инструменты, как cat -v ,
Так тоже есть rm -i -- *
TL;DR: запустить ls -1b найти имя файла, скопировать строку, в которой оно появляется, и дать его rm ,
Как и предполагали другие, скорее всего, это связано с ограничениями в способе ls - и некоторые другие программы, включая клиентское и серверное программное обеспечение - по умолчанию обрабатывают странные имена файлов, например, содержащие управляющие символы. Ваш успех с ответом JdeBP убедительно свидетельствует о том, что так оно и было, хотя и до этого было бы неплохо.
За ls когда стандартный вывод является терминалом, ? символы печатаются на своих местах. Так что, если вы не пьяный ls вывод любой другой команды (или перенаправление ее в журнал для просмотра), возможно, ваше имя файла не содержит управляющих символов. Но есть и другие проблемные символы - например, имя файла содержит конечные пробелы.
Это поведение ls может сбивать с толку, но не является ошибкой, может быть явно переопределено пользователем (см. ниже).
При попытке получить доступ к файлу или удалить его удаленно, ошибки в клиентском или серверном программном обеспечении могут привести к таким проблемам.
Я испытал такого рода вещи через ftp я несколько раз, в том числе для файлов, имена которых содержат завершающие пробелы. (То, что это не сработало, было связано с ошибкой в моем ftp-клиенте.) Даже когда вы вручную создаете файл, в зависимости от того, как вы его создаете, иногда довольно легко случайно вставить конечный пробел или другой пробел, который может выглядеть как пространство, хотя это не так.
Это ситуация, когда ls -1b (или же dir -1 ) пригодится:
- -1 говорит ls показать одну запись в строке. Таким образом, не возникает путаницы в том, где заканчивается одно имя файла и начинается другое. Это удобно для файлов со странными именами.
- -b говорит ls печатать escape-последовательности для любых специальных символов. Выход из ls -b могут быть скопированы и вставлены буквально в команду, без добавления кавычек: все проблемные символы уже заключены в кавычки таким образом, что оболочка распознает их такими, какие они есть.
Предостережение только одно: если последний символ в строке \ скопируйте один символ после этого, так как это означает \ цитирует пробел.
Вы можете запустить ls -1b просто так, или вы можете передать ему шаблон оболочки (например, ls -1b qyx* ). Globbing может или не может найти файл, в зависимости от того, присутствуют или нет управляющие символы (или другие странные символы) в той части имени, которая появляется в шаблоне glob.
Скопировав \ версия имени файла, данного вам ls Вы можете вставить это в команду. Вам не нужно изменять его вручную каким-либо образом. В вашем случае, если вы хотите удалить файл, введите rm введите пробел, вставьте строку и нажмите Enter .
Кирилл Лавров запись закреплена
Юрий, Понял)))) Нет точки входа, правого слеша. Спасибо что помогли))))
Юрий, Спасибо большое, сижу изучаю, а вот такой вопрос, чем лучше воспользоваться, хочу установить графический интерфейс, что лучше поставить?
Кирилл, зависит от графической карты (и отчасти оперативки) и личного предпочтения.
lxde и xfce - если слабые карты (мне не нравятся из-за "угловатости")
mate (gnome2) - средние карты (использую на дебиане, можно неплохо настраивать)
Unity - в убунту - напоминает мак - средние карты и выше (предпочитаю на убунту)
KDE - нужны хорошие показатели железок для хорошей работы (не особо люблю, но пользоваться можно)
gnome3(и его реинкарнации) - ещё не скоро его допилят до удобоваримого восприятия. хотя может и доделают (однажды видел систему с настроенным третьегномом, но того не стоит)
Да, вы бы. источник просто пытается загрузить его снова. Трудно сказать, что не так с файлом, не видя, что в нем.
Если вы пытаетесь получить содержимое файла, чтобы опубликовать его здесь, сделайте cat ~/.bash_profile
Взгляните на источник /etc/profile.
В Mac OS 10.8 при установке RVM с использованием sudo добавляется строка в /etc/profile.d/rvm.sh. Даже если вы удалите RVM с помощью rvm implode , этот один вкладыш останется там и приведет к тому, что эта ошибка будет отображаться при запуске любого терминала.
Используйте свой любимый текстовый редактор ( nano , vim , и т. д.), чтобы открыть /etc/profile и закомментировать эти две строки:
Затем сохраните файл.
Звучит как реклама Sublime. Подойдет любой текстовый редактор, такой как pico, nano, vim или emacs. Для выполнения этой задачи не требуется Sublime, как бы мне ни нравился этот редактор.
Это сработало для меня, но OSX не позволил бы мне изменить файл с помощью TextEdit и т. Д. Мне пришлось использовать sudo vi /etc/profile (я уверен , что sudo nano. это тоже сработает, если вы пойдете на такие вещи)
Я не мог редактировать с помощью TextEdit на своем Mac даже после изменения настроек безопасности в Get Info. Я использовал TextMate для изменения файла.
@Holyprogrammer: Пожалуйста, не используйте комментарии, чтобы уведомлять нас об изменениях. Система помещает попытки редактирования в очередь на утверждение и уведомляет нас.
Он удалит существующие линии поиска и добавит новые, которые должны работать.
Это происходит из-за неудачной установки RVM (по крайней мере та часть, которая пыталась установить загрузчик оболочки, была неудачной). Вы недавно пытались установить RVM ?
Что-то продолжало пытаться вставить код загрузки RVM, и это привело к беспорядку.
Вот мое предложение:
Откройте его в текстовом редакторе и удалите все, кроме:
Добавьте эту строку ниже:
Сохраните его и откройте другой терминал и посмотрите, исчезнет ли ошибка.
я пробовал: $ export PATH=/Applications/SenchaSDKTools-2.0.0-Developer-Preview:$PATH export PATH=/Applications/SenchaSDKTools-2.0.0-Developer-Preview/command:$PATH export PATH=/Applications/ SenchaSDKTools-2.0.0-Developer-Preview/jsbuilder:$PATH [[-s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" -bash: экспорт: [[-s': not a valid identifier -bash: export: / Пользователи/janekambani/.rvm/scripts/rvm': недопустимый идентификатор -bash: экспорт: `]]': недопустимый идентификатор
Каждый пользователь, рано или поздно сталкивается с определенными проблемами в своей операционной системе Linux. Это может быть просто неправильное использование команд или их непонимание, так и такие серьезные ошибки Linux, как отсутствие драйверов, неработоспособность сервисов зависание системы и так далее.
Эта статья ориентирована в первую очередь на новичков, которые не знают, что делать когда их будут поджидать проблемы linux, мы дадим общую концепцию и попытаемся показать в какую сторону двигаться дальше. Мы рассмотрим исправление ошибок в linux как простых, так и более сложных. Но давайте сначала определим, какие проблемы linux будем рассматривать, разобьем их на категории:
- Проблемы с командами в терминале
- Проблемы с программами
- Проблемы с драйверами и ядром
- Проблемы с графической оболочкой
- Проблемы с диском и файловой системой
Все это мы рассмотрим ниже, но сначала общее введение и немного теории.
Проблемы с диском и файловой системой
Самая частая проблема с диском у новичков - это переполнение диска. Если под диск выделить очень мало места, то он переполнится и система не сможет создавать даже временные файлы, а это приведет к тому что все если не зависнет, то, по крайней мере, не сможет нормально работать.
Если это случилось, вам, скорее всего, придется переключиться в режим терминала и удалить несколько файлов. Вы можете удалять файлы логов или кэша пакетного менеджера. Много файлов удалять не нужно, достаточно освободить несколько мегабайт, чтобы прекратились ошибки системы linux и нормально работала графическая оболочка, а затем уже в ней решать все проблемы linux.
Ошибка отказано в доступе Linux
Наиболее часто такая ошибка встречается, в таких случаях:
- Вы пытаетесь выполнить команду в терминале;
- Вы пытаетесь примонтировать внешний носитель с помощью файлового менеджера;
- Вы пытаетесь запустить системный сервис и находите такую ошибку в логе.
В операционной системе Linux действует сложная система полномочий. Настройки доступа для каждого файла настраиваются тремя параметрами - чтение, запись и выполнение. Эти параметры устанавливаются для трех категорий - владелец файла, группа файла и все остальные пользователи.
Если вы попытаетесь получить доступ, например, открыть для чтения файл, к которому вам доступ не разрешен, то вы получите такую ошибку. А учитывая что все устройства, сокеты, и другие системные объекты - это тоже файлы, то вы будете получать такую ошибку всегда, когда попытаетесь сделать то, что вам не позволено. Самый простой способ обойти такой запрет - это выполнять нужную команду от имени суперпользователя.
Многие программы проверяют после запуска от какого пользователя они запущены и говорят, что их нужно запускать от имени суперпользователя, но так ведут себя не все. Например, команда ls вернет ошибку отказано в доступе linux если вы попытаетесь посмотреть содержимое каталога суперпользователя:
Но эта же команда нормально отработает нормально при использовании команды sudo:
Другой случай, это если вы обнаруживаете проблему в логах какого-либо системного сервиса, например, веб-сервера Apache. Казалось бы, должно было быть все верно, потому что запуск и так выполняется от имени суперпользователя.
Но нет, сервисы не только запускаются от имени суперпользователя, но потом, для увеличения безопасности они меняют пользователя на обычного, не привелигированного. Например, Apache работает от имени пользователя apache или www-data. Уже от имени этого пользователя программа пытается получить доступ к файловой системе.
Если нужная папка не доступна этому пользователю для чтения то вы получите ошибку access denied linux. Обычно, в логе программа сообщает какая папка или файл нужен когда происходит ошибка.
Вам просто нужно поменять на него права с помощью утилиты chmod или изменить владельца chown. Причем, нужно чтобы ко всем подкаталогам на пути к целевому каталогу был доступ у программы. Например, нельзя так чтобы права на чтение /home/ не было, а на /home/user/ было. Так не пройдет.
Права разрешающие чтение и запись владельцу и только чтение для группы и остальных вставляются командой:
sudo chmod 755 /путь/к/файлу
Или для смены прав для всех файлов в каталоге и самого каталога:
sudo chmod -R 755 /путь/к/каталогу
Или вы можете изменить владельца, обычно, это более безопасная и распространенная практика:
sudo chown пользователь /путь/к/файлу
$ sudo chown -R пользователь /путь/к/каталогу
Имя пользователя, от имени которого работает сервис вы можете посмотреть с помощью команды:
sudo ps aux | grep имя_сервиса
После того как вы установите правильные права, ошибка отказано в доступе linux больше не будет встречаться.
Проблемы с драйверами и ядром
Проблемы с драйверами, модулями ядра или прошивками могут вызвать много неприятностей во время загрузки системы. Это может быть просто медленная загрузка системы, неработоспособность определенных устройств неправильная работа видео или полная невозможность запустить графическую подсистему. Исправление ошибок Linux начинается с просмотра логов.
Чтобы иметь возможность удобно листать вывод можно выполнить:
sudo dmesg | less
Или сразу выбрать все ошибки:
sudo dmesg | grep error
Выводы
Теперь исправление ошибок Linux будет для вас немного проще. Ошибки системы linux довольно сложная тема и этой информации явно мало, если у вас остались вопросы или есть предложения по улучшению статьи пишите в комментариях!
Проблемы в программах
Если ни с того ни с сего закрывается или не так, как требуется работает, какая-нибудь графическая программа, решение проблем linux начинается из запуска ее через терминал. Для этого просто введите исполняемый файл программы и нажмите Enter. Обычно достаточно начать вводить имя программы с маленькой буквы и использовать автодополнение для завершения ввода названия.
Многие ошибки системы linux, связанные с графической оболочкой вы можете найти в файле ~/.xsession-errors в вашей домашней директории. Если оболочка работает медленно, зависает или не работают другие программы, но в других логах причин этому нет, возможно, ответ находится именно в этом файле.
$ sudo systemctl status имя_сервиса
Дальше вы знаете, что делать с этой ошибкой, главное что у вас есть зацепка, а дальше все можно решить, ну или почти все.
Здесь, как и всегда большинство ошибок связано с тем, что что-то не установлено, какого-то файла нет или к чему-то невозможно получить доступ, тогда решение проблем linux не вызовет много забот.
Читайте также: