Отказано в доступе linux, как исправить
Обновлено: 21.11.2024
Вы следуете какому-то учебнику в Интернете, в котором вам предлагается установить определенную программу или выполнить какую-либо команду. Вероятно, это как-то связано с сервером.
Но когда вы запускаете команду, вы сталкиваетесь с этой ошибкой:
E: Не удалось открыть файл блокировки /var/lib/dpkg/lock-frontend — открыть (13: Отказано в доступе)
E: Не удалось получить блокировку внешнего интерфейса dpkg (/var/lib/dpkg/lock -frontend), вы root?
Похожая ошибка:
dpkg: ошибка: требуется доступ для чтения/записи к каталогу базы данных dpkg /var/lib/dpkg
E: Подпроцесс dpkg –set-selections возвратил код ошибки (2)
E: Не удалось выполнить dpkg. Вы root?
Оба сообщения об ошибках задают один и тот же вопрос: вы являетесь пользователем root? И это ответ на эту проблему. Станьте пользователем root.
Чтобы избежать этой ошибки, войдите в систему с правами root
Как стать пользователем root в Ubuntu или Debian? Вы используете команду sudo.
Да, это так. Какую бы команду вы ни запускали, просто добавьте sudo перед ней.
Он попросит вас ввести пароль учетной записи пользователя. Имейте в виду, что при вводе пароля на экране ничего не отображается, и это нормально.
В вашей системе все в порядке. В большинстве систем Linux при вводе пароля не отображаются обычные звездочки или что-то в этом роде в качестве «функции безопасности».
Просто введите свой пароль и нажмите Enter после него. Если пароль был введен правильно, вы сможете запустить команду сейчас.
Вы даже можете использовать этот удобный трюк с командной строкой Linux, чтобы запустить предыдущую команду с помощью sudo:
Это было просто и работает сразу же, если у вас нет доступа к sudo. Затем вы увидите другую ошибку.
Видите ошибку «Пользователь не находится в файле sudoer»?
При установке Ubuntu необходимо создать учетную запись пользователя. Этому пользователю автоматически предоставляются полномочия sudo для запуска команд от имени root, когда это необходимо.
Это происходит на рабочем столе Ubuntu, а не на серверах. Большинство дистрибутивов серверов будут иметь отдельную учетную запись root. Если вы создадите обычную учетную запись отдельно, вам придется добавить пользователя в sudoer, чтобы этот обычный пользователь мог использовать sudo.
На снимке экрана выше я создал этого дополнительного пользователя, но не добавил его в группу sudo. Это означает, что пользователь «prakash» здесь не имеет прав на использование команды sudo, и поэтому система жалуется, что «prakash отсутствует в файле sudoers».
Куда сообщается об инциденте?
В системные журналы добавлена неправильная попытка sudo. Он регистрирует имя пользователя, номер виртуального терминала, место, откуда была запущена команда, и какая команда была запущена.
Расположение этих журналов отличается от дистрибутива к дистрибутиву.
Обычно вы можете найти его в журналах journalctl или в файле /var/log/auth.log в Ubuntu, в файле /var/log/audit/audit.log в Fedora.
Что делать, если пользователя нет в списке sudoer?
Что делать, если вы не можете использовать sudo с текущей учетной записью пользователя? Сначала проверьте, есть ли у пользователя права sudo или нет. Если нет, вот несколько вариантов для вас:
- Войдите как root или переключитесь на root (если у вас есть пароль root). (если у вас есть права администратора/sudo от какой-либо другой учетной записи пользователя).
- Если вы работаете в многопользовательской системе Linux и у вас нет доступа root или sudo, попросите системного администратора либо предоставить вашему пользователю доступ sudo, либо установить приложение, которое вы хотели установить.
Это помогло?
Sudo — это очень комплексный механизм безопасности, и он не просто позволяет обычному пользователю стать пользователем root. Это помогает при аудите системы узнать, какой пользователь выполнил какую команду с помощью sudo. Его также можно настроить так, чтобы определенный пользователь мог запускать только определенные команды с помощью sudo.
Вы не увидите такой детализированной конфигурации sudo в Linux для настольных ПК, где она предварительно настроена, чтобы позволить любому пользователю в группе sudo выполнять любую команду с правами root с помощью sudo. Подробнее о sudo в другой статье.
Я надеюсь, что при решении этой классической задачи для начинающих вы получите некоторое представление о команде sudo. Дайте мне знать, если у вас есть дополнительные вопросы по этой теме в разделе комментариев.
Чтобы исправить ошибку отказа в доступе в Linux, необходимо изменить права доступа к файлу скрипта. Используйте для этой цели команду «chmod» (изменить режим). Но перед этим проверьте права доступа к файлу.
Как исправить разрешения в Linux?
Чтобы изменить права доступа к каталогу в Linux, используйте следующее:
- chmod +rwx имя файла для добавления разрешений.
- chmod -rwx имя каталога для удаления разрешений.
- chmod +x имя файла, чтобы разрешить исполняемый файл.
- chmod -wx имя файла для удаления прав на запись и выполнение.
Как исправить отказ в доступе в терминале Ubuntu?
Как устранить ошибку отказа в доступе в Ubuntu/Debian
- Способ 1. Используйте команду Sudo.
- Способ 2. Установка правильных разрешений системы.
- Способ 3. Изменение владельца файла.
- Вывод.
Как установить разрешения по умолчанию в Linux?
Чтобы изменить разрешения по умолчанию, которые устанавливаются при создании файла или каталога в рамках сеанса или с помощью сценария, используйте команду umask. Синтаксис похож на chmod (выше), но используйте оператор = для установки разрешений по умолчанию.
Как проверить разрешения в Linux?
Как просмотреть разрешения на проверку в Linux
- Найдите файл, который хотите проверить, щелкните правой кнопкой мыши значок и выберите "Свойства".
- При этом открывается новое окно, в котором изначально отображается основная информация о файле. …
- Там вы увидите, что разрешения для каждого файла различаются по трем категориям:
Почему в Linux мне отказывают в доступе?
При использовании Linux вы можете столкнуться с ошибкой «Отказано в доступе». Эта ошибка возникает, когда у пользователя нет прав на внесение изменений в файл. … разрешения определяют, может ли пользователь читать, записывать или выполнять файл. Они могут быть представлены символическими или восьмеричными числами.
Как мне войти в систему как пользователь root в Linux?
Сначала вам нужно установить пароль для root с помощью «sudo passwd root», ввести свой пароль один раз, а затем дважды новый пароль root. Затем введите «su-» и введите пароль, который вы только что установили. Другой способ получить root-доступ — «sudo su», но на этот раз введите свой пароль вместо пароля root.
Как мне войти в систему как sudo?
Как установить разрешения по умолчанию?
Из статьи:
- Установите бит setgid, чтобы файлы/папки создавались с той же группой, что и chmod g+s
- Установите списки управления доступом по умолчанию для группы и других setfacl -d -m g::rwx / setfacl -d -m o::rx /
Как установить разрешения в Linux?
Чтобы изменить права доступа к файлам и каталогам, используйте команду chmod (изменить режим). Владелец файла может изменить разрешения для пользователя ( u ), группы ( g ) или других ( o ), добавив ( + ) или вычтя ( – ) разрешения на чтение, запись и выполнение.
Какие права доступа к файлам по умолчанию в Linux?
Linux использует следующие значения маски и разрешений по умолчанию: Системные значения разрешений по умолчанию: 777 ( rwxrwxrwx ) для папок и 666 ( rw-rw-rw- ) для файлов. Маска по умолчанию для пользователя без полномочий root — 002, права доступа к папке изменены на 775 ( rwxrwxr-x ), а права доступа к файлам — на 664 ( rw-rw-r– ).
Как проверить разрешения в терминале Linux?
Если вы хотите увидеть права доступа к файлу, вы можете использовать команду ls -l /path/to/file.
Что означает — R — Linux?
Файловый режим. Буква r означает, что у пользователя есть разрешение на чтение файла/каталога. … И буква x означает, что у пользователя есть разрешение на выполнение файла/каталога.
Эта ошибка возникает, когда вы пытаетесь вывести файлы или запустить файл в каталоге, для которого у вас нет достаточных прав. Поскольку операционная система Linux очень требовательна к аспектам безопасности.
Пример ошибки Linux с отказом в доступе
Допустим, вы обычный пользователь, который пытается получить список или изменить каталог внутри файловой системы /root. Поскольку у вас недостаточно разрешений, система ответит сообщением об ошибке отказа в разрешении, как показано ниже:
Один из способов избежать такой ошибки — переключиться на пользователя root с помощью команды su. Однако это решение не рекомендуется, так как оно получит ненужный доступ ко всей корневой файловой системе.
Как устранить ошибку «Отказано в доступе»
Устранение ошибки «Отказано в доступе», связанной с выполнением скрипта:
Допустим, вы создали сценарий оболочки для выполнения какой-либо задачи. но когда вы пытаетесь выполнить скрипт, вы можете закончить с ошибкой ниже из-за отсутствия ошибки отказа в разрешении.
Теперь, чтобы избежать такого случая, вам нужно добавить разрешение на выполнение «x» в файл myshell.sh с помощью команды chmod, как показано ниже:
В последнем выводе видно, что после команды chmod добавлено разрешение «x» (выполнение). Поэтому в следующий раз, когда вы попытаетесь выполнить сценарий оболочки, он будет выполнен без ошибок.
Устранение ошибки Linux «отказано в доступе» при выводе списка или записи в файл
При этом типе ошибки отказа в разрешении вы пытаетесь перечислить или записать файл, в котором у вас нет достаточных прав для этого, как показано ниже:
Если вы посмотрите на права доступа к каталогу «myfolder» с помощью команды ls -l, вы узнаете о разрешениях.
В соответствии с разрешением, указанным в приведенном выше выводе, только владелец каталога с правами root может иметь все права на чтение, запись и выполнение. Поэтому в таком случае вам нужно изменить разрешение на чтение каталога с помощью следующей команды chmod:
Теперь, когда обычный пользователь manmohan попытается получить список каталогов, он не получит сообщение об ошибке отказа в доступе.
Если вы хотите иметь разрешение на запись в этот каталог, вам необходимо также указать флаг w в команде chmod, как показано ниже:
То же самое относится и к разрешениям на уровне файлов.
Еще один способ — сменить владельца каталога с помощью команды chown. Поскольку в нашем примере мы получаем ошибку для пользователя manmohan, мы изменим владельца каталога «myfolder», используя команду ниже.
Поскольку пользователь manmohan теперь является владельцем каталога, он может выполнять любые операции с каталогом. Если вы хотите рекурсивное разрешение, не забудьте добавить -r во время команды chown, как показано ниже:
Устранение ошибки Linux с отказом в доступе для определенного пользователя
По моему мнению, приведенный выше метод изменения разрешения с помощью chmod не подходит. Потому что, когда вы даете разрешение другим, оно будет открыто для всех пользователей в системе. Что неправильно с точки зрения безопасности. Чтобы устранить эту ошибку, специфичную для пользователя, вы можете реализовать ее с помощью списка управления доступом или ACL. Следуйте моей статье о списках управления доступом ACL для того же.
При работе с Linux часто возникает ошибка «Отказано в доступе». Это, вероятно, самая распространенная ошибка, с которой можно столкнуться при запуске в Linux. В этом модуле мы узнаем, как исправить эту ошибку несколькими способами.
Оглавление
Шаги по исправлению ошибки отказа в доступе в Ubuntu/Debian Linux
Давайте рассмотрим шаги по исправлению ошибки отказа в доступе в наших системах на основе Ubuntu или Debian здесь.
Способ 1. Используйте команду Sudo
Некоторые файлы принадлежат пользователю root, и доступ к ним может получить только пользователь root или команда sudo. Не рекомендуется изменять разрешения или владельца этих файлов. Однако при необходимости их можно изменить с правами суперпользователя. Примеры таких файлов:
Чтобы получить доступ к таким файлам, нам нужно использовать sudo или быть пользователем root как таковым:
Способ 2. Установка правильных системных разрешений
Это наиболее распространенный способ исправить эту операцию. Часто нам не хватает необходимых разрешений для доступа к файлу. Чтобы проверить наши доступные разрешения, мы можем использовать команду ls:
Предположим, что это приводит к следующему результату:
Здесь мы видим, что только пользователь-владелец имеет права на чтение и запись. Таким образом, если другой пользователь попытается прочитать этот файл, он получит сообщение об ошибке:
Следовательно, чтобы исправить это, мы будем использовать команду chmod. Мы можем предоставить доступ чтение всем (владельцу, членам группы и другим) с помощью следующей команды:
Проверка прав доступа к файлу сейчас должна дать что-то вроде следующего:
То же самое можно сделать с разрешениями на запись и выполнение. Если мы хотим ограничить доступ пользователям одной и той же группы, мы можем использовать следующую команду:
Это позволит пользователям из той же группы, что и владелец, получить доступ к файлу, а разрешения будут выглядеть примерно так:
Теперь мы наконец можем прочитать файл от имени другого пользователя.
ПРИМЕЧАНИЕ. Если файл принадлежит пользователю root, а наш текущий пользователь входит в группу sudoer, мы можем сами изменить права доступа к файлу, поставив перед нашими командами префикс sudo. Чтобы узнать больше об использовании команды chmod, ознакомьтесь с этим модулем!
Способ 3. Изменение владельца файла
Последний метод в нашем списке, хотя и менее традиционный, может помочь исправить ошибку «Отказано в доступе». Вместо того, чтобы менять права доступа к файлу, здесь мы изменим его владельца. Для этого нам понадобится команда chown. Сначала давайте проверим право собственности на файл, используя:
Как мы видим, файл принадлежит пользователю, помеченному как «пользователь», а также группе с таким же именем. Кроме того, обратите внимание, что только у владельца есть разрешения на чтение и запись (их можно изменить, как обсуждалось ранее). Однако в настоящее время мы не можем получить доступ к файлу. Но мы изменим владельца (и группу) файла с помощью:
Если мы проверим детали нашего файла сейчас, мы обнаружим, что он изменен на:
Как мы видим, права доступа к файлам сохранены, но изменены группы, которые могут получить доступ к файлу. Поскольку у владельца есть права на чтение (если это не так, мы всегда можем использовать chmod), теперь мы можем прочитать содержимое файла:
Заключение
Здесь мы увидели, как решить проблемы с разрешениями. Каждый из описанных здесь методов применим по-своему в зависимости от сценариев, и каждый из них должен использоваться осторожно по мере необходимости.
Читайте также: