Невозможно создать каталог отказано в доступе ubuntu

Обновлено: 07.07.2024

Пытаюсь сделать это:

sudo echo no > /etc/pure-ftpd/conf/someparam

На что мне отвечают:

Новые пользователи довольно часто сталкиваются с такой ошибкой, как ошибка отказано в доступе Linux. Если вы только что перешли с Windows, то можете еще не знать всех особенностей операционной системы Linux и почему возникает такая проблема.

В этой статье мы рассмотрим причины ошибки access denied linux, а также как ее обойти.

Ошибка отказано в доступе Linux

Наиболее часто такая ошибка встречается, в таких случаях:

  • Вы пытаетесь выполнить команду в терминале;
  • Вы пытаетесь примонтировать внешний носитель с помощью файлового менеджера;
  • Вы пытаетесь запустить системный сервис и находите такую ошибку в логе.

Многие программы проверяют после запуска от какого пользователя они запущены и говорят, что их нужно запускать от имени суперпользователя, но так ведут себя не все. Например, команда ls вернет ошибку отказано в доступе linux если вы попытаетесь посмотреть содержимое каталога суперпользователя:

bash отказано в доступе ubuntu

Но эта же команда нормально отработает нормально при использовании команды sudo:

bash отказано в доступе ubuntu

Другой случай, это если вы обнаруживаете проблему в логах какого-либо системного сервиса, например, веб-сервера 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 пользователь /путь/к/каталогу

bash отказано в доступе ubuntu

Имя пользователя, от имени которого работает сервис вы можете посмотреть с помощью команды:

sudo ps aux | grep имя_сервиса

bash отказано в доступе ubuntu

После того как вы установите правильные права, ошибка отказано в доступе linux больше не будет встречаться.

Выводы

В этой статье мы рассмотрели что делать если случается ошибка нет доступа linux, а также почему она возникает. Надеюсь, эта информация была полезной для вас. Если остались вопросы, спрашивайте в комментариях!

У меня была проблема с Wi-Fi, которая до сих пор не решена из-за проблемы, которая возникла, когда я пытался ее решить.

Я нашел это решение для Wi-Fi, поэтому попробовал его:

Вставьте в конфиг этот текст

Я заметил, что у меня не было разрешения на запись или выполнение файла, поэтому я попытался использовать chmod решить проблему. Это упорядоченный список всех операций, которые я сделал и которые привели к проблеме этого вопроса:

После третьей или четвертой команды (я не уверен, какая из них) я потерял свои права администратора; на самом деле, если я пытаюсь использовать команду sudo он выводит 3 строки, которые я переведу как можно лучше:

На терминале отображается

Теперь, когда я открываю терминал, он выводит мне строку bash /etc/profile: Permission denied, которую я никогда раньше не видел, и пропущенная часть имени необычна, потому что вместо нее следует писать zenoraiser.

Что вы предлагаете мне сделать?

2 ответа

Там нет необходимости выполнять chmod вообще при использовании sudo редактировать файл, хотя вы не должны использовать sudo gedit (скорее sudo -H gedit например)

Поскольку вы не меняли рекурсивные разрешения, вы можете решить проблему довольно легко.

В реальной среде определите (поврежденный) корневой раздел на диске, используя sudo fdisk -l

Из админки через файловый менеджер пропала возможность создавать папки.
Было все ок до того (как мне кажется), пока не создал нового пользователя.
Как решить данную проблему?


Создание нового пользователя никак не влияет на существующих.

Наверно неумело добавил юзера в группу, в результате чего юзер вышел из всех групп, кроме назначенной.

Из админки магазина.
В директории img невозможно создать поддиректорию.
Приходится под рутом это делать.
Уже и пользователя назначил для img root:root, все-равно не получается.
Не могу понять, что произошло. Админы жалуются.

например к usermod забыть -a дописать.

вот поэтому только рут и может туда ходить.

Телепаты в отпуске. Опиши ситуацию.

Администратор магазина, находясь в админке хочет добавить статью.
Посредством редактора (wysiwyg) добавляет картинку, создавая при этом отдельную папку для фоток этой статьи.
Так вот, на той неделе еще все работало нормально.
Теперь он не может ни создать папку, ни загрузить фото.
Обращается ко мне и я через ssh под рутом создаю папку и заливаю картинки.

Обращается ко мне и я через ssh под рутом создаю папку и заливаю картинки

chown -R имя_пользователя:группа пользователя путь_до_директории

Имя и группа - те под которым редактор сидит, а не root

upd: или он делает через веб-морду? тогда имя пользователя и группа те, от которого запущен веб-сервер

null123 ★★ ( 08.06.17 12:56:29 )
Последнее исправление: null123 08.06.17 12:58:16 (всего исправлений: 2)

А как узнать, под кем сидит редактор?


Debian? Пользователь и группа веб-сервера www-data (если, конечно, не было изменено намеренно).


Ты сделал команду типа

? И ты после этого удивляешься, что никто не может кроме root туда писать? Или ты пользователя img пытался добавить в группу root?


По ссылке книга в формате .exe, ЧЯДНТ?


Сорри, счас найду релеватную. Раньше качал отсюда, всё работало.


Уже и пользователя назначил для img root:root, все-равно не получается

А что должно было получиться?



форум, посвящённый Linux
дают ссылку на книгу, посвящённую Linux
книга в формате .exe


Ну не проверил в первый раз. Я же не виноват, что сайт скурвился и вместо файлов банчит экзешники с левым содержимым. Новая ссылка норм, проверил.

Если ты создал нового пользователя и перевёл на него соответствующие сервисы, то тебе следует дать ему необходимые права. Можешь хоть через mc это сделать - как удобнее будет. А можешь так, как выше написали - через chown -R. А ты как пользователя создал? Назначил ему ту же домашнюю директорию, что и на другого повешена?


Я просто из любопытства решил глянуть, вощемта.

Хорошо, поставим вопрос иначе - что мне написать вместо root?
Я не спец в серверах, я не системщик.

Просто раньше писало, теперь - нет.


Там рекламоговно и редиректы. Пришлось руками выдергивать.

1. adduser user 2. ввел пароль папка создалась в /home/user

За книжку спасибо, почитаю.
Помогите решить проблему сейчас, достают админы.


Имя того пользователя, под которым ты добавляешь картинки через админку. И я не телепат, чтобы его знать, там много вариантов. Попробуй восстановить из бэкапа, если он есть, конечно.

И если не спец, какого ты полез из-под рута менять права на файлы?


Для этого необходимо проблему описать, пока что ясно только что вчера работало а сегодня нет.


какого ты полез из-под рута менять права на файлы?

А главное, непонятно с какой целью.


подозреваю, что нужно почитать, какую ошибку возвращает веб-сервер когда вы пытаетесь создать файл через веб-морду.

Так же, вероятно веб-сервер запущен с правами не root пользователя, и root:root всё сломало еще больше. У меня вот вся папка:

drwxrwxr-x 8 www-data www-data 4096 Дек 12 15:53 dokuwiki

иначе тоже ничего не создается


После chown root:root вангую Permission denied.


Вот такой вот магазин

Из админки через файловый менеджер пропала возможность создавать папки

Вы бы для начала написали, что за магазин (название движка), что за веб сервер?


Новички в Linux часто не понимают, что делать при получении ошибки “mkdir: cannot create directory” во время работы с командной строкой. Есть несколько причин возникновения такой ошибки, и в этом переводе своей англоязычной статьи с сайта Unix Tutorial я покажу эти причины и их устрание на примерах.

mkdir: cannot create directory – File exists

ФАЙЛ существует? А при чём тут проблема создания каталога? И почему ошибка говорить “существует файл”, когда мы вообще пытаемся создавать каталог, а не файл?

На самом деле всё просто: большинство объектов в Linux являются файлами и структурами в файловой системе. Поэтому эта ошибка означает, что там, где вы пытаетесь выполнить команду создания нового каталога, уже существует другой объект с таким же именем. В данном случае - это файл, а не каталог. Но у файла такое же имя, как у желаемого каталога, так что создать второй объект с таким же именем не получится.

намекает, что у нас уже есть файл с именем /tmp/try.

Очень просто проверить эту гипотезу с помощью команды ls:

Так и есть, у нас существует файл с таким именем.

Возможные решения проблем mkdir: cannot create directory

Сценарий file exists

Если файл с таким именем уже существует, а каталог всё же очень хочется создать, то есть решения.

Переименовать (или переместить) существующий файл

Используем команду mv для перемещения /tmp/try в другой каталог (или просто сменим имя try на другое, оставив файл в том же каталоге /tmp). Вот как можно переименовать файл в имя oldtry:

Теперь давайте попробуем ту же команду mkdir:

…и всё замечательно работает! Никаких ошибок, и создался новый каталог под названием /tmp/try. Подтверждаем это с помощью команды ls:

Удалить существующий файл

Ещё одна опция, которая напрашивается сама собой - можно просто удалить неугодный файл, который мешает созаднию нашего нового каталога.

Для этого примера создадим новый пустой файл с названием /tmp/newtry

Если попробовать mkdir, то получится ожидаемая ошибка:

А теперь мы просто удалим неугодный файл и попробуем mkdir снова:

В этот раз нет никаких ошибок, всё снова сработало:

Это - ещё один распространённый сценарий при создании каталогов.

Основной подход к такой ошибке - проверка прав доступа в каталоге, где получена ошибка. Команда ls и здесь поможет. You should use ls command on the higher level directory to confirm permissions.

Все эти команды сработали без ошибок, и ls показывает, что у меня есть полные права доступа к каталогу try2018 - rwx для меня, rwx для моей группы и r-x для всех остальных (это я читаю фрагмент drwxrwxr-x в строке с try2018).

Теперь давайте уберём права на запись (и создание новых объектов) в каталоге try2018:

Теперь мои права к этому каталогу сменились с полных (rwx - read/write/execute) на только чтение (r-x - read/execute). Так что если я попробую создать в try2018 какой-то подкаталог, выйдет та самая ошибка про недостаток прав доступа:

Вот теперь - порядок, всё создалось,

На сегодня - всё! Будут ещё вопросы по самым основам Linux - обращайтесь!

Favorite

Добавить в избранное

Установить Docker 1.11 на Ubuntu 16.04 LTS x64

Н едавно мы установили Docker в Ubuntu. Это было супер легко. Но когда мы попытались запустить команду docker, она выдала нам эту ошибку:

Дело не в том, что мы пытались запустить что-то особенное. Это происходит и для базовой команды docker, такой как ps.

Странно, не правда ли? Позвольте нам показать вам, как обойти эту досадную ошибку.

Исправление ошибки ‘Got permission denied while trying to connect to the Docker daemon socket’ в Docker в Ubuntu

Исправление 1: запустить все команды Docker с помощью sudo

Если у вас есть доступ к sudo в вашей системе, вы можете запустить каждую команду docker с помощью sudo, и вы больше не увидите ошибку ‘Got permission denied while trying to connect to the Docker daemon socket’.

Исправление 2: Запуск команд docker без sudo

Чтобы запустить команды docker без sudo, вы можете добавить свою учетную запись пользователя (или учетную запись, для которой вы пытаетесь решить эту проблему) в группу docker.

Сначала создайте группу Docker. Группа может уже существовать, но выполнение команды создания группы не повредит.

Теперь, когда у вас есть группа Docker, добавьте своего пользователя в эту группу. Мы предполагаем, что вы пытаетесь сделать это для своей учетной записи, и в этом случае вы можете использовать переменную $USER.

Убедитесь, что ваш пользователь был добавлен в группу Docker, перечислив пользователей группы. Вы, вероятно, должны выйти и снова войти в систему.

Если вы проверите свои группы. а группы docker нет в списке даже после выхода из системы, возможно, вам придется перезапустить Ubuntu.

Теперь, если вы попытаетесь запустить команды docker без sudo, все должно работать нормально.

Дальнейшее устранение неисправностей

В некоторых случаях вам может потребоваться добавить дополнительные разрешения для некоторых файлов, особенно если вы в прошлом запускали команды docker с помощью sudo.

Вы можете попробовать изменить владельца группы для файла /var/run/docker.sock.

Вы также можете попробовать изменить владельца группы в каталоге

А затем попробуйте запустить Docker с помощью sudo. Это должно быть хорошо.

с Docker в Ubuntu.

Это решило проблему для вас? Если да, мы приветствуем быстрый комментарий от вас.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте также: