Проблема при удалении файла var cache apt srcpkgcache bin removecaches 13 отказано в доступе
Возможно, у меня действительно проблема с источниками программного обеспечения. Как я могу это решить, пожалуйста?
Дальнейшее обновление. Карел, спасибо за совет. sudo apt remove --purge fglrx fglrx-amdcccle* fglrx-dev* fglrx-updates* возвращает:
Странно, что команда очистки fglrx, похоже, требует от меня переустановки!
Если я в любом случае продолжу копировать исходный файл, который вы предложили, и запустить apt-get update Я получил:
Любая дальнейшая помощь с благодарностью получена!
Четвертое обновление. Я попытался решить проблему, заменив мой файл apt.sources.list на файл модели, на который вы мне указали, заменив us.archive на gb.archive. Но я не думаю, что это сработало. Sudo apt-update возвращает:
W: chmod 0700 каталога / var / lib / apt / lists / partial failed - SetupAPTPartialDirectory (1: операция не разрешена) E: не удалось открыть файл блокировки / var / lib / apt / lists / lock - open (13: в доступе отказано) E: невозможно заблокировать каталог / var / lib / apt / lists / W: Проблема с отключением файла /var/cache/apt/pkgcache.bin - RemoveCaches (13: в доступе отказано) W: Проблема с отключением файла /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: отказано в доступе) W: Целевые пакеты (партнер / binary-amd64 / Packages) настраиваются несколько раз в /etc/apt/sources.list:49 и /etc/apt/sources.list.d/xenial-partner.list:4 W: Целевые пакеты (партнер / binary-i386 / Packages) настраиваются несколько раз в /etc/apt/sources.list:49 и /etc/apt/sources.list.d/xenial-partner.list:4 W: Целевые пакеты (partner / binary-all / Packages) настраиваются несколько раз в /etc/apt/sources.list:49 и /etc/apt/sources.list.d/xenial-partner.list:4 W: Целевые переводы (партнер / i18n / Translation-en_US) настраиваются несколько раз в /etc/apt/sources.list:49 и /etc/apt/sources.list.d/xenial-partner.list:4 W: Целевые переводы (партнер / i18n / Translation-en) настраиваются несколько раз в /etc/apt/sources.list:49 и /etc/apt/sources.list.d/xenial-partner.list:4 W: Целевой DEP-11 (партнер / dep11 / Components-amd64.yml) настраивается несколько раз в /etc/apt/sources.list:49 и /etc/apt/sources.list.d/xenial-partner.list: 4 W: Целевые значки DEP-11 (партнер / dep11 / icons-64x64.tar) настраиваются несколько раз в /etc/apt/sources.list:49 и /etc/apt/sources.list.d/xenial-partner. список: 4
. и sudo apt-upgrade возвращает то же самое с, в конце,
E: Пакет fglrx нужно переустановить, но я не могу найти для него архив
Помогает ли эта новая информация кому-нибудь посоветовать мне, что делать дальше, пожалуйста?
- Если он спрашивает, значит, он был установлен в то же время раньше (и вы не устанавливали обновления для 16.04). И упомянутые вами команды НЕ обновляют версию. У вас все еще версия 16.04, и у вас есть проблемы с источниками программного обеспечения.
- Я не хотел, чтобы ты что-то копировал или менял в /etc/apt/sources.list только для чтения этого файла. Команда для чтения cat /etc/apt/sources.list
Тогда сравните свой /etc/apt/sources.list файл с этим примером файла Ubuntu 16.04 sources.list. Запустите команду cat /etc/apt/sources.list для чтения файла sources.list без его изменения.
Этичный хакинг и тестирование на проникновение, информационная безопасность
Иногда при использовании менеджера пакетов apt для установки программы или обновления пакетов, возникает ошибка:
В Интернете уже достаточно часто обсуждалась эта ошибка, но я решил вернуться к её решению, поскольку обычно дают неправильный совет, что нужно удалить /var/lib/dpkg/lock. Если не было аварийного завершения работы менеджера пакетов apt, то не надо удалять файлы-блокировщики. Это приведёт к тому, что apt при последующем использовании будет сообщать об ошибке и придётся запускать команду для наведения порядка в пакетах.
Причина ошибки в том, что apt уже работает в фоне — скорее всего, просто скачивает пакеты обновлений, поскольку по умолчанию apt не устанавливает обновления самостоятельно.
Для других дистрибутивов это вызывает временное неудобство, поскольку нужно подождать, когда apt завершит свои фоновые задачи. Если нужно скачать много пакетов, а Интернет-соединение медленное, то придётся довольно долго ждать. Для Kali Linux, специализированного дистрибутива, такое поведение может для некоторых быть вообще неприемлемым. Кстати, авторы Kali Linux утверждают, что по умолчанию сетевые службы отключены. Тем не менее apt всё равно может автоматически скачивать обновления в фоне, когда вы об этом не подозреваете.
Дело в том, что, например, окружение рабочего стола (GNOME) могут запускать apt в фоне. Я, вроде бы, нашёл все настройки, после отключения которых apt уже никогда не будет ничего загружать без вашего ведома. Если после их применения у вас всё равно возникла ошибка «Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock - open (11: Ресурс временно недоступен)», пишите в комментариях — будем копать ещё глубже.
Итак, начинаем с самого очевидного, отключаем скачивание обновлений по расписанию. Проверить, включены ли какие-либо автоматические обновления, можно командой:
Для их отключения:
Теперь отключаем Unattended (самостоятельные) обновления, для этого откройте файл файл /etc/apt/apt.conf.d/20auto-upgrades
в нём имеются следующие строки:
Первая отвечает за обновление списка пакетов, а вторая – за обновления самих пакетов в системе. Вместо единиц впишете нули.
Теперь проверьте, настроен ли GNOME делать автоматические обновления:
Если будет выведено true, значит да, графическая оболочка также в фоне скачивает обновления.
Чтобы это отключить выполните:
Аварийное завершение работы во время обновления системы или установки программ
Если рассматриваемая ошибка была вызвана тем, что система была выключена во время обновления, то для её исправления нужно выполнить:
Скорее всего, чтобы вновь появилась возможность использовать apt понадобиться выполнить следующую команду, для исправления проблем:
Здравствуйте, можете подсказать решение проблемы, у меня вот такая ошибка:
Это в терминале. И уже не знаю: что делать? На данный момент стоит минт19, в убунту была такая же проблема. То есть: системы разные, проблема одна. Какие могут быть решения?
P/s: вижу систему минт - сегодня; Убунту - четыре дня видел! - надоела. Прошу объяснять: как для блондинки.
Адрес: в Грозном живу, родом из Шали, Имя: Казбек, Возраст: 46, Интересы: Жена и Дочь __________________Хороших людей осталось мало, так что берегите меня.
/Рабочий стол$ apt-get update
Чтение списков пакетов… Готово
E: Не удалось открыть файл блокировки /var/lib/apt/lists/lock - open (13: Отказано в доступе)
E: Невозможно заблокировать каталог /var/lib/apt/lists/
W: Проблема при удалении файла /var/cache/apt/pkgcache.bin - RemoveCaches (13: Отказано в доступе)
W: Проблема при удалении файла /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Отказано в доступе)
$ apt-get dist-upgrade
E: Не удалось открыть файл блокировки /var/lib/dpkg/lock-frontend - open (13: Отказано в доступе)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
Вот такой ответ.
Хороших людей осталось мало, так что берегите меня.
sudo apt-get dist-upgrade
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Расчёт обновлений… Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
icoutils libgettextpo0 libqt5sql5 libqt5sql5-sqlite libwine libwine-dev
libwine-development libwine-development-dev libwxbase3.0-0v5
libwxgtk3.0-gtk3-0v5 nethack-common nethack-lisp python-wxgtk3.0
python-wxversion wine64 xemacs21
Для их удаления используйте «sudo apt autoremove».
Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Ну, еще рез сообщаю: вижу это всё пять дней только. Пока рано о курсах говорить.
Команда sudo играет очень важное значение для управления правами доступа в операционной системе Linux. Благодаря этой небольшой команде вы можете давать полномочия на выполнение тех или иных действий от имени администратора другим пользователям, при этом не давая им сам пароль суперпользователя. Также вам не нужно сидеть всегда под учетной записью суперпользователя чтобы иногда выполнять административные действия.
Казалось бы, такая небольшая команда, с минимумом возможностей и максимально простым использованием, но на самом деле она может намного больше. В этой статье мы рассмотрим как выполняется настройка sudo в linux для контроля доступа к функциям системы и возможностей пользователя.
Как работает sudo?
Перед тем, как переходить к настройке доступа к утилите sudo давайте рассмотрим как она работает. В Linux есть два способа получить права администратора. Вы можете переключиться на пользователя root с помощью команды su или можете передать в параметре нужную команду утилите sudo, которая выполнит ее с правами администратора. Причем второй способ предпочтительнее, потому что вы не забудете что используете права root и не наделаете ничего лишнего.
Имя команды означает substitute user do или super user do. Утилита позволяет запускать программы от имени другого пользователя, но чаще всего от имени корневого. Утилита была разработана еще в 1980 году Бобом Когшелом и Клиффом Спенсером. За это время сменилось много разработчиков и было добавлено много функций.
Работает sudo благодаря флагу доступа SUID. Если этот флаг установлен для программы, то она выполняется не от имени того пользователя который ее запустил, а от имени владельца, учитывая что файл sudo принадлежит, то утилита выполняется от имени root. Затем она читает свои настройки, запрашивает пароль пользователя и решает можно ли ему разрешать выполнение команд от имени администратора. Если да, то выполняется переданная в параметре команда.
Теперь, когда вы знаете теорию, давайте рассмотрим как настроить sudo в Linux.
Настройка sudo в Linux
Все настройки sudo находятся в файле /etc/sudoers. Здесь можно настроить очень много параметров, начиная от кому будет позволено выполнять команды от имени суперпользователя и заканчивая ограничением набора доступных команд.
Чтобы открыть файл для редактирования наберите такую команду от имени суперпользователя:
Вы также можете указать текстовый редактор, в котором вы хотите редактировать файл настройки:
Дальше мы рассмотрим самые интересные настройки, которые вы можете задать в этом файле. Но сначала давайте рассмотрим основной синтаксис файла. Он состоит из двух типов строк, это псевдонимы, которые позволяют создавать списки пользователей и флагов, а также сами правила, которые задают как будет вести себя команда sudo. Синтаксис алиасов выглядит вот так:
тип имя_алиаса = элемент1, элемент2, элемент3
Тип указывает какого типа нужно создать алис, имя - имя, которое будет использовано, а список элементов - те элементы, которые будут подразумеваться при обращении к этому имени.
Описание разрешений для пользователей имеет немного другой синтаксис:
пользователь хост = (другой_пользователь:группа) команды
Пользователь указывает пользователя или группу, для которых мы создаем правило, хост - компьютер, для которого будет действовать это правило. Другой пользователь - под видом какого пользователя первый может выполнять команды, и последнее - разрешенные команды. Вместо любого из параметров может использоваться алиас. А теперь настройка sudo в Debian и других дистрибутивах.
Основные параметры
Алиас Defaults позволяет задать стандартные параметры для работы утилиты, их мы и рассмотрим в этом разделе. Начинается такой алиас со слова Defaults, дальше идет имя флага. Если перед именем есть символ !, это значит, что флаг нужно включить, в обратном случае выключить:
Отключаем введение при первом использовании:
Суперпользователь не может выполнять sudo:
Теперь если вы попытаетесь выполнить sudo sudo ничего не сработает:
Изменять домашнюю директорию для целевого пользователя, по умолчанию остается папка текущего пользователя в качестве домашней директории:
Сохранять список групп текущего пользователя:
Запрашивать пароль суперпользователя вместо пароля пользователя:
Дальше рассмотрим переменные, которым можно задать значения чтобы установить нужные настройки:
Задать количество попыток ввода пароля перед тем, как sudo прекратит работу, по умолчанию - 3:
Количество минут, которое пройдет перед тем, как sudo будет спрашивать пароль снова, по умолчанию 5. Если установить значение в 0, то пароль будет спрашиваться всегда, независимо от того как давно вы использовали утилиту:
Следующий параметр задает количество минут, пока sudo будет ожидать повторного ввода пароля при неправильном вводе:
Defaults passprompt="Ваш пароль:"
Можно указать другого пользователя, не root, от которого будут выполняться все команды, для этого используйте:
Вы можете записывать в лог все попытки подключения к sudo:
Затем пробуем проверить работу лога:
sudo cat /var/log/sudo
Это были все самые интересные параметры настройки работы sudo, которые могут вам понадобиться, дальше мы рассмотрим как задать права доступа sudo для пользователей.
Настройка пользователей sudo
Мы уже рассматривали выше синтаксис настройки действий для пользователей, здесь все сложнее чем с псевдонимами, но разобраться можно. Например, разрешим любому пользователю использовать sudo, от любого хоста и выполнять любые команды:
ALL ALL = (ALL) ALL
Такая команда очень небезопасна, она разрешает всем и все. Первое ALL - разрешить всем пользователям, второе ALL - для всех хостов, третье ALL - разрешить вход под любым пользователем и четвертое - разрешить выполнять любою команду. Но куда более часто используется другая конструкция:
%wheel ALL = (ALL) ALL
Означает то же самое, что и предыдущее, только здесь мы разрешаем использовать sudo не всем пользователям, а только тем, которые состоят в группе wheel.
%wheel ALL = (root) ALL
Тут мы уже ограничили возможный выбор пользователей только пользователем root. Также можно указать группу пользователя, от имени которого он может выполнять команды:
%wheel ALL = (root:admins) ALL
Это значит что можно выполнить команду от имени root или другого пользователя из группы admins. Еще мы можем указать команды, которые может выполнять пользователь. Например:
%wheel ALL = (root) /bin/mount, /bin/umount
Пользователь может выполнять только команды mount и umount от имени суперпользователя. Теперь сделаем еще интереснее, пользователь может выполнять mount и umount без пароля, а все остальные команды с паролем:
%wheel ALL = (root) ALL
%wheel ALL = (root) NOPASSWD: /bin/mount, /bin/umount
Также можно ограничивать пользователям по хостах, например, разрешаем использование sudo только из host1:
%wheel host1 = (root) ALL
Осталось еще рассмотреть как применять псевдонимы. Псевдонимы могут быть таких типов:
- User_Alias - псевдоним пользователей, которые будут использовать sudo;
- Runas_Alias - псевдоним пользователей, от имени которых будут выполняться команды;
- Host_Alias - псевдоним хоста;
- Cmnd_Alias - псевдоним команд;
Например, создадим четыре псевдонима и применим их в нашем правиле:
User_Alias Users = user1,user2,user3
Runas_Alias Admins = root,admin
Host_Alias Hosts = host1,host2
Cmd_Alias Cmds = /bin/mount,/bin/umount
Далее применяем все это в правиле:
Users Hosts = (Admins) Cmds
Это значит, что пользователи из списка Users смогут выполнять команды Cmds от имени пользователей Amdins на хостах Hosts.
Еще осталось сказать несколько слов о флагах. Флаг NOPASSWD говорит, что не нужно запрашивать пароль при выполнении этого правила. Например, разрешить всем пользователям выполнять команду mount с sudo без пароля:
ALL ALL = (root) NOPASSWD: /bin/mount
Также можно запретить выполнять именно эту команду вообще с помощью флага NOEXEC:
ALL ALL = (root) NOEXEC /bin/mount
Вы можете проверить правильно ли была проведена настройка файла /etc/sudoers и посмотреть все созданные правила с помощью команды:
Здесь отображены все установленные флаги и настройки, а также полномочия данного пользователя.
Выводы
В этой статье мы рассмотрели как выполняется настройка sudo в linux. Как видите, несмотря на то, что это очень простая утилита, она скрывает очень много полезных настроек, которые можно использовать в своей системе. Если у вас остались вопросы, спрашивайте в комментариях!
Читайте также: